做一个职业久了,需要时时跳出来,站在不同的角度,重新审视一下我正在从事着的工作。
对于软件工程师或者叫程序员的那份职业的各种评论从不缺乏。其中负面的大大多于正面的,而且大都基于中国背景。程序员做不过35岁,程序员本质是个体力活之类的评论算是老生常谈了。最近听到些新鲜的,像是这个:“美国的程序员是巴黎的服装设计师,中国的程序员是弄堂里的小裁缝,根本不是同一种工作。”
恩,很好很强大,我觉得比喻得很生动。中国人逻辑思维能力很强,历来绝不缺乏聪明的脑瓜,可为什么在软件开发各个层面上与美国的差距如此之大?如果说技术积累和管理经验上的缺失是因为中国信息化起步晚得多而造成的结果,那么程序员个人能力的全面差距又是什么造成的呢?又一篇博文说得好:“美国软件公司面对的客户,与中国软件公司面对的客户,也是巨人和侏儒的差别。”客户的层次决定了项目的规模,难度。一个再有天赋的程序员,也必须在一个个超越自己的挑战中才能持续成长;一个软件开发团队,必须经历过有一定规模的项目,才能明白为什么需要软件工程,为什么需要构架,为什么需要管理,以及怎样做。就像一个运动队要想提高水平,最快的方法就是不停得找比自己水平高的队伍打热身赛。而国内许许多多的公司,并没有真正有点规模的项目,只是凭借老板私人关系,接到什么活干什么活,也从来没有技术积累的眼光和能力,开发只能是低水平的重复,程序员单枪匹马,什么都干,无法专业化分工,更无法在某个领域深度挖掘,于是只能恶性循环。很多人在依旧年富力强之时就或因为对环境失望,或因未无力继续提高,而选择离开了这个职业。
一年前我在CSDN撰文驳斥一味消极的论调,而呼吁每个从业者应端正自己的心态,清楚地明白自己为什么选择这个职业,如果不是因为兴趣所致,并有所擅长,而只是听人家说这个行当工资高,就不顾自己的实际情况,挤破头要进来。而当遇到挫折时又一味悲观失望,散布消极言论。有人评论我的文章说:你说的很对,可是都是没用的废话,中国的现状就是这样,你个人再优秀,也拯救不了中国大多数的程序员。确实,中国最多的就是人,你要在行业站稳,做到一般还不行,你必须优秀,你必须踩着众多的失落者肩上,继续向上攀爬。很残酷,却很现实。在国内的整体环境尚无法提供足够多的有质量的程序员岗位的时代,个人只有同时具备天赋和努力才能在这个领域立足。
可我从来不怀疑整个软件或者说电子行业,在中国终究会成熟起来,会有更多的高水平项目或者产品直接由中国的工程师设计和实现。软件所要解决的客观世界的抽象问题永远都不会解决完,所以软件工程师会一直有饭吃。在一百年之后,哪怕已经有了机器智能可以自己编写程序,但人类依旧是主导者,那时软件工程师会如建筑师,机械工程师一样成为一个具有传统的行业。