寻找优秀的程序员(译文)

作者: 阮一峰

日期: 2008年11月 2日

下面的正文非常精彩,不过请先花2分钟,阅读我的说明。

上个月,我同图灵公司签了合同,翻译More Joel on Software一书。敲定合同后,我问:

可以将我的翻译,像原文那样开源吗?

回答是不行。我又问:

可以将部分翻译开源吗?比如25%......

回答是可以。(感谢图灵公司,虽然你们没有预见到,允许整个中译本自由转载,将大大增加销量。)......所以,全书的36篇文章中,我会陆续在网志上贴出9篇,边译边贴,随时听取反馈。欢迎大家指教,指出错误和不妥之处。

下面就是第一篇。翻译得非常辛苦,昨天干了一天,今天白天出门,晚饭后又干了三个小时才完工。令人欣慰的是,原文堪称佳作,我确信10年后还会有读者,所以辛苦还算值得。

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

寻找优秀的程序员

作者:Joel Spolsky

译者:阮一峰

原文网址:http://www.joelonsoftware.com/articles/FindingGreatDevelopers.html

写于 2006年9月6日,星期三

优秀的程序员都在哪里?

这是你第一次公开招募雇员。如同大多数人一样,你会发布广告,可能也会浏览一些大型的网上论坛,然后你就得到了一吨的简历。

当一份份看的时候,你会想,"嗯嗯嗯,这人应该可以",或者,"这人差远了",或者,"我要知道他能不能下决心搬到布法罗[1]来"。但是,我保证有一件事肯定不会发生,那就是你对自己说:"哇,这家伙太聪明了!这种人,我们一定要得到!" 事实上,当你看完几千份简历----假定你懂得如何看简历,那可并不容易----你都看完了,足足几千份的求职申请,老实说,你从中没有发现一个优秀的程序员。一个也没有。

下面,我就来说说为什么会这样。

很简单,那些优秀的程序员,就同所有行业中最好的人才一样,是不会出现在招聘市场上的。

普通的程序员在整个职业生涯中,可能会有四次求职。

但是,那些最优秀的人才,当大学毕业的时候,他们会从教授那里得到实习的机会,就这样进入这个行业。然后,他们会从实习公司得到正式合同,根本不用去找其他工作。如果他们离开那家公司,那可能是因为同朋友一起去创业,或者因为他们跟着一个了不起的老板,一起跳槽到另一家公司,或者因为他们决定一定要换个工作方向。比如说Eclipse[2],因为Eclipse很酷,所以他们想去BEA[3]或者IBM找一个Eclipse的工作,然后他们肯定会得到这份工作,因为他们是优秀人才。

如果某一天,你遇到了这样的人出现在招聘市场上,那么你很幸运,你真的非常幸运。可能的情况是,他们的配偶决定到安克雷奇[4]当一个实习医生,他们就会发出简历,给少数几个他们认为自己愿意在里面工作的位于安克雷奇的公司。

但是大多数时候,优秀的程序员(我几乎是在重复了)是那么优秀(对,我就是在重复),未来的雇主通常会一眼看出他们的优秀,这意味着,这些程序员基本上想去哪里工作,就能去那里工作。所以,老实说,他们不会发出许多份简历,到处找工作。

听起来,他们就是你想雇的那种人?当然。

这条规律----优秀的人才从不在市场上求职----有一个推论,那就是在人才市场上找工作的,大部分都是一些水平很差、完全达不到要求的人。他们一年到头都在被解雇,因为他们不能完成工作。他们所在的公司也会完蛋,因为这些人是如此的不合格,所以有时他们会毁掉整间公司。是的,这种事真的发生。(公司完蛋的另一个可能的原因是,既然雇佣了一个不合格的程序员,就可能雇佣一大堆不合格的程序员,累积起来,就导致了总的失败。)

谢天谢地,这些那么糟糕的人很少能够求职成功,但是,他们总是不断地发出求职信。他们找工作的时候,就去Monster.com[5],将所有的职位翻看一遍,300个或者1000个,试图赢得彩票。

从数字上说,优秀的人才很少,而且从不出现在招聘市场上,而那些不称职的人,即使数量也同样少,却在整个职业生涯要申请几千份工作。所以,老兄,现在让我们回到你从Craigslist[6]上搞到的一大堆简历上来。你对他们中的大多数都看不上眼,有什么好奇怪的?

我猜想,聪明的读者读到这里,会指出我遗漏了最大的一类人:那些可靠的、称职的程序员。这一类人在数量上多于优秀程序员,但是少于不称职的程序员。不管怎样,总的来说,在你收到的1000份简历中,他们的比例是很小的。在绝大多数情况下,几乎所有此刻桌子上堆着1000份简历的Palo Alto[7]人事经理们会发现,其中970份简历都是出自同样的那少数970个不称职的程序员,内容都一样,这些家伙每一份工作都发求职信,也许会这样干上一辈子。1000份简历中仅仅只有30份是值得考虑的,其中可能偶然会出现一份优秀程序员的简历。OK,可能一份也没有。请想一想,如何在一堆干草中找到一根针,我们下面将会看到,这是可以做到的,但是比较难。

