我很反感业界对代码工人的炒作,我不认为程序员只是做的最简单的工作,至少在中国不是。如果一个项目已经做好了详细设计,然后交给程序员编码,这是很简单,但在中国,有几个程序员做的是这样的活的,往往是在连概要设计都没有的情况下,更甚者是没有什么系统分析的情况下开始编程,这样的编程难道只是编程吗,难道不要做设计,做分析吗?苦思冥想下一个又一个问题的解决难道比解一个数学公式简单吗,知识量的不断积累难道比学数学到的知识少吗(要说一下,我不诋毁数学,相反,我认为如果一个人想在计算机界有所作为的话,数学一定要学好,尤其是离散)?至少我不认为,因为我一直在写程序,我也学过高等数学、离散数学。
如果说有代码工人的话,那么这代码工人就是在拿到详细设计后进行编码,这个详细设计要做到什么情况,举个最简单的例子:对一个输入项的有效验证,进行详细设计就要写出所有可能的输入情况,包括正常与非正常,以及可能的输出情况,代码工人面对这样的设计,编程可以说几乎是一点力都不费的。但现实中的各位程序员大哥哥,大姐姐或者是小弟弟,小妹妹们,你们谁见过这样的设计呢?我要是设计出来这样的设计,我还不如自己编码得了,能费多少时间。
这个世界上根本都不应有,也不会有代码工人的出现的,那是想用标准把程序员套死的人想出来的,那是些从来都没有编过程,只是看了几本破书然后做大梦的人想出来的,那是些所谓的学者派的人想出来的。设计与编码分离,美其名曰规范,实际上是对人的天才的一种束缚。标准应该是实用、简洁的标准,而不是教条的标准。我认为太多的规范(指不必要的)是沿袭机器大生产的做法的。换句话说就是把人当作机器来使用,这根本是不可取的。
管理界已经由自上而下的管理向扁平式管理转变,我们程序员却要倒着走,很可悲呀。把编程划分成那么多的步骤,我都不知道是哪个神经病想出来的。编程也要扁平化,只需要三个环节,一个面向客户,偏重与客户的沟通,类似与现在的需求、系统分析员,一个面向编程,包括所有的设计和编码,剩下的一个是测试。如果能把一个项目的详细设计做出来,我不相信再加上编码能占用多少时间。我们的目标是让程序员这个团体变成一个天才般的团体,一个最富学习精神和创新精神的团体,而不是僵化的机器大生产的工人。
程序员是不能只会几门语言的,基础知识很重要,只有基础知识比较牢固,才能有不断向上提升的空间,做为一个程序员,最重要的不是你编码有多快,而是学习和应用的能力有多强。编程的同时要注重基础知识的积累,积累基础知识时又不忘编程实践,二者应结合起来。
我认为人活一辈子就是要不停的前进,我们需要的不是单一的技能,需要的是一个综合,能让自己的以后还有提升空间的综合。大家同样是人,何必一定要把别人当作机器呢?什么样的将军是好将军,能让小兵都变成大将的将军是最好的将军。不单是我们程序界,包括整个社会,如果我们一起大踏步的向前进,不是很好吗?我们多提供一些让小兵变成大将的土壤,不是很好吗?提出代码工人的人,我不能说他本意是恶意的,但我至少可以说他潜意识不是善意的(做梦时想出来的不算)。
代码工人,不要也罢!