七年,七年,七年。从09年7月毕业至今(2016年7月)整整七年,在我的逻辑里,7年时间足以让一个初出茅庐的应届毕业生,打怪升级为一个高级程序员、高级项目经理(如果创业的恐怕也拉到风投了吧)。这也是我当时的景愿,可现实总是那么的残酷,它告诉我没有什么是理所应当,这七年我走了一条弯的不能再弯的路,各种不如意接踵而至,最终的结果是我成了一个算不上哪门子精通,哪门子熟练的,普通的程序员。我并不抱怨各种客观遭遇,我认为一定是我在一些思维方式、习惯、技巧、方法方面出了问题,才导致落到今天这个境地。古人云,可怜之人,必有可恨之处。
今天想把七年的经历说一下,一是为自己理清思绪重新上路,二是为各位朋友做一个反面案例,做一个警示,三是看看有没有过来人指点一二。下面入正题。
第一段,企业建站,在职1.5年。Asp语言估计现在毕业的朋友听都没听说过吧,我当时也不了解。其实我大学的专业是J2SE、J2ME、J2EE,也就是如今大热门JAVA专业。但在当时09年初那会儿刚刚金融危机后,经济萧条外包行业有点萎缩,我在人才市场蹲点一个月,一直就找不到工作(可能跟非重点院校、大专文凭有关吧),家里经济条件不好,这样干耗着也不是事,所以最后有一家做ASP建站的公司要我,虽然不是本专业但是没办法也就从了。那时候市场不景气,所以建站已经很廉价了,最低的时候1200元包建站、包域名、包维护。入职头半年还在从JSP到ASP的切换中,我是想把工作做好的,当时埋头苦干很快也就上手了。但是每天的增删改查做了一年之后,真的有点受不了,感觉太low,太没成就感,关键工资还相当低(有6个点的网站提成,但是一个月也没几个单所以。。。) 所以鼓起勇气写了人生第一张辞职申请。当然也就第一次遇到老板挽留,咱这人坏就坏在脸皮薄心肠软,老板找我谈了两次,于是我同意再干一段时间。其实留下来也是有一些内心想法的,觉得已经1年没碰JAVA了,有点陌生,加上之前找不到工作的心理阴影,所以没怎么敢再往JAVA方向走(当时.Net名声还是更大些吧,工资高一些吧),而做了一年ASP,对ASP的处境也有点了解了,觉得Asp.Net才是发展趋势,所以留下来也是想用时间自学ASP.NET然后再去找一份好些的工作。哦对了,忘了对公司的结构介绍一下,人不多10人不到,2个开发,1个美工,其他就不说了。所以自学真的就只能自学了,拖控件交付了一个网站,很心虚,很怕维护。。。就这样半年后带着半桶水的Asp.Net水平,再一次提出辞职,这次真走了。
第二段,内部系统开发维护,在职3.5年。半桶水的.Net技术,可想而知得吃多少闭门羹了。我当时自己的分析是,毕竟用ASP开发是没问题了,就是.net差一些需要继续提升,那么对口的企业就应该是含有ASP业务,同时又有.Net需求可以供我后期发展,关键一定要有团队配合,我不想自己闭门造车了。按着这个标准,没多久就让我找到了,这个公司内部旧系统维护用的是ASP,同时新上线的CRM是需要用.Net开发的,内部还有几个开发人员,并有外包团队跟进CRM,我一看一切都符合我的想法,开开心心就接受了。只是后来事情的发展并不如我所预料。在我入职的半年内,旧的开发人员逐步流失,最后竟只剩我一个开发人员及两个硬件工程师。接下来又由于公司与外包公司闹矛盾导致验收久拖不决,不久外包团队也整体撤走了,留下了一个半生不熟的CRM系统。在开过几次会后,公司领导不希望再投入大笔资金去请外包团队了,功能从简只做核心需求,希望我能把CRM盘活起来,也许是太想做出成绩的缘故吧,最后我真的答应了。所以大概有一年半的时间,我就跟这个系统耗上了,我原以为公司后续还会再招人来帮帮我,如果招到高手还能带带我,等呀等呀望穿秋水,结果你懂的,真的是我一个人从头干到尾直到我离职。
前期参加了无数个会议获取开发需求,当然这些会议不是专门为我开的,因为公司准备转型各个流程都在变。接下来我利用大学学到的有限的软件工程知识进行概要设计,参照百度模板写了好几个很粗糙很稚嫩的文档。其实领导并没有要求写,但是我当时希望自己能做好一点,还想着以后接手我工作的人会顺利些。再接着轮到绞尽脑汁用半桶水的.Net技术进行开发工作,那时候还不知道JQuery这玩意这么好用,我一直用着纯Javascript,后来在参考那个外包团队的代码时发现的JQuery,如获至宝。这个MSCRM是微软的平台,项目其实是在上面做二次开发,功能接口倒是齐全,就是中文资料很少,所以至少有3个月时间是边看它的英文文档边开发的(我觉得我后来看英文文档的功底都是在那建立起来的)。 别以为开发完了就万事大吉了,没那么容易,还得搞项目实施和用户培训,很多销售人员都不愿意把客户信息录入系统、很多大龄销售人员不会用电脑,所以得听着无数人把他们的怒火砸在我身上,咱还得耐心跟他们讲解,有时候晚上很晚了还要电话远程教他们怎么用(他们白天都要跑客户,晚上才会回家录数据)。由于项目不止涉及到销售部门,这是一个财务部、采购部、商务部、销售部、生产部联动的系统,我还得组织各个部门的操作专员开会,判断哪个环节有问题,哪个环节要改进。这里还得念一下老东家的好,领导层对我的工作还是很支持的,都很好的约束了自己的部下,所以各个部门都比较配合我,任我瞎折腾,再多的抱怨也只是抱怨,过后还是会老老实实的在系统录数据。朋友说怎么看都像是项目经理干的事,那时候的我哪里知道项目经理该干嘛,只是项目经理至少有小弟可以指挥吧,我自己就是最小的小弟,没人可供差遣。
就这样时间一晃三年半过去了,我开始着急了,我的最初设想是来提升.Net技术的,我是来寻找团队,结果团队一直没有,然后各方面的杂事干了一堆,.Net技术只提升一点点。我在最后那段时间很崩溃,两份工作的时间1.5+3.5=5年,天啊,一个毕业5年的技术人员,还是初级程序员。其实本来早该走了,但我当时觉得项目还没有完全收尾,如果我走了,唯一一个知道来龙去脉的人走了,这个项目就Game Over了,不管是公司之前的投入,还是之前自己的努力,都会付诸东流。说得好听点这叫主人翁精神,有责任心,说得不好听的,这就二啊以为世界没了自己就转不下去。这里面还有一个因素,当时公司好多同龄的小年轻,大家玩得很好,所以也是有点不舍。后话是,我离职半年后有老同事说,接手的几个程序员都不愿意干那些累活,慢慢的那个系统就真的废了。