我能得到他们吗?

你能!

好吧,你也许能!

实际上,这要看情况而定!

请不要将招聘看作一个"收集简历,过滤简历"的过程,你必须将它看作是一个"追踪优胜者,设法结识他们"的过程。

我有三个基本方法,实现这个目的:

1. 走出去。

2. 实习生。

3. 建立自己的社区(community)。*

("建立自己的社区"这一条后面,有一个星号。它的意思是,这一条有难度,难得就好像数学家乔治·丹茨格[8]解决的那道数学难题一样。他之所以能解决,是因为上课迟到了,以为黑板上的题是课外作业,而没有听到老师说,那道题是无法解决的难题。)

在这方面,你可能有自己的想法。我只是想谈一谈这三个对我自己有效的方法。

走出去,伙计!

设想一下,那些你想雇用的人会出现在什么地方。他们会去参加哪些会议?他们住在哪个地区?他们属于什么组织?他们上什么网站?不要像撒一张大网一样,在Monster.com上搜索求职者,你可以浏览"Joel谈软件"网站上的求职讨论区,将搜索范围缩小到那些阅读我的网站的聪明人。你还可以去那些真正有趣的技术会议。优秀的Mac[9]程序员会参加苹果公司的WWDC大会[10]。优秀的Windows程序员会参加微软的PDC大会[11]。此外,开源软件也有许多会议。

你要关心正流行的热门新技术。去年是Python语言,今年轮到了Ruby语言。你去参加它们的会议,在那里你会找到这些技术的早期接受者,那些人对新事物充满好奇心,而且永远对如何进一步改进有兴趣。

你要在走廊里到处兜兜,同遇到的每一个人都攀谈一番,去参加技术环节的小组专题讨论,将发言者邀请出来,一起喝杯啤酒。当你终于发现聪明人的时候,砰!----你立刻进入全力套近乎和吹捧模式。"啊哈哈哈哈,那真是太有趣了!"你说。"哦,我真不敢相信你这么聪明。你刚才说你在哪里工作?真的吗?那个地方?哎呀呀呀呀。你会不会觉得,你能做出更大的成绩?我想我的公司可以雇......"

这种方法的引申含义就是,不要在大型的求职论坛发布没有针对性的招聘广告。有一年夏天,我一不小心在MonsterTRAK[12]上发布了一个暑期实习的招聘广告。MonsterTRAK允许你只出很少的钱,就能使你的招聘广告有机会被美国各地所有学校的学生看到。结果就是我收到了几百份简历,但是其中没有一份能够通过第一轮筛选。我们花了钱,却得到了一堆几乎毫无机会被我们雇佣的人的简历。这样的日子,一连好几天,MonsterTRAK 源源不断地送来简历,这个事实使我觉得我们大概不会找到想要的人了。同样的,当Craigslist刚成立的时候,用户都是互联网产业的业内人士,我们通过在上面发招聘广告,找到了优秀人才。但是今天,会用计算机的人差不多都在上Craigslist,结果就产生了太多的简历,在其中发现人才,简直比在一堆干草中发现一根针的概率还要低。

实习生

抢到人才,那些永远不会在招聘市场上出现的优秀人才,有一个好办法。那就是当他们还在学校里的时候就出手,那个时候他们甚至还没有意识到,世界上有人才市场这件事情。

一些人事经理非常反对雇佣实习生。他们认为实习生不成熟、水平不够。一定程度上,确实如此。实习生不如资深雇员有经验(且慢,真的如此?!)。你不得不在他们身上多付出一些,这需要时间,然后他们才会全速前进。对于我们这个行业来说,好消息是,一些真正优秀的程序员往往在10岁的时候就开始编程。当其他同龄的孩子正在玩足球(这是一种许多不能编程的孩子喜欢玩的游戏,就是用脚去踢一个叫做球的圆形物体----这样说听起来很怪,我知道的),他们却在爸爸的书房里试着编译Linux的内核(kernel)。他们不去操场上盯着女生看,而是在Usenet[13]上大打口水战,宣称某些编程语言糟糕透顶,没有实现Haskell[14]风格的类型推断(type inference)。他们不在车库里组建乐队,而是动手完成一个很酷的黑客程序,对付那些企图偷用别人Wi-Fi带宽的邻居,当那些人一打开Web网页,所有里面的图片都会倒过来。哇哈哈哈哈!

所以,在软件开发这一块,同其他行业(比如法律或医学)不一样,当那些孩子进入大二或大三的时候,他们已经是好得不得了的程序员了。

天底下有一个工作,几乎所有人都会投求职信,那就是每个人的第一份工作。大多数孩子都觉得,犯不着为这种事担心,到大学最后一年再说吧。事实上,大多数孩子都不会太主动,他们要等到校园招聘开始以后,才会觉得应该要投简历了。在第一流大学读书的孩子们,单单从校园招聘中就会有足够的好工作可以挑选,他们很少会再去考虑那些懒得来学校的雇主。

你可以赶去参加校园招聘,虽然乱哄哄的,但是这是一件好事,不要搞错了。但是,你也可以在孩子们毕业的一二年前,就把事情搞定。

