新手程序员如何让他快速成长? 一名老程序员,谈谈对程序员的培养
我从事的是一个跟程序员有关的工作,也希望我的看法能给程序员或者前程序员们带来一点启发。纯粹个人一些想法,也许你认可我的言辞,也许你不屑我的观点,无论如何,欢迎谈谈你的看法。
让程序员做更多种类的事
为什么有人说小公司锻炼人 ?
在小公司,条件并不那么齐备,很多事情都需要程序员自己做,自己去澄清需求、自己做设计、自己搭建环境、自己测试,甚至自己上线、自己维护(这件事情在我们团队被称为“自己吃自己狗食”)。
然而到了某些公司,在一些正规的流程下,“人”反而显得不那么重要了:一个完、整的流程被切分成若干环节,程序员只能负责那小小的一环,更严重的是,他们显示出消极和片面的情绪,他们称自己码农,自嘲并且觉得在总做一些低级和毫无技术含量的事情。
关于“码农”——这似乎是一件很悲哀的事情,在美国,程序员是一个相当值得尊敬的行业,硅谷的技术员工很早年薪平均已经超过10万美元;在中国,教师的行业起码获得了人们口头上的尊敬(虽然实质上也许并没有获得应有的待遇),而程序员,往往只能看到自己给自己呐喊。
这里没有绝对的对错之分,但我一直在博客中强调软件开发实质是一种创造性的劳动,只是在一个流程严格控制的公司内,这样的创造的火花可能被扼杀,换来的好处是人员的流动中,代价最小化:谁都可以走、谁都可以代替谁,所有问题都被认为只是时间问题……那么,程序员,你的自我价值何在呢?
关于测试
我听到很多真实的声音,都在抱怨测试工作乏味、加班辛苦。我认为,国内大部分的测试,其实完全是程序员扭曲的工作形态导致的。
专职的测试人员去做专项测试、整个系统的集成测试等等,我都能理解,但是绝对不应当深入模块内部去测试开发人员的代码,绝对不应该去考虑所谓的代码覆盖率——因为这些,比如白盒测试,本都是程序员自己该完成的事情。程序员自己开发的程序,当然要自己验证功能,很多软件公司在一些项目流程里就是没有专职测试介入测试执行,原因很简单,难道自己拉了稀,让别人给你擦屁股?
让程序员远离浮躁
去看看国内几家知名博客和论坛,多少浮躁的博文和帖子四处乱飞?多少人在骂公司狗血,在自嘲薪水,甚至在人身攻击?
浮躁的心态可能是造成这种现象的罪魁祸首,有一位同事说得好,很多具体的技术都可以学,但是执着的心和对技术的热爱是不容易学得的。
整个社会都在日益浮躁,ITEye本来也是一个有技术深度、氛围浓厚的网站,现在看起来有些鱼龙混杂;微博的流行正验证了社会浮躁的趋势,很多人没有时间和耐心去写完整的文章,但是两三句感慨、甚至一词半句的惊叹却容易得多;程序员像寻找速配男女一样,在这个概念翻飞的时代,茫然地寻找自己应该进入的领域,应该了解的技术,于是,很容易看到许多所谓的架构师和咨询师可以把这些东西讲得海阔天空、天花乱坠,这个概念、那个素语,但是——给他一个具体问题吧,要他写写实际代码吧,你会要了他的命。
世界上有两种最赚钱的人,一种是真正的生产者,他们用自己独一无二的聪慧、灵感和劳动创造了价值;一种是极其老道的投机者,专门从别人口袋里把钱掏出来放到自己口袋里。他们都受人尊敬、受人瞩目,后一种让自己的生活变得更美好,但是前一种,让整个世界更美好。