程序员的优势和劣势

有段著名的对话:

男:我是程序员。 女:哦,程先生,你好。 男:哈,客气了,叫我序员就好。

现实中的程先生多种多样,如果不去考虑程序员、工程师、架构师等不同的title到底有什么区别,作为通过计算机语言与机器打交道的人群,至少有很多共同的特征。

程序员比其他行业有一个天然的优势,就是自己几乎可以随心所欲的创造出工具来帮助自己,从而大大提升工作效率。这一点在许多传统行业中是完全不可能的,比如:一名建筑工程师,他如果想随心所欲地马上着手创造一把符合他手头工作的锤子,则并不太容易。这种效率提升的前提,是可以将重复手动劳动的自动化。就像一个本来要挖20米深地基的工人,忽然变出10个机器人代替他挖,而他只需要在旁边小屋透过玻璃窗眯着眼睛喝咖啡一样。所以,利用好这个优势后,优秀的程序员可以将效率提升至少一个数量级。

程序员还有一个天然的优势,他的学习成本和创造成本都比较低。首先,技术水平的提升是不依赖复杂昂贵的专有设备和密集的人员的,他需要的只是电脑和网线。其次,创造成本中,除了时间之外,材料成本完全电子化,知识和创意通过代码体现在二进制中。而更不错的事情是:创造出的东西在世界范围内都是可以重用的,可以基于大量经过他人完善测试的库来避免自己的重复劳动。所以,利用好这个优势,在于勤于动手去尝试去做,整理好可以重用的通用库,然后在需要的时候毫不吝啬地将自己的想法实现。

不过,也有劣势

程序员的世界是理想化的,不存在非逻辑的干扰因素。如果已经设计出一套完美的逻辑去做一件事,无论做多少遍,也不会出现无法处理的僵局。所以程序员希望这个世界井然有序,每个实体像系统中的各个模块一样各司其职、准确而高效地交互。而现实中,绝大多数钱能解决的问题不是问题,绝大多数技术能解决的问题也不是问题。

阮一峰在翻译《More Joel on Software》时写的blog(鉴于他的blog内容太敢说真话,如果访问不了请自己想办法),也提到了原作中的一句话:

许许多多的人选择编程,首要的原因就是,他们宁愿将自己的时间花在一个公平有序的地方,一个严格的能者上庸者下的地方,一个只要你是对的就能赢得任何争论的地方。

是。有人会在旁边冷笑,并可能说出类似 “Too Simple, Sometimes Naive” 这样的江湖名句。某种意义上,我并不是个纯粹的理想主义者,但我还是有些偏执地要说:可编程的世界,就是程序员自己构架的理想国。

3 Responses to “程序员的优势和劣势”

  1. RoBa says:

    大赞~ 阮一峰那句话真是切中要害

  2. IUSR says:

    才看到这篇更新…
    牛人受什么东西触动了吗?哈哈,我已经开始联想了~~~

  3. ppg says:

    最终某个程序员创造出【黑客帝国】的母体出来了!哈哈

Leave a Reply