转正周期是6个月,从入职开始算起。那么,2011年1月份就转正了。

刚入项目组时,第一个月在一个项目组呆了一段时间,写了一点点代码,做了些CI的工作。主要是在效率提升上,将产品的编译速度提高了15倍。为此还得了金网络奖。这种奖励就是部门的奖励而已,比较小,200块钱,但还是不错了。新员工刚入职不久能得到这种奖励的凤毛麟角。其实,作为一个程序员来讲,并不是光了解程序就好了,对程序开发以外的东西,例如工具、硬件、系统等都要有一些了解,整个知识面才是完整的。在华为我做了很多的工具,有自动下载合并网元日志、自动代码比较报告获取等很多工具,后续我想起了再详细讲一下。

9月份的时候,被告知要到另外一个项目组去了,说是去做骨干。当初听“骨干”这两个玩意儿,以为自己还很牛逼呢,才来了一个多月就成了“骨干”。后来才搞明白,原来做的产品是骨干网络上用的产品。汗死。从深圳过来的两个同事,分别交接工作给我,然后还有一个同事到成都,就组成了后续成都的项目组。人也不多,就三个,外加一个PL。

交接的模块是产品中比较重要的两个模块,一个负责算路径,一个负责将路径发送到各个单板中。当然,作为骨干设备,大容量高规格,使得这两个模块的维护显得比较麻烦。有趣的是,虽然交接期也只有4个月,但我还是尽量不加班,下班没事就跑了。以至于他们写邮件给我,说成研所有不成为的规矩,星期1,2,4是需要加班的。好吧,我就好好地表现了几天,又开始准时下班了。以至于一直到离职前,有些同事对我晚上加班都觉得比较稀奇。为啥晚上要在哪里磨蹭呢?为什么不以提高效率来高效工作呢?为什么我要看别人的脸色来呢?我不怎么做得到。我期望我的生活是高效的,期望我的时间过的是充分的。我想多给我家人一些时间在一起,即便我在家里看看书,或者打打游戏,只要一家人在一起,能够吃个饭,再累再辛苦,也是值得的。所以我近几年的劳动态度都是B,全年绩效一直B+。如果我晚上10点过再走的话,肯定几年就A了。有必要么?

当时我还很担心国庆节要不要加班呢?在华为生活几年都被加班的阴云笼罩着。国庆节前就有小道消息说可能要加班4天。总共才7天加班4天,加来干啥呢?管他的,已经订好了机票到广州,任你怎么折腾吧。结果到了国庆节,一天都没有加班。

第一年的国庆节到晓东家来了一趟,前几天在深圳去了海边,吃了小肥羊。这一次到广州之旅,算是一个转折。见了当时的阿姨叔叔,然后回成都。经历了两三个月的考虑和周折,终于在12月24号圣诞节,宝贝来了成都。

10月份的交接工作,进展的紧张而又繁琐。代码的质量,算是有些折腾,经常会看到乱七八糟的代码,在代码中随时都能闻到臭味道。长函数、各种标志的使用,让人摸不到头脑。还好Eclipse或者SlickEdit有代码折叠功能,否则很难理解一段代码。没有单元测试,让功能的修改只能靠手工的验收,很担心修改一行代码影响到了另外的功能。这种事情在我身上发生过两三次。即便很小心,也难于彻底避免这种情况。我认为应该在代码层次上就要控制这种问题。长代码、标志,嵌套数层的if…else,都应该从设计上避免。在离职前,我最后的代码中,我很不忍心的写下了一些switch…case。因为项目紧张,一个烂的设计,能解决问题,功能正确,也就OK了。没人关心你背后的心血。在离职之前一年,软件部的领导们终于认识到这些问题,提出功能正确的代码是基本,要写更好的代码。

另外,在公司我觉得很不爽的是对于公司绝大部分人的选择——SourceInsight,真是个彻底的文本阅读器。刚来公司我还以为这个是标配呢,后来发现原来这个东西真的太烂,几年没有更新不说,对于Unicode、类层次浏览、函数跳转浏览、正则表达式查询、代码折叠、等支持的太过于初级。我放弃使用这个玩意儿。

我的选择很多:Eclipse、Kdevelop、CodeBlock、VIM、Emacs、SlickEdit。

Eclipse:当年的Eclipse的CDT很烂,对于大型代码的解析不给力,所以没办法,放弃了。但12年开始,Eclipse伽利略版本,CDT就很爽了,后续的Juno更爽了,用到我离职。

KDevelop:针对于KDE还可以,但我们代码中没法用。

CodeBlock:轻量级的,还是很好用,但我没用,功能不太满足需求。

VIM、Emacs:学习成本太高,对于C的支持靠Ctag或者cscope。但这两个都对C++的代码理解不到位,很难浏览代码。对于C的应该很爽。

SlickEdit:比较重量级的,跨平台的商业软件。对于C++的支持还不错,浏览代码啥的都比较给力。唯一的缺点就是速度较慢。在Eclipse伽利略之前,我用了这个1年多。

最终的选择,就是SlickEdit,然后是Eclipse。工欲善其事必先利其器,花点时间选择一款好的工具,会让您效率倍增。之前有新员工入职时,我推荐他用Eclipse,但需要一些小小的配置才能用的比较好。我帮他配置好了以后,用了一段时间,但最终还是随大流用回了SourceInsight。在走之前,还看到他们艰难的浏览着继承结构的代码,要从SourceInsight N多个文本搜索结果中选择一个合适的、没有正则表达式匹配查询函数等等,我就很淡定的给他们演示Eclipse中的类结构跳转、对于虚函数的导航、模糊查找、代码折叠等功能。当然,他们仅仅是觉得哇,好强大而已,未曾尝试过新鲜事物。萝卜白菜吧……扯远了。

其实感觉6个月时间,算上第一个月的培训,第二个月的刚入职适应期,只剩下三个月时间好好地做一些事情。在这期间,我获得过两次金网络奖励,抓住效率低下的地方,真正提高了效率体现了实力。对我了解的人都不会由于早走而说我。

12月底,开始准备答辩了。当时由于项目不算紧张,PL给了我大把的时间做好PPT。当然,做PPT也是我的强项,当年毕业的时候做的3D PPT就把老师些看傻了。同样的,毕业答辩的PPT也需要别出心裁。另外,PPT在华为,也称之为“胶片”。所以走到外面一听到胶片二字,多半这人在华为干过。

我参考了一下其他同事的转正胶片,都依照转正答辩胶片模板那样的“朴素”。模板就是模板,仅仅是一个参考而已。

第一页,我就创新的贴了一个整个团队的照片,然后附上PL和思想导师的头像,这样就生动多了。然后每一页的PPT的换页都是精心选择,反复播放。文字不多,以精美的图片和动画代替文字,给讲解留下空间,并且能够很好地展示对知识的理解。这个胶片,以至于参加过我答辩的MDEG组长都称赞非常棒。

当然,答辩的PPT是一方面,精心的组织语言是另一方面。幸运的是,在答辩前,我们进行了一次预答辩,对讲解中的不好的地方又重新组织了语言。答辩完了,我们当时的LM帮我去问了一下,悄悄告诉我说,答辩的专家都非常满意,我忐忑的心终于落下来了。最终公布结果的时候,顺利的得到了A。

一个良好的开端很重要,踏踏实实的做一些事情,最终会收获很多。