在这方面,我自己的Fog Creek软件公司有许多成功的例子。每年9月份,我就开始行动,我动用所有的资源追踪这个国家最好的计算机方面的学生。我给全国200所学校的计算机系写信。在离毕业还有二年的时候,我就搞来主修计算机科学的学生名单(为了搞到名单,你通常需要在系里有认识的人,老师或者学生)。然后,我就给我找到的每一个学生写一封信。不是电子邮件,是真的纸质的信,上面有Fog Creek软件公司的抬头。我还用墨水笔,醒目地签上自己的大名。很显然,如今这种事情不多见,所以我的信可以得到足够的关注。我在信里跟学生们说,我们公司有实习的机会,我以个人名义邀请他们来申请。另一种情况是,我给计算机系的教授和校友发电子邮件,请他们将我的邀请信,转发到计算机系的邮件列表中去。

慢慢地,我们就会收到许多实习职位的申请信,我们就从中挑出最后的入选者。在最近几年中,我们每个实习职位都有200个人申请。我们通常从这么多申请表格中筛选出10份(每个职位),然后给这些人打电话面试。在通过电话面试的人中,我们可能会邀请2到3个飞到纽约,进行面对面的面试。

到了面对面的面试这一步,面试者就很有可能被我们雇佣,所以现在是时候启动全场紧逼式的招募了。豪华轿车在机场等着他们,穿制服的司机帮他们提行李,并且将他们送到旅馆,那里很可能是他们迄今见过的最酷的旅馆,坐落在城中最时尚的地区,卫生间里有各种复杂的设备,简直可以放进当代艺术博物馆中当作藏品(不过当你想搞清楚怎么用它们刷牙的时候,祝你好运)。当面试者住进旅馆以后,我们给他留了一个大礼包,里面有一件T恤、一本由Fog Creek员工编写的纽约观光手册、一张包含2005年暑期实习全过程的纪录片的DVD。屋里有一个DVD播放机,所以他们当中许多人都看到了,上一年的实习是多么有趣。

一天的面试结束以后,如果他们想看看纽约,我们出钱让他们再待上二天。最后,用豪华轿车接他们离开旅馆,送到机场,搭上返家的航班。

即使到纽约参加面试的人中,三个里面只有一个能够通过全部的考核,但是让那些最后通过的人,对我们有一个正面的印象,这是非常重要的。就算那些没有通过的人,也会认为我们是一流的雇主,当他们回到学校,就会告诉所有的朋友,这次住在豪华旅馆的纽约之行是多么好玩。他们的朋友听了,就会在明年夏天申请我们的实习生,哪怕只是为了有机会到纽约来玩一次。

就暑期实习本身来说,在这个过程中,学生们通常会想,"OK, 这次暑期实习还不错,我得到了一段美好的经历。也许,只是也许,我可以获得一份全职工作。"我们在学生前面就已经想到了这个问题。我们在暑期中,会决定我们想要哪些人留下来作为全职雇员,学生们也要利用暑期决定是否愿意加入我们。

正是因为如此,我们会把真正的实际工作交给实习生。那些都不是轻松的活。我们的实习生总是接触会在最后产品中使用的代码。有时候,他们做的是整间公司里最新潮的东西。这会让我们的正式雇员有一点点嫉妒,但是这就是生活啊。有一年夏天,我们用四个实习生组成一个开发小组,从零开始做一个全新的产品。他们用几个月的时间,做成功了,获得的收益完全超过了实习的开销。即使实习生做的不是新产品,他们做的也总是真实的、会投入生产阶段的代码,并且他们个人要对软件功能中的某个主要方面承担完全责任(当然,资深雇员会作为导师帮助他们)。

我们确保他们的实习生活过得愉快。我们举办晚会和邀请他们到家里做客。我们免费为他们提供条件很好的宿舍,在那里他们可以结识来自其他公司和学校的朋友。我们每周还有一些课外活动或者郊游,比如百老汇的音乐剧(今年的实习生都迷上了音乐剧《可爱大道》[15])、电影首映式、参观博物馆、围绕曼哈顿岛划船、观看杨基棒球队(Yankees)的比赛。不管你信不信,本年度最受欢迎的活动之一,是登上落基山顶。我的意思是,爬到曼哈顿中区一幢高楼的顶楼平台。你大概不会觉得这种活动好玩,但是它真的受欢迎。除了实习生以外,Fog Creek的一些正式员工也参加了每次活动。

当夏天结束的时候,总是有一些实习生让我们确信,他们就是那类我们非雇佣不可的真正的优秀程序员。不是所有的实习生都是这一类,请听好,有些实习生确实是优秀程序员,但是我们愿意让他们离开,还有一些实习生可能在其他地方会成为优秀程序员,但是不是在Fog Creek。举例来说,我们是一家很强调自治(autonomous)的公司,没有很复杂的管理层级,我们希望所有人能够主动工作。从过去来看,有些时候,如果有人督导,一些暑期实习生就表现得非常好,但是一旦他们来到Fog Creek这种没有很多硬性管理的环境,他们的表现就不太好。

