毕业四年了

Posted by liangfei on 2014-07-10

2010年6月底,终于本科毕业进入职场,那时的我“很傻很天真”,不畏惧将来,不惧怕权贵,如假包换的“愣头青”一枚。顽固、无知、浮躁,是现在的我给4年前的我贴上的标签。

2014年7月,本科毕业四周年,职场混迹三年,海外生活一年,站在今天回首过去,发现走了很多弯路,究其原因,个人占7成,环境占3成。

我与日语

刚毕业那会,误打误撞进入日企,从此与日语结下不解之缘,一口气考到日语最高等级JLPT-N1,然后辞职去日本游学一年,口语如今也说得过去,读日文原版书也毫无压力。现在终于下定决心,离开日语圈子,一心一意搞我钟爱的编程。从今以后,日语可能只是一个兴趣爱好了,与工作不再相关,为了与它道别,再次参加了JLPT-N1的考试,不论考试结果如何,这是一场告别战。(最终成绩 161分)

さようなら、日本語。

我与编程语言

大学期间疯狂参加各种比赛,什么数学趣味知识大赛,算法比赛,数学建模,能参加的都参加了。非常遗憾的是,没有进一步深入,一方面是因为当时大学校园里没有参加ACM和topcoder的氛围,另一方面也因为个人眼光太狭隘,只局限于周围的人,没有能里跳出这个圈子。而且大学期间本能地很排斥java,喜欢C++。进而直接导致在MFC上花了过多的时间,甚至工作以后有大概半年多的时间还是在搞这个。
现在来看,也许对C++并不是“真爱”,只是当时大家都觉得C++比java难,而我比较喜欢啃硬骨头,所以就开始死嗑C++,无论是简单的字符串处理还是UI,都用它来做,很显然这是相当不明智的做法。

对于当时的项目来说,用C++实在是太麻烦了。因为自动化测试软件本身不追求效率,何不用脚本语言来写,然后就跟当时的一个实习生边学边做,把解析C代码文件的依赖关系、生成makefile的C++代码都用Python重写了,测试用例文件也直接使用python,抛弃之前别人写的测试用例解析器。如此一来测试人员就可以既迅速又自由地测试用例,但是另一面却增加了学习成本,不是每个人都喜欢学习新东西,后来随着我离开项目组去做android开发,推进地也不顺利。

生成测试目标和测试用例的功能全部用Python重写之后,接下来的一个重点就是软件UI了,那个时候我们用的还是XP系统,win7没出,vista没人用。提到windows上的UI,当然不能再搞MFC了,因为再搞下去会没完没了,于是选择了基于C#的框架WPF,那个时候我坚信,随着微软跟诺基亚的强强结合,WP肯定会大卖,这样我们就可以无缝迁移到手机端了,现在来看,一句话:

あまかった Naive

这个项目做的很失败,一个主要原因就是我对采用新技术开发的风险预估不够,搞的大家都很累,好歹最后还是完成了。后来读了《人月神话》才知道,其实是陷入了二次系统的泥潭。
领导成功地把这个项目申请为公司的自主项目,项目企划书上写的人员配置与真实情况大相径庭,实际上是我一个人带三个实习生,加起来也不过1.6个人,更何况那时候才刚进公司一年不到,工资比较低,所以实际花费肯定低于1.6。以至于后面的大部分工作都是在做文档、整理数据、控制进度、安排工作。本来这个项目的1.0版本是通过日本客户付给我们钱做出来的,如果转化为公司的自主项目必然要跟日方客户谈清楚各自所占的百分比。从个人角度来看,领导不敢去谈,因为这会损害与客户之间的关系。我当时也已经快受不了整天加班整理文档的琐碎工作,于是把当前的状况跟他仔细谈了一下,并希望领导给我们配一个编程能力不错的正式员工。
可是,第二天领导把我喊到会议室,突然告诉我,这个项目他不打算做了,让我去做其他事情。最后他一个人参加了这个项目的最后一次自主项目会议(没让我参加,之前一直都是我们共同参加的)。不知道他是怎么跟总经理汇报的,结果就是这个项目的自主产品之路就结束了。

当时公司正在接日本某大公司的android开发业务,我也从2012年1月1日开始正式转到其他部门,开始了android之旅。一开始对android开发真是一窍不通,凭借扎实的C++功底,把android的四大components - Activity Service Receiver ContentProvider弄清楚之后,很快就上手了,我负责的功能模块整体来看比较简单(当然了,整个team都是UI开发),由于那时日语已经过了N1,所以做为sub-leader一边跟日本客户沟通,一边带着其他三个人一起写代码。这个项目几乎天天加班,不分昼夜,也不分周末,一周通宵三次的情况也时有发生,高峰时期有30个人一起开发,由于前期架构的失败,导致大量的重复代码,垃圾代码,到了后期bug迭出,近乎失控。就这样项目一直延期到7月份才结束。其实《人月神话》中也讲到,

向一个已经延期的项目中增加更多的人手,只会导致项目更加延迟,因为沟通成本会急剧上升

一直以来我都想做一些比较难的东西,可惜这两个项目都无法看到希望,我记得网上看过一句名言:

判断应不应该在一个公司继续待下去的一个标准就是看看周围工作年限比你长的人,你是否也想成为这样的人。

我不想成为那样的人,于是下定决心去日本留学深造,8月份离职,去新东方学了一下TOEFL,凑够了学费,2012年10月,登上了飞往日本的飞机。坐在飞机上,看着陆地上的房子变得越来越小、越来越小,心中思绪万千,将来的我会在哪里,一切都是未知数。

在日本这一年,深深地喜欢上了自然语言处理(NLP),因为本身对自然语言的兴趣,掌握中文、日文、英文三国语言,再加上计算机知识,应该很easy,就把《Natural Language Processing with Python》前后读了两遍,代码照着敲了一遍,后面又看了几本日语版的介绍NLP的书,仍然不得要领。后来读了《数学之美》我才发现我又あまい了,因为现在的自然语言处理所用的方法是基于统计的,基于规则的方法已经不在适用。所以,我觉得:

自然语言处理重点不在自然语言,而是处理。

不过这个学习过程倒是让我的Python编程能力提升了不少。

当决定回国时,重新规划了自己的职业生涯,萌生了一个新的想法,天真地以为对日外包也好,产品研发也好,都是不同的行业,只要充分发挥自己的能力,一样可以成为一个行业的佼佼者。

2013年10月,又回到了原先的公司,作为leader,继续做富士通手机的Android应用开发,每天跟日方客户开会、讨论,就这样也忙得不亦乐乎,直到去北京参加了一次 MDCC 2014大会,在会场买了一本《淘宝技术这十年》,读罢此书后让我明白:

无论你做任何行业,不要忽略了兴趣,那才是你最大的动力

所以,不能忽略兴趣,我要继续专心搞技术。
四年了,写了不少代码,也读了不少书,可惜这四年没有始终保持一条技术主线,总是走过一段路后就叉到其路上。
看着开源社区的大牛们所写的代码,惭愧汗颜。想成为大牛,就必须改变现状,朝着目标前进!


欢迎扫码关注 老梁写代码 微信公众号