现在,本人已离开这个呆了8年的软件行业了。回想自己从半路出家,从实施开始做起,最终在一家外企做项目经理PM结束了自己的软件职业生涯。从一张白纸的自学开始,做过项目实施,客户培训,拿过需求,开发,架构设计,技术leader,项目经理PM。一路走来,欢喜忧愁。

  觉得自己有必要写出来是因为,一方面算是给自己一个总结性的交代,另外也算是希望能给某些正处于迷茫阶段的同行们一点点参考,因为我也曾在某个阶段迷茫过,在我迷茫的时候我希望能看到那些同行把青春奉献在这个行业上的经历,以及他们用青春走过的轨迹。我的经历并不多么出彩,但是每个阶段都有不同的感悟,自认为能带给看客们的一些收货。大鸟们若不屑一顾那么请纯当笑料,而那些看了本人的经历后能有一点点收获的,本人的初衷就达成了。

  在最终选择告别软件生涯的攻城狮在做出这个艰难的决定前,经历了一番纠结的挣扎。 这个行业带给本人在外人面前相对而言较为光鲜体面的工作,和初出道时每次troubleshooting感觉像是西部牛仔吹着火枪筒时的自我感。每次加薪,跳槽和升迁的快感,作为开发团队核心成员的存在感,作为项目实施上线培训被客户敬重和依赖的那种备受尊敬感,作为架构设计师合理运用设计模式而让使用架构的项目组成员简便使用从而减少工作量的成就感,作为项目经理看着自己的项目一个sprint接着一个sprint的delivery,最终被赶着一个又一个timeline 发布版本,到最终终于把项目成功结束的那种自我实现感。 现在,一切都结束了。

