我为什么喜欢编程

作者: 阮一峰

日期: 2009年10月18日

个周末,我在家核对More Joel on Software的最后定稿。

此书已经在申请书号了,一拿到书号,就可以印刷和销售了。所以,不出意外的话,年底之前就能上架。

在复核的过程中,我又读到了书中让我最有共鸣的一段话:Joel谈为什么公正对程序员很重要。

我不知道别人的情况,我自己喜欢编程,很大的原因就是觉得程序的世界更公平公正,谁对谁错,只要运行一下代码就知道了。这同现实世界截然不同,在现实的世界中,只要你有权有钱,善于搞人际关系和钻制度的空子,你就能把错的说成对的,把黑的说成白的。老老实实、埋头苦干的人,眼睁睁看着乾坤颠倒、小人得志,而只能束手无策、一筹莫展。

我们生活的这个国家,是一个禁止自由思考、党决定一切的国家。在这里,如果你想不撒谎、不干坏事、并且被公正地对待,那么可能你只能去编程了。

==================

不搞政治

作者:Joel Spolsky

译者:阮一峰

老实说,只要有两个以上的人待在一起,就会有政治。这很自然。我说"不搞政治"的真正的意思是"不搞恶性的政治"。程序员早就练出了对公正有非常良好的判断力。代码要么能运行,要么不能。坐在那里争论代码是否有问题,这是毫无意义的,因为你可以运行代码,答案自然就有了。代码的世界是非常公正的,也是非常严格有序的。许许多多的人选择编程,首要的原因就是,他们宁愿将自己的时间花在一个公平有序的地方,一个严格的能者上庸者下的地方,一个只要你是对的就能赢得任何争论的地方。

如果你要吸引程序员,你就必须去创造出这样一个环境。当一个程序员抱怨"人际关系复杂"时,他们的意思明白无误,就是指任何个人因素超过技术因素的环境。程序员在完成手头任务时,不被允许使用最合适的编程语言,而是被命令只能使用另一种特定的语言,原因仅仅是老板喜欢这种语言;没有什么比这更让人气愤了。晋升的原因不是成果,而是人际关系;没有什么比这更让人抓狂的了。程序员被迫去做技术上落后的东西,仅仅因为上级或者得到上级支持的人坚持这样;没有什么比这更让人发火了。

没有什么比因为技术原因赢得一场由于政治原因本来要输掉的争论更让人心满意足了。当我在微软公司刚开始工作的时候,有一个正在开发中的大型项目走入了歧途,项目的代号是MacroMan,目标是创造一种图形化的宏语言。真正的程序员遇到这种语言会很有挫折感,因为图形的特性让你真地没有办法完成循环和条件判断功能。此外,对于那些非程序员的用户,这种语言也不会有很大作用,因为我觉得那些用户不会习惯算法思维,没有办法很快地理解MacroMan。当我说出对MacroMan的负面评价时,我的老板告诉我:"如果火车要出轨,没有东西能够阻挡。算了吧。"但是,我还是不放弃,一再地不断地争论。那时我刚走出学校,在微软公司中差不多跟谁都没有利害关系,所以,渐渐地,人们开始倾听我的核心观点,MacroMan后来终止开发了。我是谁并不重要,重要的是我是对的。非政治性的组织就应该这样,这种组织才会让程序员感到高兴。

总的来说,关注你的组织的社交动态变化,对创造一个健康的、令人愉悦的工作环境是很关键的,这样可以留住程序员和吸引程序员。

(完)

留言(64条)

老实说,阮,我替你有些担心,有些话语过于激烈了些。善意的提醒。

说得不错,支持

对于生活的热爱,有的爱需要赞美表达,而有的爱需要挑剔去宣泄。阮的或许是后者:)

常来看常有收获。

虽然谈不上自由!至少这里还是允许人们抱怨的。

这就是自由的第一步,相信会变好的!不要太悲观!

谁说图形化就一定没有前途嘛,"因为图形的特性让你真地没有办法完成循环和条件判断功能",这是什么话? LabVIEW明显可以做得很好啊.

逃避!!

我想问个一直困扰我的问题。我是个程序员(C开发),今年刚毕业工作。我周围的同事都很年轻,除了项目经理,最多三十多岁,。这个行业人员流动很大,我很难知道一个普通的编程人员是如何在职场成长的。我不知我四十岁以后会怎样,是一个负责人,还是程序员。但编程这种脑力活实话说对并不适合年纪大的人,我也不喜欢领导别人,当然我也得有这个就会。我真不知道那些年龄稍长的程序员的职场生活如何(国内国外)?

