经常有毕业生问我“多长时间可以学会JAVA、JSP 、servlet、 struts 、sql server、 oracle这些主流的技术”。 我回答:“3个月”。对方通常表示不可能;那么我会反问他:“在你大学4年的学习中写代码的时间到底有多长,你到底读过多少行代码,你到底从这些代码中悟出了多少道理呢?你到底熟悉哪几种设计架构。对方往往是一脸木纳,我又变成外星人了。
回忆一下我工作前3个月时的两三件事:
事件1:
刚毕业的时候,我到软件公司的第一份工作就是写一份类似用户手册的文档。因为在大学的时候除了写检讨书和情书外,我没有写过大段的文章,所以两天的时间我才写了一千多字,而且漏洞百出。最后得到经理的一句忠告:编写文档是程序员的基本功。
这7、8年来,这句话一直影响着我,渐渐的我提高着自己的技术水平和文档的编写能力,开始的时候写测试报告、需求调查、需求分析,后来开始写详细设计、应标书、技术协议、合同。现在我甚至可以在一夜之间完成一份解决方案的编写。
事件2:
第一次独立的完成一段完整功能的代码用了一周的时间。每天加班到11点钟,开发结束后,测试的结果竟然是平均每行有两个错误,而街上线后依然是错误不断。(当时公司刚成立测试部,测试做得还不是完善)
客户经常因为系统的各种错误给我打电话,我到了客户现场以后,找到程序中bug,手到病除。这样反倒显得那些老程序员没有什么作为了。客户对我充满了感谢和敬佩,还在我的领导面前夸我工作敬业、技术过硬,什么样的错误只要我一来就解决了(当然这是7年前的事情了,如果是现在早就被客户骂死了)。
现在我在给学生讲测试驱动开发(XP)的时候也经常把这个例子当做反面教材。
事件3:
后来公司要求我在一个月的时间里独立的完成项目的一个模块,由于没有很好的遵从开发规范的要求,没有使用优秀的技术架构,缺乏开发经验,没有完整的设计文档,没有掌握测试方法(当时以为调试就是测试)等等原因,工期拖了近一倍,程序依然有抓不尽的bug。客户要求的上线日期马上就要到了,我决定通宵改程序中的错误,经过几个通宵的努力,我终于完成的工作。
通宵加班结束后,我感觉到自己的编程水平、设计能力都有了非常大的提高,简直就是一个飞跃。那种成功的喜悦是无法用语言来表达得。
连续熬了几个通宵后,从公司走出来的时候,风是那么的柔和,阳光是那样的明媚,空气是那么的清新,绝对有换了人间的感觉。
这些感受绝对是程序员所特有的。
三个月的试用期结束了。我和公司签订的正式的劳动合同。成为了一名合格的程序员。
程序员的发展轨迹:
刚 毕 业:不是一个合格的程序员
三个月后:合格的程序员
两 年 后:优秀的程序员(C语言程序员除外)
三 年 后:资深程序员、项目经理、系统分析员
五 年 后:资深项目经理、架构师、售前技术支持