无论如何,对于那些我们确定要雇佣的人,等待是没有意义的。我们会很快就提供一个正式职位,条件是他们毕业以后过来工作。这个职位的待遇很丰厚。我们就是要他们回学校后,跟朋友们交换意见,然后他们会意识到,他们的薪水比别人都要高。

这是不是意味我们给的报酬太多了?完全不是。你要这样看,第一年的薪水一般来说总是要打一点折扣的,因为必须考虑到新人没有好的表现的风险。但是我们已经考察过这些孩子了,可以毫无风险地认定他们就是优秀人才。我们很清楚他们的能力。所以,当我们雇佣他们的时候,我们比其他雇主有更多的信息,后者仅仅面试过他们而已。这意味着我们能够付更高的报酬。我们有更充分的信息,所以我们愿意比那些没有这些信息的雇主,付出更高的工资。

如果我们正确地做好份内的事情,就像我们通常的那样,那么到了这个时候,一个实习生要么被我们放弃,要么接受了我们提供的职位。不过有时,还需要一点额外的说服工作。有些实习生不愿意马上给出明确答复,他们还想等一等,看看有没有更好的机会。但是,一个来自Fog Creek的有效的工作机会,会起到这样一种作用,那就是当他们第一次在早晨8点不得不起床、穿上套装、去参加甲骨文公司的面试的时候,当闹钟响起的那一刻,他们很可能会说:"我干嘛一定要在该死的早晨8点起床、穿上套装、去参加甲骨文公司的面试呢?不是已经有一个很好的工作机会在Fog Creek等着我吗?"我的期望是,他们会觉得太麻烦,就不去参加那个面试了。

在我继续往下讲之前,顺便说一句,我必须对计算机科学和软件开发的实习生问题,做一点澄清。在如今这个时代,在这个国家,对实习生支付报酬被认为是理所当然的,而且他们的报酬往往很不错。虽然不付报酬的实习生在很多其他行业依然很常见,比如出版业和音乐业,但是我们的工资标准是每星期750美元,还提供免费的住宿、免费的午餐、免费的地铁交通费,更别说来回纽约的飞机票和其他各种支出。如果单看美元的数量,我们的工资比平均水平要低一点,但是如果将免费住宿考虑在内,我们的工资就比平均水平要高一点。我想之所以我要说这个,是因为每次我在我的网站上谈到实习生的时候,总有人搞不清楚,认为我占了别人的便宜,好像我在搞奴隶制似的。那边的谁----你们这些自以为是的毛孩子!给我拿一杯冰冻橙汁,要手挤的,别磨磨蹭蹭!

实习生制度创造了输送优秀人才的管道,但是这根管道比较长,而且一路上的损耗很大。根据我们的计算,基本上每雇佣一个全职雇员,我们就必须请两个实习生,以便挑选。如果你请的实习生离毕业还有一年,那么从你开始确定实习人选的时候算起,到他正式第一天上班,会有二年的时间间隔。这意味着,每年夏天我们的办公室有多少空位置,我们就要请多少实习生来。头三个夏天,我们试着将实习生限制为离毕业还有一年的学生。但是,今年夏天,我们最终意识到,我们错过了一些更年轻的优秀学生。所以,我们将实习生计划向高校中所有年级的学生开放。说出来你可能不信,我正在琢磨怎样将高中生弄进来,也许让他们课后组装电脑为上大学攒一点钱,我们的目的仅仅是开始着手建立与下一代优秀程序员之间的联系,即使这样一来,管道会长达6年。没关系,我有长远眼光。

建立社区(*难)

这里的基本思想是创造一个大型的网络社区,让观点相近的优秀软件开发者,以某种形式,聚集在你的公司的周围。然后,每当你有职位空缺的时候,总会有天然的候选者。

告诉你实话,我们就是用这种方法发现了Fog Creek里这么多优秀的程序员,就是通过我的网站"Joel谈软件"(joelonsoftware.com)。那个网站上主要的文章,读者多达100万,其中大部分都是程序员或者有关的人员。有了这么庞大的、自发聚集起来的读者群,无论何时,只要我在主页上提到我正在招聘人,通常就会得到很大一堆优秀简历。

我用一个星号,表示这种方法很"困难",因为我感到,好像我给你的是这样一个建议,"要赢得选美比赛,第一步是要变美,第二步是参加比赛。"我有这种感觉,是因为我真的不太清楚,为什么我的网站变得这么流行,或者为什么读这个网站的人都是一流的程序员,我不知道自己做了什么。

我真心希望,我能在这个地方给你更多帮助。在这方面,Derek Powazek写过一本好书Design for Community: The Art of Connecting Real People in Virtual Places(《社区设计:虚拟空间人际交往的艺术》,New Riders,2001)。许多公司尝试过不同的网志策略,但是很不幸,其中的大多数最终都不会有任何读者群。所以,我只能说,对我们有效的方法,对你可能有效,也可能无效。我不确定你到底该怎么做。我在自己的网站上,搭建了一个求职区(jobs.joelonsoftware.com),出350美元,你就可以在那里发布招聘广告,所有"Joel谈软件"的读者都会看到。