强烈支持阮兄的看法!!

我也认同你的看法

自由这东西太虚,没啥用。

哈哈

技术小乌托邦

GFW的那些程序员,很多都是“老老实实、埋头苦干”的人吧

不知他们能不能“不撒谎、不干坏事、并且被公正地对待”

看来要买一本。

图形是很恶心的……
记得一个日本医疗成像工程,光buglist就600多个
我陪2个日本人烧了两个多月才去完bug.
即使算法已经有人给你了,但要把 0 1的数据,精准的让用户理解还是很难的.

呵呵,我也很喜欢编程,你周末在家核对,我周末两天在家coding,程序是公正的简单的,只有01之分,然而社会是复杂的,复杂源于人们的思想,呵呵。

现实就是这样子,我们一直希望KISS,然而复杂的需求、程序员能力的参差不齐、Deadline的压力导致你无法KISS,为了钱、为了生存我们无法放弃,只有坚持到项目发布上线。

所以说,在中国最好的老师不是兴趣,而是生存!

我说“不搞政治”的真正的意思是“不搞恶性的政治”。

其实在我国,政治的意思就是恶性的政治。

你不关心政治,政治会来关心你。

程序员本人的态度也很重要,比如楼上提到的GFW程序员,他们是不是也喜欢公正的世界?

问题在于,这个世界恰恰是没有公正的。在这个世界寻求公正=缘木求鱼。

扯淡,你去Richard Stallman的主页看看,他可是个政治狂人,来中国的时候还说我国政治的黑暗啥啥啥,那天我差点不给他面子。

引用摩西英语的发言:

老实说,阮,我替你有些担心,有些话语过于激烈了些。善意的提醒。

摩西兄的话就世故了,怕什么!人就几口气,少一口萎一寸。何况都是抽象的大白话,他们心里更明白,只是火车已经出轨,谁都也拦不住,…………

说道俺心坎里去了

我们生活的这个国家,是一个禁止自由思考、党决定一切的国家。在这里,如果你想不撒谎、不干坏事、并且被公正地对待,那么可能你只能去编程了。
----------------------------------
不同意这个说法,太过极端。
自由思考没有被禁止,只是自由表达被一定程度的限制,某些众所周知而又不可告人的事情被禁止言传。

不过,像你这种极端的说法总是能获得青睐。大家都喜欢,极端的声音总是更加响亮,更吸引注意。

如此去编程,不过是像鸵鸟把头钻入沙地一般。

程序开发人员不得不面对职场政治的时候,是不是都要去选择自主创业呢~

哪行都不好混,主要看兴趣了,没激情的也做不久,不知道说得对不对?
不过博主说的很有道理。

中国的程序员作为IT民工的一份子,有什么机会谈政治呢?你见过建筑工地上的民工谈国计民生谈国家政策谈社会公平吗?
政治是给吃饱了饭想吹牛的人去谈的。而我们的程序员还挣扎在为两餐奔波和加班加点完成任务的生活温饱状态中,让他们代替GCD和政府官员去忧国忧民是不现实的。
在虚幻的代码中寻找公平的运行,是因为对现实社会不公的逃避与屈服而已。

引用时雨的发言:

自由思考没有被禁止,只是自由表达被一定程度的限制,某些众所周知而又不可告人的事情被禁止言传。

当你自由思考的结果无法和别人的自由思考产生碰撞和交流的时候,有如闭门造车式的思考,能促进你个人进一步的思考吗?

无法聆听他人的自由表达有时也是阻碍自我自由思考的绊脚石啊!

瞧,我这回复可以自由表达,看到的人就能促进你进一步的自由思考啦。

引用vazi的发言:
当你自由思考的结果无法和别人的自由思考产生碰撞和交流的时候,有如闭门造车式的思考,能促进你个人进一步的思考吗?
赞同这位兄弟的意见,如果思想仅仅停留在自己的大脑里,不能拿出来,不能分享,不能交流,而且也没有机会去实现,那么这种思想还有什么意思。

记得很久以前看过的一篇文章。说,如果你难以从内容判断一个人的话有多可信,那么根据其职业来判断是可行的。按照职业,说话可信读排序大概是,由大到小:工程师->科学家->文学家->政治家。
工程师是最不容易说假话的,工程师说了假话很快就会被揭穿,必须承担责任。。。 不确定的话也不能说。
我判断一个员工,也经常从这个角度出发,做工程师的必须不停的内省,反思自己的每一个观点是否有事实依据。没有这种思维习惯的人不适合做工程师。
现实中,确实有很多人,嘴上说着“肯定。。。”,但缺乏实在的依据和清晰的逻辑链条。

