自从2012年二月一日加入公司,现在已经工作一年了。
这一年的表现可以用虎头蛇尾来概括。其中一些暴露的问题是我长久以来就已经发现的,但是出于懒惰或者急躁,对于这些问题没有正视,更谈不上重视,所以常常重复这些错误。而这个是职场的大忌,尤其是无法获得上级的信任。
总结来说暴露的问题有以下几点:
1)思考,分析不足的情况下就匆忙动手去做。
2)不够细心,对于检查和测试大而化之
3)没有清晰的责任观念,例如,哪些是分内事,哪些是分外事。
4)缺乏周期性的正式总结,反思自己的问题
在这些问题上,我吃了很多亏,很多还是哑巴亏,也得到了应有的惩罚。对于这些问题再也不敢忽视或者轻视,因为这些问题不克服,那么从个人能力来讲,我无法进入修炼的下一个阶段。
对于1),我认为既是我的性格问题也是我的思维层次问题。从性格来讲,我很急躁,贪快,贪多,总是希望一口吃成一个大胖子,但是在这样的心态下工作,往往会产生很多错误,包括设计失误,实现失误,缺陷率高,测试不合格等。
分析这种心态的产生原因,在于希望可以短时间学更多的东西,并且付诸实践,获得感性理想体验,然后再反思,通过阅读理论来总结这些问题。这种方法最大的问题在于混淆了在学校和在公司编程。在学校编程,一般来讲只关注functionality,很少或者几乎没有人关注bug和测试。但是在公司,开发者必须对所有经手的任务负责,所以不但强调functionality,更看重bug,测试,文档等一系列的任务。因为我们直接面对的客户,作为使用者,他们的用户体验与上述活动紧密相关。如果客户体验上不去,开发就没有达到目的。
为了解决这个问题,首先我会保持谦虚的心态,阅读To be a humble programmer,宁愿牺牲一些速度,但是严格保证程序的质量。围绕在公司编程的特点,开始的时候多走几次test procedures,更为关键的是事先分析有哪些scenarios,每一种的优缺点,以及克服每种情况产生的问题的办法,综合权衡,谋定而后后动,避免边做边想firefighter般假忙碌状态。因为在公司编程如果一开始就没有规划好,那么进度越大,困难也会指数般增长,白白浪费了许多返工的时间。
从思维层次角度讲,我缺乏一些基本的思维方法或者说综合运用这些方法的意识,例如发散思维,逆向思维,全面分析等。不管是从广度还是深度来讲,都缺乏有意识的训练。查阅了一些资料,培养的方法有下棋,辩论和写作。我准备每周写一篇总结,同时学习一些基本的辩论思维方法,如果还有时间的话会学习GRE中argument,再有时间的话会学习下棋。总之,按照我过去的经验,我觉得思维训练是可行的,辅以正确的方法,价值大量的练习,我相信会得到大幅提高。
相对于1),2),3)&4)都是我性格,技巧,思维缺陷的不同层面的投影,或投之于人际关系,或投之于责任划分,或投之于内心。总而言之,以前那套觉得编程牛,速度快就行的想法已经过时了,因为编程服务的对象变了。在公司,其实少犯错误才是最重要的。