员工推荐:小心陷阱

寻找优秀程序员有一个所谓标准建议,就是询问你现在的雇员。怎么说呢,它背后的理论是,聪明的程序员一定认识其他聪明的程序员。

他们可能确实认识,但是他们的亲密朋友中,也会有人不是非常优秀的程序员。这种方法会制造大概100万颗地雷。所以,真实生活中,我一般认为员工推荐是最不可靠的招聘新人的方法之一。

一个无法回避的巨大风险,就是非竞争性合同[16](noncompete agreements)。如果你不以为然,请想一想Crossgain公司的遭遇,这家公司不得不开除了四分之一员工,因为那些人以前都在微软工作,微软公司威胁起诉他们。在正常理智的情况下,没有程序员会签署一份非竞争性协议,但是大多数程序员确确实实是签署了,因为他们觉得这种合同不可能会实施,或者因为他们没有习惯去阅读合同里写了什么,或者因为他们已经接受了雇主提供的职位,穿过半个美国,举家搬到新的城市,在上班的第一天第一次看到了合同的全文,这时再要协商具体条款为时已晚。不管什么原因,总之他们签署了,但是实际上,这是雇主让人最讨厌的做法之一,而且这个条款可以强制执行,并且真的会被执行。

如果你不当心非竞争性合同,并且很依赖员工推荐,后果可能是,你雇了一堆人,他们的前雇主都是同一家公司,因为就是在那个地方,你的雇员第一次结识了其他明星程序员。这一切,导致你承担了非常巨大的风险。

另一个问题是,如果你不能保证应聘者百分之百被接受,那么当你要求你的雇员推荐人选时,他们甚至都不会考虑向你说出他们真正的朋友。没有人愿意说服朋友来应聘自己的公司,如果他们可能被拒绝的话。这样多多少少会破坏友谊。

因为他们不告诉你谁是他们的朋友,你可能就不能雇到以前同他们一起工作的人。那么,剩下来的他们推荐的人,可能就不是很有能力了。

但是,"员工推荐"的真正问题在于,如果负责招聘的人事经理懂一点经济学,决定为每一个有效的推荐提供奖金,麻烦就来了。提供奖金的做法很常见,原因是这样的:如果通过猎头公司或者外部招聘渠道雇人,每个职位的中介费用大概是3万美元到5万美元。如果我们向"员工推荐"支付奖金,比方说,每推荐成功一个人,他们可以拿到5000美元的奖金,或者每推荐成功10个人,他们可以得到一辆昂贵的跑车,或者其他的奖励方式。那样的话,想一想有多少钱可以被省下来。即使对于一个工资丰厚的雇员,5000美元听上去也像是一笔小财,因为它真的是。总之,这样处理看上去是一种双赢的、各方面都很周到的方案。

麻烦是,突然之间,你发现每个人的心眼都活了,雇员们开始将他们能想到的每个人都拖来面试,他们获得了强烈的动机,推动他们找来的人被雇佣。他们教外面的人如何应付面试,在会议室中同应试者说悄悄话。转眼之间,你手下的整个劳动大军,都在设法让你雇佣某人的一个大学室友,此人对你毫无用处。

这样是不行的。ArsDigita公司曾经轰动一时,因为它买了一辆法拉利跑车,陈列在停车场上,宣布任何人只要能成功推荐10个人进公司,就能拥有这辆跑车。没有人能够接近完成这项任务,但是新进员工的质量却不断下降,公司后来变得四分五裂,不过原因可能不是这辆法拉利,因为后来被曝光,该车是租的,不过只是公开作秀而已。

当一个Fog Creek的雇员提议雇佣某个可能对我们很合适的人,我们愿意省去第一步的电话筛选,但是仅此而已。我们仍然要求应聘者通过剩下的所有面试,我们坚持高标准不变。

程序员求职实战指南

程序员找工作,该怎么做?如何使一份工作对程序员更有吸引力?你怎样才能变成最佳雇主?请继续往下阅读!

注释:

[1] 布法罗(Buffalo),美国纽约州西部伊利湖东岸的港口城市,西与加拿大隔河相望,城外有世界著名的尼亚加拉大瀑布。华人常把这座城市叫做水牛城。

[2] Eclipse,一个由Java语言编写的开源集成开发环境(IDE),由IBM公司在2004年发布。

[3] BEA系统有限公司(BEA Systems, Inc.),成立于1995年的一家美国软件公司,已于2008年1月被甲骨文公司(Oracle)以大约72亿美元的价格收购。BEA是Eclipse的重要开发者和支持者,具有领导地位。

[4] 安克雷奇(Anchorage),美国阿拉斯加州最大的城市,属于美国的边远地区。

[5] Monster.com,北美最大的求职网站之一。

[6] craigslist.org,美国最大的分类广告网站,允许用户自由发布各种各样的广告。

[7] Palo Alto(帕罗奥图),美国加州的一个城市,共有人口6万2人左右,位于旧金山湾区南部。著名的施乐公司PARC研究中心和斯坦福大学就位于这里,它被认为是硅谷的中心,也是HP公司的诞生地。

