准备重新拾起一些程序员的技能了,在这样一个职业空窗期。
我从来不是一个好的程序员,也没有做过全职的Programming工作。但在人们面前,我总是说自己是搞IT的。但如果不写程序又算什么IT从业者呢?好吧,这时我就会解释做过哪些IT相关的工作。
大概十年前刚毕业那阵,在一家世界五百强的通信企业做过几年系统测试,没怎么写代码因为产品研发都在欧洲,国内只需要开拓好市场,保证产品能满足运营商的要求。这些要求很细致,不仅包括功能上和性能上,还有一些异常环境下的系统的应对和处理等等。通信产品嘛更多问题都在网络环境,有线无线的各种接口。所以呢,虽然不用研究代码也会有一堆事情需要人去做。做到第三年,整个产品的亚太区接口人就是我了,这个时候更不需要代码级的知识,只需要针对问题的类型、级别,找到相应的人或组织去解决就好了。当然每个软件产品都有生命周期,通信行业更是以周期快而著称,很快产品phase out我也准备换行。
因为学历比较好,又在大公司干过,很容易就找到一所软件职业学院,开始教师生涯。自己没怎么写过程序当然不太好意思手把手地教学生写程序了。但是后来发现,一个系里面程序写得像样子能拿出手的也就那么两三个老师。虽然我主动承担的都是以经验见长的课程,例如《软件工程》《软件测试》《UML建模》,但带学生毕业设计时还得真刀真枪地弄一两个项目,现在想起来,比我读本科时老师投入的精力还是要多一些的。指导学生怎么干,自己总得知道一个方向吧。但我仍然不是一个好的程序员。我理解怎样才是一个好程序员呢?要从写程序中找到乐趣,不仅是能复制代码,还要enjoy调试代码的过程,特别是要享受解决问题的过程,这点没多少人能做到。
后来离开学校再进公司,就是项目经理的角色。和产品和客户打交道,要做好也不比写代码轻松,但自己有的是经验,碰到某类问题就去找相应的解决方案。系统产品层面的问题基本上不用和代码打交道。印象中三年时间里只有一次,用户反馈的一个无法重现的问题;我无解,转发给德国开发部也没任何进展;我跟进,给出一些前提条件,希望开发组做白盒测试;后来可能是重现出了问题,德国回信还比较客气。但这只是个案。基本上软件公司很多职位没有任何编码技能的人是完全可以胜任的,更多的是要有一些基本的逻辑思维和customer focus,这点可以给HR作参考。
确实,程序员这个行业变化的确太快了。我读硕士那阵,.net Java什么的都是新出来的技术,过几年是Web,现在又是Andriod, iOS. 试想一个程序员要想跟上技术的发展,如果不是因为自身职业兴趣,怎么可能?但另一面,程序设计这一行都是问题驱动的,想要做一个产品才会去考虑一项技术,搭好框架后再逐步实现。现阶段我又回归到技术维了,因为要去远方,能带走的东西有限,整理行李的时候发现自己还是有一部分基因可以成为一个业余程序员的。未来还有丰富的可能性,而这几个月则需要做一些铺垫。