我同样喜欢编程,也和你有同样的政治态度!

引用haoyuenan的发言:
赞同这位兄弟的意见,如果思想仅仅停留在自己的大脑里,不能拿出来,不能分享,不能交流,而且也没有机会去实现,那么这种思想还有什么意思。

太不懂事了,D说了,根据国情,不准你交流

To vazi :

不许你与他人交流是吧,是的,我承认有一部分信息是不能拿出来交流的,因为不被允许。
但剩下的信息呢,并没有被禁止,我们不能以一部分信息被禁止为借口,为其他方面的缺乏成果作辩护。太过以偏概全。
自然,我也希望所有信息的交流都是自由的。

程序的世界,是程序员自己构架的理想国

“Joel谈为什么公正对程序员很重要。”这文章说的好,正解。

在程序的世界里获得无穷快乐。有这样个小乌托邦做个寄托,心平气和。现实世界该怎样还怎样,不拒绝不逃避。

看来才入程序的门,再过十年您再说这话吧。
有人的地方就有政治,除非您与一帮经过严格逻辑训练过的机器人协作编程。

程序人生,游戏人生。

在与朋友讨论为什么网游如此吸引人时,公正也曾经是我的回答;也曾经得到不少认同。

但随着做程序员时间的变长,我却开始慢慢相信“只有弱者才渴求公平”。

马斯洛需求五层次中我没有看到公平。
在编译器中我没有看到公平。
在游戏脚本中我也没有看到公平。

圣者制订公平,雄者玩弄公平,强者利用公平;弱者渴求公平。

嗯,邪恶的party

有人在的地方就一定会有政治

可惜人不是电脑,这个世界也不是0和1那么简单直接。程序员的理性方法在解决某些问题时有效,但是其他事情还是需要有人去做,逃避并不会导致问题的解决。所以,程序员作为一个职业当然是OK的,但我不认为是唯一的选择。而且,很多事情都是外人看起来光鲜,如果真的做起来,可能就会发现各有各的烦恼了。

引用时雨的发言:
我们生活的这个国家,是一个禁止自由思考、党决定一切的国家。在这里,如果你想不撒谎、不干坏事、并且被公正地对待,那么可能你只能去编程了。
过于偏激和狭隘的言论,不敢苟同。

中国绝不是一个禁止自由思考、党决定一切的国家。

相对其他国家,中国公民的言论已经很自由了,包括你可以看到的电视节目、政治活动内容、各国各类的球赛的数量和范围,都是别的国家无法比的,比如日本和韩国。

言论偏激,狭隘的,属于YY型,不敢苟同。只抱怨,偏激,却要求别人认同自己。从中国成立至今,个社会人们的自由一直在进步。君不为社会多树立点榜样,反是动员一群人自我YY,试问谈何社会进步,自由

五毛们,退下吧...

有些不解,怎么你的blog上说这些就不会被封,我以前几个blog随便说点擦边的立马就被封呢?

引用jeffyyko的发言:


过于偏激和狭隘的言论,不敢苟同。

中国绝不是一个禁止自由思考、党决定一切的国家。

相对其他国家,中国公民的言论已经很自由了,包括你可以看到的电视节目、政治活动内容、各国各类的球赛的数量和范围,都是别的国家无法比的,比如日本和韩国。

严重同意这位兄弟说的!

相比食人族,贵党已经是非常开明的了...至少他们会用刀叉。

恩,订阅了你的blog好象已经有不短的时间了.今天订购的软件随想录到货了,虽然我也记得你说过即使卖得好你也拿不到额外的分成...感谢你的贡献.不管你blog的内容是政治,软件还是其他相关我都会非常喜欢.

对比较真诚的人来说,这个世界真是太复杂了。有时候也想变成个机器,没烦恼是吧。

仰望星空,这个世界比很多人想象得要简单得多。可惜,人缺少什么,就会疯狂追求什么,比如有智力缺陷的,就会想方设法在不该复杂的地方搞点复杂的东西出来。

阮兄比起太多的人更爱国更爱身边的人,他希望有更多的人能明白自己是个人,有追求自由的权利!如果因为这样的观点而迫使我们看不到他的文章,阮兄请一定来找到我们!