[8] 乔治·丹茨格(1914.11.8 ~ 2005.5.13,George Dantzig),美国数学家,线性规划(linear programming)的创始人。

[9] Mac是苹果公司个人电脑商标Macintosh的缩写。

[10] WWDC是苹果公司全球开发者大会(Apple Worldwide Developers Conference)的缩写,每年在美国加州举行,用来发布苹果公司的新产品和新技术。最近一次的WWDC 2008于6月9日--13日,在旧金山举行。

[11] PDC是微软公司举办的专业开发者大会(Professional Developers Conference)的缩写,面向Windows程序开发者。该会议只在微软公司有新产品和新技术发布的年份举行。最新一届于2008年10月27日--30日在洛杉矶举行,此前一届则是在三年前的2005年举行。

[12] monstertrak.com是一个主要针对大学生找工作的门户网站。

[13] Usenet,一种全球性的供用户交换文件和讨论问题的大型网络。

[14] Haskell是一种纯函数的编程语言,以纪念逻辑学家Haskell Curry而得名。

[15] 《可爱大道》(Avenue Q)是一部讲述年轻人生活、事业和爱情的美国音乐剧,2003年首演,并且获得了当年美国戏剧最高奖托尼奖。Avenue Q是纽约的一条街道(现实生活中纽约从Avenue A~Z都有,唯独缺少Avenue Q),因为这里的房租便宜,所以住着各种没什么钱的年轻人。

[16] 非竞争性合同,又称非竞争性条款,指雇佣合同中规定,雇员在离职后一段时间内,不得到与原雇主有竞争性业务的公司就业。

(完)

留言(42条)

法拉利图片前面的段落末尾“此人对你毫无用处。”前面是不是可以加个“而”字?
对比原文我发现这里你是在把Useless抽出来成为句子,好聪明。唯一的感觉就是语气有点难以把握,如果是:
“转眼之间,你手下的整个劳动大军,都在设法让你雇佣某人的一个大学室友,而此人对你毫无用处。”
我个人会更容易理解一些。

可以将文章“易中天”化,叫程序员码农(ccp做法),程序猿(某漫画做法), 打字员之类么

