今天终于和老板辞职了,我的第一份历时一年多的工作将在不远的将来无疾而终。对于这样一个从来不做详细的需求分析,从来不遵守编码规范,从来不写单元测试案例,从来不使用设计模式和最佳实践,从来不考虑修正代码可能引发的退化(regression),等等等等,的公司而言,离开对我来说是一个不小的喜讯。而对于我的老板而言,一个每天十点半才到公司,经常在上班时间登录中文网站让他不知道是在查资料还是在看八卦的程序员主动要求离开,应该也不是什么太悲伤的事情吧。

在Edifixio的一年多的时间里,我还是学到很多东西的。最大的收获,是锻炼了我阅读没有文档的代码的能力。在我的第一个项目Aptrix里,我亲眼目睹了那些程序员使用JAD(Java Decompiler)反编译了IBM的Aptrix内容管理系统的代码,然后在这个基础上做二次开发。这颇让我惊讶那些家伙们的野蛮和生猛。那个反编译出来的Aptrix代码,既没有文档,变量名也都和象形文字一样,我花了好几个月的时间,居然也通读了一多半。由此我得出一个结论:人的适应能力比想象中的强。看似不可逾越的鸿沟,如果你不得不去面对,那多半会发现自己其实还是有逾越的能力的。

后来我再去看Apache的Pluto项目的代码,感觉就好像读完史记再去读白话史记一样。我得以顺利成为Pluto的主力committer,公司对我的培养功不可没。

离开Edifixio之后,我将去汇丰银行继续做程序开发。我将不再使用我最热爱的Java,改用放荡不羁的C++。用惯了Java的程序员好像温室里的花朵,恐怕不太能够承受指针乱指和内存泄漏这样的风风雨雨。面对如爱情般难以把握的C++语言,不知道我需要花多少时间去适应。不过,根据第二段里所得的结论,我对此还是怀有信心的。

在新的工作中我还将接触到一些金融方面的东西,这是件让人兴奋的事情,可以让我觉得自己不是太狭隘。在我的思想里,编程只是一个工具,就好比语言,它们的存在是为了让我们可以更好的去做其它一些事情。为编程而编程,这似乎背离了编程的初衷,让我觉得我是个除了编程什么都不懂的家伙,too simple sometimes naive。

总结:我今天辞职了,这是一个好消息,嗯。