命运弄人,高考失利
  高中时本人成绩还算是比较好,全校前10名内的放榜名单上基本可以找到名字,同时每年都可以拿到不少的奖学金,这基本上可以抵替大部分学费了。这是本人非常自豪的一段时期,在没有任何背景和并不富裕的家庭,可以替父母减轻些负担,同时又是老师们关注的一个焦点,那弱弱的心灵有种春风得意的赶脚,呵呵虽然现在想来有些可笑。那时候对于毫无背景的家庭考上大学是唯一的出路,也自认为保持目前的学业状态考个本科应该是没问题的,谁知命运弄人。。。
  高三那年突然失眠,是整夜整夜的失眠,晚上大脑异常的兴奋,白天却始终提不起劲来,脑袋像是钉子钻一样的疼,整个人因着急而变得狂躁, 后来去某知名医院鉴定了为神经衰弱症,原因是本人从小体质较弱,体抗力差,加上高三学习上面的竞争和压力太大,这种高强度的脑力负荷,然后自己又不懂得如何释放压力导致最终根本无法继续呆在学校,于是向学校提出离校回家自学,在老师的苦心劝阻和自己的一意孤行下,在最后一个学期终于没去学校而待在家里自学,只是每次月考去学校一趟(因为小地方距离县城学校很远)。那时候爸妈都在外务工,根本无条件顾及,不像现在的学生高考时全家人围绕在身边,真像伺候皇帝一样,什么营养好补什么,孩子只管全力备战高考就行了,看着真是羡慕。吃过很多药,中药西药都无用,医生给的建议都是放松大脑,这种感觉就像是一个士兵到了战场却被告知不准使用刀枪一样的无奈。写的有些啰嗦,中间过程就不说了。最终的结果就是落榜,记得那年的二本线是512,本人考了498分。这里插写一句,后来在一次和家人的聊天中得知小时候给我算过命,家乡话大意是:“写能比得过人,算能比得过人,就是考不上大学”,呵呵,只能说造化弄人。
  想过去复读,这是很多落榜人的选择。本人也有想过去复读,只是失眠的梦魇让人看不到任何希望,所以无奈放弃。填志愿的时候随便填了一个专科学校,这又是一个悔恨的开始。。。
  这个学校不想多说,地偏,私立,学费贵,新办的学校,办校如办工厂,到处黑暗!。每天还沉溺在高考的落榜阴影中无法走出来,翘课,睡觉,晚上通宵去网吧,本人所在电子系计算机控制技术专业,数模电,单片机,嵌入式等等偏向硬件,到大二的时候回头一看什么都没捞到,开始着急了,总得给自己一个交代吧,什么都没学到毕业岂不立马失业? 当时对这些硬件不大感兴趣,却对网络兴趣大。某次经过计算机系门口张贴的全国软考报名大字报后,决定考个网络工程师(中级),给自己一个交代,也算给自己心安。 就这样自己买了相关书籍,记得那本官方指定教材有600-700页,心想自己一定能啃下来。一看云里雾里啥都不懂。 那时候接触电脑太晚,本人大一才摸上电脑,接触太晚,底子太薄,距离考试时间只有3个月不到了,所以那时候基本上翘课,把自己的本专业完全丢了。借来计算机系的基础从0开始开始看,呵呵荒废了2年,突然找到一个看似实际的目标后,便像是抓到了一颗救命稻草一样, 奋力自救。 那段时间仿佛又回到了高中时的学习劲头,晚上看书看到了凌晨1~2点… 中间过程就不多说了,最终本人是唯一一个外系(电子系)的学生拿到了软考网工证,那一批整个有30多个人通过。依稀记得去拿证的时候,办证人员问本人网络几班的,本人电子系(外系)的,那人一愣。拿完证后临走时本人说我是你的学生,那人又是一愣,因为在下翘课太多,老师根本就不认识。说了一堆的废话,算是背景铺垫。不说了,接下来开始说程序生涯。
  半路出家的程序员
  本以为拿到软考网工证,找份相关行业工作应该没问题的,当时听他们说的好像找工作也容易什么的,毕竟他们计算机网络系的毕业目标也就是这个证了,当然他们的动手能力可能比我强,呵呵。 毕业后找工作,发现这个证根本仅仅只是一个证,好像一点用处都派不上,人家要的是就业经验,要说证的话,人家认的是思科/华为/H3C认证,思科的认证的貌似很牛,CCNA/CCNP/CCIE,听说那时候CCIE是非常吃香的,整个国内过了CCIE的人数是屈指可数的,那时候听说能拿着CCIE的证给面试官一看月薪就值破万的。只是到后来考的人多了,然后水军也多了,然后是中国特色的背答案,卖考题的人多了,最终把这个黄金证书搞的污染胀气,含金量也不如以往了。
  数次求职失败后,决定弄个CCNA再去找工作,拿到证后却阴差阳错的进了一家思科的二级代理商,职位是销售。 在试用期的熟悉产品过程中,技术人思维的一味钻入到思科的高端路由器去了,结果不到1个月的时候,突然老板告诉我说我不适合做销售,我想想也是,于是就走人,又失业了。
  万般无奈,找一哥们喝酒,这哥们在一家国企做开发高速公路系统,酒过三巡后这哥们玩笑说一句:要不跟我学开发算了。就这样,我从这哥们借了本《**高级编程》就回去闭关自学了。
  学了刚好2个月,基础学的差不多了,加上自己也坚持不下去了,所以就开始尝试找工作了。

  一线程序员码农之路

  当时想既然自学已经待不下去了,不如找家公司来让自己学习,于是本人踏出了进入这个行业的第一步。 
  第一家公司是一个做医院信息化系统的,比如HIS,LIS,PACS,电子病历等系统,当然我的职位是实施工程师,。当时的大环境是政府下大力度支持医院信息化系统的。在随后的时间里,基本了解了这家公司的背景和操作模式。 公司是新成立的公司,老板原来是个医药代表,做了多年的医药销售,可能在该省也有些后台关系,因此拿到某个医院信息化建设的标的,这样项目就有了。 接着成立了这家软件公司,办公室也入驻进了某个靠近知名医院后面的科技园里面,然后招了一个毕业1年的研究生做leader,再招了2个实施工程师(其中一个就是我),这样团队也有了。可能看到这里你会问,咋没有开发团队呢?原来,这家公司老板铁定自己定能中标,于是找了一家有医院信息化行业产品的小公司,做好标书,去走标,等待标定下来项目到手后,再用这家小公司的产品去实施和定制开发,这样直接进入医院现场驻场开发实施了。

  整个公司成立到团队组建,没有产品,没有核心开发团队,更没有公司成立之初的艰难生存期,居然顺风顺水的直接进入正轨了。这个公司因为中了标,但没有行业产品,没有开发团队,当然更没有任何技术积累了。这个就是老板的神通了,这样的运作算是让我见识了一把。

  再说说后来,项目一上线,虽然Defects还是不少,稳定也不好,但是终究还是上线了。我在上线实施的过程中,在挂号室里面,看着出了问题的系统,和外面着急排队等候挂号的病人,这背后的肮脏操作应该只是一个极小极小的缩影。
  项目上线过后,这家公司老板找医院信息科主任吃了顿饭,是个蛇肉煲,老板让我从车后尾箱去取了瓶轩尼诗XO,酒过三巡后,老板暗地塞了个红包顺便拿出了合同,上线通过,皆大欢喜!
  项目成功结束,这家公司成功上线了信息化系统项目,并大赚了一笔,同时获得了这套系统的源码,而那家外包的小公司也拿到了部分项目款。可能你会觉得那家小公司只得到了小头,其实那家小公司的那套系统也是破解了国外一套成熟的医院信息化系统,然后汉化成了自己的产品。呵呵,百家争艳,各取其利。
  一转眼就到年终了,这期间一直在医院现场驻点开发。项目快结束时下一站的行程也基本定了,这公司老板又拿下了另一个三甲医院的信息化改建标的。 这时候本人也不想继续待下去了。这期间耳濡目染的基本了解了这个行业,同时利用空余的时间继续学习了一把。到了年关,想尽早回去过年,所以就辞职了。