ps:这本书是写自2001年it泡沫之前么,这个人的公司现在状况如何(我想看看他的选择的持续效果如何,他的公司资产变化情况)?(我记得开发bitkeeper?的那个什么大嘴mcvoy好象以为别人没有bitkeeper就不行,没想到人家照样玩转

双向选择,我觉得也要选选老板

谢谢分享。我对程序之类一窍不通,但这篇文章对我很有用。

单看简历,怎么去判断一个程序员是否优秀?看他们的学历?看作品?怎么得出发现一根针的概率?

感谢感谢感谢!

阮兄:
译文相当富有启发,但愿伟大的开源思想如您所期望的,带来双赢、多赢!
“非竞争性合同”,我们公司称之为“竞业限制合同”。
用google搜索,
约有193,000项符合“竞业限制”的查询结果,而
约有157项符合“非竞争性合同”的查询结果。
以上是加引号的精确搜索。
人力资源管理方面,至少我的圈子里习惯用“竞业限制”的说法。
谨供斟酌。

把技术之事(当然也可以引伸到更广领域)讲得生动而有哲理,实属不易;而从外文转成信达雅的中文也颇有难度。不过,对阮兄的功力和认真程度很有信心,等待后续篇章。

这种译作开源的做法不错。读者既可先行/免费分享,又可以帮着改进。我以前译过几本书,可惜当时的认识还没有达到这种境界。

译文相当不错,仅指出一个小问题:“会有二年的时间间隔”中的“二年”改成“两年”,读起来似乎更顺一些。

一堆干草中发现一根针的概率

-- 海底捞针

什么样的公司,招什么样的人,这样招人,效率太低

译文好精彩!^_^

明年就要毕业了,虽然学的是文科专业,但这篇文章对我还是大有裨益!

引用Fenng的发言:

一堆干草中发现一根针的概率

-- 海底捞针

当一个成语被用得太平凡
词语本身的含义就被忽略了,人家能明白成语表达的意思,但是不会联想到成语本身的意境
比如说“大海捞针”,你会理解这是很难找的意思,但是一般情况下并不会想象在大海里面捞针这样一幅场景。
相比而言,“一堆干草中发现一根针的概率”或多或少能产生一点联想,这样会生动一点。

引用moc的发言:

可以将文章“易中天”化,叫程序员码农(ccp做法),程序猿(某漫画做法), 打字员之类么

ps:这本书是写自2001年it泡沫之前么,这个人的公司现在状况如何(我想看看他的选择的持续效果如何,他的公司资产变化情况)?(我记得开发bitkeeper?的那个什么大嘴mcvoy好象以为别人没有bitkeeper就不行,没想到人家照样玩转

Joel 现在混得那是相当的不错,不久前他的公司刚才搬了家,找了一个BIG OFFICE。可以在他的BLOG上面看到照片。最近的动向是建设了一个STACKOVERFLOW的网站,专门针对程序员答疑,非常火。

好棒的文章,好棒的翻译。从头到尾通读了一遍。

手挤橙汁 ,有没有更好的说法?

很有有感触
我今年大四,而且学计算机编成的。
家在上海,人在外地,貌似毕业找工作指能用投简历的方式。看了这篇文章,更加感觉工作难找了,郁闷进行时!!!!!

就这第一篇,我就决定买啦

请阮兄承销一部分以方便我们对您的答谢

阮兄,

我忽然发现Joel有个中文名叫"周思博",同时也发现有个wiki的网站,很早以前就开始翻译了:
http://local.joelonsoftware.com/mediawiki/index.php/Main_Page
(其中大部分是从这里转来的: http://www.csie.ntu.edu.tw/~p92005/Joel/index.html)

其中关于这篇文章,已经有部分的翻译:

http://local.joelonsoftware.com/mediawiki/index.php/%E6%89%BE%E5%B0%8B%E5%81%89%E5%A4%A7%E9%96%8B%E7%99%BC%E8%80%85


还有这个:http://chinese.joelonsoftware.com/

当然译言有这样的项目也是情理之中的事情。
http://feed.yeeyan.com/groups/translations/695
我很喜欢你的严谨专业的翻译,也不愿去比较各种翻译的异同。对于你提出的问题“可以将我的翻译,像原文那样开源吗?”
我想问,你会在这样的网站上将你的文章全部都发表出来么?或者如wiki一样写出来,让阅读者不断的修改。既然原作者发表在网络上公开让读者阅读,让他的作品影响更多的人。翻译的目的同样是帮助原作者通过不同的语言广泛传播其观点,与原作者的目的应该是一致的。这样的目的,不应该被文字版权(部分的)限制,你说是么?

我对版权的了解不多,甚至对开源的精神也是一知半解。可能我的问题在您之前的文章中已有答案,如果重复,请原谅。

我始终觉得,您的“所以”之前的六个点,有太多太多的未尽之言.....

引用coon的发言:

法拉利图片前面的段落末尾“此人对你毫无用处。”前面是不是可以加个“而”字?



引用哈哈的发言:

“非竞争性合同”,我们公司称之为“竞业限制合同”。

谢谢二位的意见,正式译稿中已经改过来了。

引用Paul King的发言:

译文相当不错,仅指出一个小问题:“会有二年的时间间隔”中的“二年”改成“两年”,读起来似乎更顺一些。

Paul兄的意见甚好,口语中确实应该用“两”而不是“二”,我已改了。
引用Fenng的发言:

一堆干草中发现一根针的概率

-- 海底捞针

Fenng兄,我其实一开始用的就是“大海捞针”,但是后来还是改了。因为我觉得,干草堆里找一根针,还是可以找到的,“大海捞针”应该是没机会找到的。

引用善用佳软的发言:

这种译作开源的做法不错。读者既可先行/免费分享,又可以帮着改进。我以前译过几本书,可惜当时的认识还没有达到这种境界。

佳软兄,我的看法是,并非所有书籍都适合变成自由文档,某些技术类书籍如果一开源,恐怕销量就完了。《Joel谈软件》一书很耐读,天生适合被转载,而且原文又是开源的,所以我才认为中文版也应开源,而且反而会促进销量。
引用hullmmx的发言:


我想问,你会在这样的网站上将你的文章全部都发表出来么?或者如wiki一样写出来,让阅读者不断的修改。


不好意思,我没有说清楚。我在文中说的“开源”,指的是cc协议(保持署名,不能衍生),而不是GPL协议。

cc协议 cc-by-sa is similiar to GFDL.

Yours Maybe cc-by-na.

我也决定买了

感谢你的工作,使我这个卡尔维诺迷可以看到一些译本没能收录的作品,谢谢你~~~

没时间对照原文,不过译文很流畅!这是篇蛮有意思的文章。

男人的世界还是蛮有意思的。。。瞧一眼

做为计算机专业的人,不能不回一帖,慢慢学习慢慢看,n年前,工作之余读过joel的文章,却没有挖掘那么深,感谢你的辛苦工作,感谢joel的原文。

很好的文章,早几年看到就不会走弯路了

最近一段重新翻阅您的译作《2005-2009,下一个大泡泡》,然后就有一个冲动,去看看译者是谁,把他的博客加到自己的收藏中去,进来后看到您的博客人气不错,您是一个非常勤勉的博主,非常感谢您的工作,对于我这种离开大学已经十年的人,英语原本就不通,您是我看世界的一个窗口,希望通过您,让我们看到更精彩的世界。还有就是很遗憾,您翻译的《泡泡》预测的经济发展趋势的可能性已经变成了现实,他的分析方法也很适合中国,但是却没有太多的人提起。

退休之前从事过多年HR工作,根据我的工作实践,感到这篇文章讲得很有道理。参加过无数次的招聘会,能招聘到优秀者的几率很小。赞成文中说到的“走出去、实习生”等方法,并在职业生涯中采用过,取得较好效果。这篇文章对HR经理有较好的启示作用。

很棒啊 文章棒 翻译的也很棒 这种口语化的文章很难翻译的 文化不同调侃的方式就很难把握

阮老师辛苦啦。很抱歉中文我只细看了六段,不过有两点看法还是想跟老师说一下:

1.老师是希望多保留一点原文口语化的风格,还是想比较学究气一点呢?我个人感觉就是原文和老师译文的风格很不一样。而我会比较希望保留原文的感觉,比如第二段开头可以译成:

你可能一边看,一遍会想,“嗯,这人应该可以”,或是“这人差远了”,又或是“不知道他肯不肯搬来布法罗”。但是,我保证你绝不会想:“哇,这人太棒了,一定要请到他!”……我觉得这样更符合中国人的语言习惯,更自然。

同理,because Eclipse is cool, so they look for an Eclipse job at BEA or IBM…这句,也可以译成:“……因为Eclipse很酷,所以他们就想进BEA或IBM里搞Eclipse”

我觉得老师不妨在翻译时告诉自己,要保持某一种风格的行文,这样老师的译文肯定会更棒的。我觉得如果是老师您自己写,肯定要写得更通顺流畅一点吧。

2. 觉得“请想一想,如何在一堆干草中找到一根针”那句可以说成“要从沙堆里淘出金砂还是有办法的,不过可不容易。”人才嘛,说是金子也不为过啊。

献丑了,要是说得不对老师请指教。期待老师下一篇译文~

引用小杜的发言:

阮老师辛苦啦。很抱歉中文我只细看了六段,不过有两点看法还是想跟老师说一下:

1.老师是希望多保留一点原文口语化的风格,还是想比较学究气一点呢?我个人感觉就是原文和老师译文的风格很不一样。而我会比较希望保留原文的感觉,比如第二段开头可以译成:

你可能一边看,一遍会想,“嗯,这人应该可以”,或是“这人差远了”,又或是“不知道他肯不肯搬来布法罗”。但是,我保证你绝不会想:“哇,这人太棒了,一定要请到他!”……我觉得这样更符合中国人的语言习惯,更自然。

同理,because Eclipse is cool, so they look for an Eclipse job at BEA or IBM…这句,也可以译成:“……因为Eclipse很酷,所以他们就想进BEA或IBM里搞Eclipse”

我觉得老师不妨在翻译时告诉自己,要保持某一种风格的行文,这样老师的译文肯定会更棒的。我觉得如果是老师您自己写,肯定要写得更通顺流畅一点吧。

赞同这位兄台的说法。

支持小杜的看法

引用map的发言:
什么样的公司,招什么样的人,这样招人,效率太低

精兵
简将
人才不同于普通人
请区分脑力创造与手工劳作的人才分别

花功夫认认真真的看完了
楼主翻译的很不错
原文则更棒
明年出来了考虑买一本
虽然我只是个普通学生

很不错啊,有机会买一本啦。

Hi Ruan Yifeng,

文章很棒!

看了一下原文和您的翻译文,"这会让我们的正式雇员有一点点嫉妒,但是这就是生活啊", 我想,里面的 “生活”如果换成“人生”会不会比较life一点?

Thanks for your time:)

Bill

这篇文章(或者本书)对正在求职的编程者(叫程序员有些勉强)也同样具有指导意义。

国内的情况略有不同。

走出去 - 我发现很多活动上的人有2个极端:已经自己创业的人,和不懂技术或已经转行做媒体或投资的人。可能是国内真正的宅男Geek不理睬这样的聚会,也可能是我还不知道更纯粹的极客活动。但是走出去是一个创业者必须要经常做的事是没错。

实习生 - 创业公司开拓的是新产品、新市场、新技术,连创始人都没有经验,怎样要求招聘的员工有更多经验?或者换句话说很多的经验对创业公司来说未必是好事。这个角度看,实习生只是还没有发现自己适合在哪里工作,做些什么而已。当然能力的要求上可能也不会降低。我们团队很多的成员,都是在参加实习之前很长时间,就已经对软件和技术有浓厚的兴趣,已经动手做了很多软件。我们对实习生和员工一样看重,他们也更容易形成凝聚力很高的团队。

推荐 - 同意这只是另一个发现人才的渠道而已,没必要搞的太花哨...

社区 - 这一点在现在更有可行性了,创始人要有意识的通过构建自己和公司在web上的影响力,借助微博这样的社交化媒体,表达自己独特的观点,提供有用的信息,获得注意力。像《紫牛》中的观点一样,任何单向、孤立的推广和宣传已经无效,要把病毒传染性融入到产品本身。对于招聘来说,可能是技术讨论、产品日志、线下活动,都是表达你的理念、吸引新人加入的好时机。

现在是2017.08.17了,
看到开头作者,“令人欣慰的是,原文堪称佳作,我确信10年后还会有读者,所以辛苦还算值得。”这句话,就重新看了下发表的日期,
我现在看的竟然是将近10年前的文章了,

自己现在刚开始自学编程,翻到了这篇文章,好像和编程有关系,,
看完再留言。

十年后的读者来报一个到。哈哈

现在是2019年12月25日,我正在办公室阅读这本中译本,搜索书中的网址和人名来到了这个博客 ,这本书也是博客介绍的。

十年时间,不短呐。

我要发表看法

«-必填

«-必填,不公开

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