这篇文章的题目用了“Programmer”这个词,而不是程序员或者码农等等绝不是自装高大,而是为了囊括更多写程序的人,我认为所有写能让计算机执行的程序的人都应该叫Programmer,当然我也算其中一个,毕竟我也没有写过什么生产代码。
前几日我遇到一点事,感触颇深。事情是这样的,我那天在想在一个自动售货机上面买点东西,是先要付款然后再按选哪个的一种售货机。选择界面有的按钮是暗的,有的是亮的,按照常理推断,亮的就是可以点击的,也就是有货的位置,而暗的就意味着不能点,可是当我点了一个自己想要的东西,回头一看,那个位置竟然是空的,可笑的是弹簧还是转了一圈,不过可想而知神马东西都没有掉下来,当时我的下巴都快要掉下来了,钱花了,什么都没有得到!这就是程序员干的好事!坐过地铁的都知道,地铁上面都装了液晶显示器,会播放点广告、电视节目之类的,同时也会有显示地铁现在的站点和下一站的信息,可我当天坐的那趟地铁下一站竟然一直显示的是终点站!我不知道这个信息会误导多少人,毕竟每天坐地铁的人那么多。当时我在想,我怎么没有学一点Hack技术,看看能不能黑进这个系统,看看哪个笨蛋搞的,顺便帮他把这个搞定。不过这也就是我的一厢情愿罢了……
我不是愤青,只是看到了现实中很多粗制滥造的程序,在误导着别人,损害着别人的利益。程序自己是不能控制自己的,也不知道自己的影响力有多大,再NB的程序也只是在表达制造这段程序的Programmer的思想,如果程序出了问题,那必然是程序员自己的问题,别说环境、编译等等,这些不基本上都是有人来控制的吗?从广义范围讲,这些只是Programmer的工具,Programmer是一定要将自己的思想传达到位的,并且需要为自己传达的这段思想负责,如果程序员造出的程序都是像上面的这些,那么,什么软件工程,什么信息时代,不过是夺人耳目的辞藻罢了!
有人说,当代码行数到了一定的程序,程序就会达到不可控制的状态。我其实不太同意这种说法,代码是分模块的,如果每个模块设计的足够优良,组合起来也不一定会出问题,就像Tex系统一样(虽然这个系统我认为用户体验很恶心),程序是程序员灵魂的视窗,透过这个程序的表现完全可以洞察一个程序员的程序能力和态度,如果出了问题程序员老是推脱代码太多了,测试工作没做好,或者其他等等,而不是说是自己的问题,那么这个程序员真的配不上“称职”二字。不过话又说回来,在这个开发速度至上,金钱第一的社会里,代码质量?在天朝?呵呵……