从事IT业一个8年老兵转行前的自我总结1——初爻的更多相关文章

  1. 从事IT业一个8年老兵转行前的自我总结2——从《易经》说开来

    近些年一直在读<易经>,收获颇多.以前看不贯的人或物现在可以淡然看定,以前看不开的一些事现在也安然放下,以前看不透的某些事现在也都可看透八九不离十. 古人云:不读<易>不可为将 ...

  2. poj 2752 求一个字符串所有的相同前后缀

    求一个字符串所有的相同前后缀Sample Input ababcababababcababaaaaaSample Output 2 4 9 181 2 3 4 5 #include <iostr ...

  3. 执行这些代码, Edit1只能输入数字,小数点和负号,负号和小数点只能输入一个,负号必须在最前,粘贴的数字必须完全正确.

    执行这些代码, Edit1只能输入数字,小数点和负号,负号和小数点只能输入一个,负号必须在最前,粘贴的数字必须完全正确. type TForm1 = class(TForm) Edit1: TEdit ...

  4. php 除10取整,取十位数前面一个数字,百位前两个数字

    需求:php 除10取整,取十位数前面一个数字,百位前两个数字,并把大于2的加红显示 例:0-9,10-19,20-29,30-39,110-119对应为:0 1 2 3 11 实现主要方法:$num ...

  5. 从一个非开发人员转行silverlight满一年的工作总结(第一次发帖)

    自2013年3月进入公司到现在已整整一年.这一年,让我从一个大学毕业就去参军并且专业还不对口的大学生步入了软件开发这个高门槛行业.说实话,我真的很庆幸,庆幸遇到了两位赏识自己的领导从很多专业对口.能力 ...

  6. 【linux命令系列】熟练运用每一个光标移动到最前和最后

    ctrl+e?a和e      ahead 和 end 看一个真正的专家操作命令行绝对是一种很好的体验-光标在单词之间来回穿梭,命令行不同的滚动.在这里强烈建立适应GUI节目的开发者尝试一下在提示符下 ...

  7. 在向一个ArrayList中添加大量元素前,可以使用ensureCapacity方法来增加ArrayList的容量

    参考http://www.jianshu.com/p/f174d49b391c ensureCapacity(),该方法就是 ArrayList 的扩容方法.在前面就提过 ArrayList 每次新增 ...

  8. kivy学习二:做一个查询所在地区身份证前6位的小软件

    经过半个月的尝试,终于成功,记录下来备查! 做完之后发现有很多的问题没有解决,请大佬多批评指教! 强烈建议:学习KIVY的查看官方文档 需要用的知识: 1.字典的相关知识 2.kivy的下拉列表(Dr ...

  9. 编写一个简单的flask的前后端交互的网页(flask简单知识的讲解)

    实验原理: 1.什么是flask Flask是一个使用Python编写的轻量级Web应用框架,其WSGI工具采用Werkzeng,模板引擎使用Jinja2.Flask与 Django之间的区别就是Dj ...

随机推荐

  1. ring0 SSDTHook 实现x64/x86

    #include "HookSSDT.h" #include <ntimage.h> #define SEC_IMAGE 0x001000000 ULONG32 __N ...

  2. 2018.7.23 oracle中的CLOB数据类型

    Oarcle中的LOB类型 1.在Oracle中,LOB(Large Object,大型对象)类型的字段现在用得越来越多了.因为这种类型的字段,容量大(最多能容纳4GB的数据),且一个表中可以有多个这 ...

  3. 2017.10.20 jsp用户登陆界面连接数据库

    用户登陆界面 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8 ...

  4. chapter1-printf.py

    #!/usr/bin/env python # _*_ coding:utf-8 _*_ from ctypes import * libc = CDLL("libc.so.6") ...

  5. Spring MVC的一些学习笔记-入门配置和HttpMessageConverter

    1.初步配置 [1]. 配置web.xml以及在web.xml中配置DispatcherServlet: <context-param> <param-name>context ...

  6. 第十五章 函数————函数的递归、生成器send 、匿名函数

    1.生成器send方法 send的工作原理 1.send发生信息给当前停止的yield 2.再去调用__next__()方法,生成器接着往下指向,返回下一个yield值并停止 例: persons=[ ...

  7. 第22章 常用存储器介绍—零死角玩转STM32-F429系列

    第22章     常用存储器介绍 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege ...

  8. mask r-cnn

    mask R-cnn, kaiming he的新作.可以同时完成object detection和segmentation,还可以做pose estimation,简直就是功能多多啊.在coco上测试 ...

  9. css中hover设置边框后div中内容后移解决方法

    <style> .demo{width:1200px;height:400px;background:#fff;} .demo:hover{border:1px solid #cecece ...

  10. AMD、CMD、CommonJs和ES6对比

    一.AMD(异步模块定义) AMD(异步模块定义)是RequireJS在推广过程中对模块定义的规范化产出.AMD是一个概念,RequireJs是对这个概念的实现.比如javascript语言是对ECM ...