引用为一笑的发言:

但随着做程序员时间的变长,我却开始慢慢相信“只有弱者才渴求公平”。

圣者制订公平,雄者玩弄公平,强者利用公平;弱者渴求公平。

初看你这个说法,似乎是对的,但是,为什么弱者渴求公平呢?你的意思是,弱者不是渴望公平,而是渴望胜利,所以希望修改规则为“公平”,使得弱者也能获得更好的资源。是这样的意思吗?

照你这个说法,这个世界上也没有正义。
圣者制订正义,雄者玩弄正义,强者利用正义;弱者渴求正义。

多么糊涂的思想啊。怀疑一切,包括公平的定义。所有一切都被你看成是虚伪的,本质上都属于弱肉强食的规则。


悲剧的中国!

喜欢编程,喜欢自由的感觉!

非常赞同你的观点,希望可以多读到些你的好文章!感谢!

引用摩西英语的发言:

老实说,阮,我替你有些担心,有些话语过于激烈了些。善意的提醒。

一句话而已,你还怕成这个样子,看来你的思想仍然活在过去。

引用Ling的发言:

自由这东西太虚,没啥用。

哈哈



一点都不虚,公司强制你每天必须加班四个小时以上,你就轻而易举地理解“自由”一词。

即使是程序员的世界,也不仅仅是“代码能否运行”这么简单,稍微上点规模的系统,你会发现大量的设计决策需要权衡和交易,不同的观点之间需要辩论。

这一篇特别有感触。
高中文理分科的时候,我选择理科,虽然也有随大流的原因,但是最决定性的理由是,理科对就是对,错就是错;而文科,我不知道这篇作文与那篇作文得分高低差别的理由在哪里,每次都像农民种田凭天吃饭一样,得分完全看老师心情?这种随机性让我对自己驾驭文字的信心大大减弱,直到离开学校多年才慢慢找回自由写字的感觉……
虽然我不会编程也不会修电脑,可是看到程序员的字眼就感到特别亲切,也读了不少和互联网有关的书,也许就是冥冥中的缘分?哈哈。

引用qiusir的发言:

对于生活的热爱,有的爱需要赞美表达,而有的爱需要挑剔去宣泄。阮的或许是后者:)

若批评无自由,则赞美无意义。

“许许多多的人选择编程,首要的原因就是,他们宁愿将自己的时间花在一个公平有序的地方,一个严格的能者上庸者下的地方,一个只要你是对的就能赢得任何争论的地方。”
读这句话感觉有小小的热血涌上来了呢。。。编程真的是好神奇

晚了好很多年才路过这里,呵呵。
不错,中国人都很无奈。

说的真让人感动

我想起了一句话:
  From time to time in the years to come, I hope you will be treated unfairly, so that you will come to know the value of justice.

  我希望在未来岁月中,你能时不时地遭遇不公,唯有如此,你才能懂得公正的价值。

忽然很开心

不知各位所谓得 "自由"具体指的什么,可以阐述一个实实在在的东西吗?不要谈虚的.
我先猜测各位说的思考自由,交流自由,是 "GWF"? 我想程序员都会翻墙吧? 入职互联网公司一般都会提供翻墙软件吧. 如果是这个的话, 可以说是限制可自由, 远谈不上 "禁止自由思考". 有没有可能程序员和政府官员的考虑的角度不一样, 就像医生不会考虑律师的考量, 我也曾看到很多支持GWF的言论, 假设开放GWF, 中国还会成为继美国之后唯一一个拥有互联网巨头的国家吗? 人民会不会受国外媒体的影响变得抵触政府, 国家会不会分裂? 文化上,思想上会不会全部被西方同化, 至少政治上现在看来很多人希望同化. "自由民主人权" 成为抨击中国的三大法宝, 究竟是因为制度跟西方不一样引起西方的不满, 还是我国政治就真的如此黑暗? 也许政治存在一定问题, 但是哪个国家的又完美无缺呢? 西方那些国家,人全加上都没中国人多, 中国体量大, 问题自然也会放大, 这也到是一件好事.
也许你们说的不是GWF, 各位针自由 还有什么想讨论的,具体到实处,不要抽象的名词,欢迎回复????

引用奥巴乌的发言:


一点都不虚,公司强制你每天必须加班四个小时以上,你就轻而易举地理解“自由”一词。


本来就可以不加啊,又不是政府强迫你加的

我要发表看法

«-必填

«-必填,不公开

«-我信任你,不会填写广告链接