优秀的程序员都在哪里
这是你第一次公开招募雇员。如同大多数人一样,你会发布广告,可能也会浏览一些大型的网上论坛,然后你就收到了一吨的简历。
一份份看下去,你会想:“嗯嗯嗯,这人应该可以。”或者:“这人差远了。”或者:“我要知道他能不能下决心搬到布法罗 来。”但是,我保证有一件事绝对不会发生,那就是你对自己说:“哇,这家伙太聪明了!这种人,我们一定要得到!”事实上,当你看完足足几千份求职简历之后(假定你懂得如何看简历,那可并不容易),老实说,你从中没有发现一个优秀的程序员。一个也没有。
下面我就来说说为什么会这样。
很简单,就同所有行业中最好的人才一样,那些优秀的程序员是不会出现在招聘市场上的。
通常优秀的程序员在整个职业生涯中,可能会有4次求职。
那些最优秀的大学毕业生,他们会从教授那里得到实习的机会,而教授跟业界有不少联系。这样,他们会早早地就从实习公司得到机会,根本不用去找其他工作。如果他们离开那家公司,那可能是因为同朋友一起去创业,或者因为他们跟着一个了不起的老板一起跳槽到另一家公司,或者因为他们决定一定要换个工作方向。比如说Eclipse ,因为Eclipse很酷,所以他们想去BEA 或者IBM找一个Eclipse的工作,然后他们肯定会得到这份工作,因为他们是优秀人才。
如果某一天,你遇到了这样的人出现在招聘市场上,那么你很幸运,你真的非常幸运。可能的情况是,他们的配偶决定到安克雷奇 当一名实习医生,他们就会发出简历,给少数几个他们认为自己愿意效力的位于安克雷奇的公司。
但是大多数时候,优秀的程序员(我几乎是在重复了)是那么优秀(对,我就是在重复),未来的雇主通常会一眼看出他们的优秀,这意味着,这些程序员基本上想去哪里工作,就能去哪里工作。所以,老实说,他们不会发出许多份简历,到处找工作。
听起来,他们就是你想雇的那种人?当然。
这条规律(优秀的人才从不在市场上求职)有一个推论,那就是在人才市场上找工作的,大部分都是一些水平很差、完全达不到要求的人。他们一年到头都在被解雇,因为他们不能完成工作。他们所在的公司也会完蛋,因为这些人水平太糟糕,以致于整个公司都会被他们拖垮。是的,这种事真的会发生。(公司完蛋的另一个可能的原因是,既然雇用了一个不合格的程序员,就可能雇用一大堆不合格的程序员,累积起来,就导致了最终的失败。)
谢天谢地,这么糟糕的人很少能够求职成功,但是,他们总是不断地发出求职信。他们找工作的时候,就去Monster.com ,将所有的职位翻看一遍,300个或者1000个,试图中奖。
从数量上说,优秀的人才很少,而且从不出现在招聘市场上,而那些不称职的人,即使数量也同样少,却在整个职业生涯要申请几千份工作。所以,老兄,现在让我们回到你从Craigslist 上搞到的一大堆简历上来。你对他们中的大多数都看不上眼,有什么好奇怪的?
我猜想,聪明的读者读到这里,会指出我遗漏了最大的一类人:那些可靠的、称职的程序员。人才市场上这一类人在数量上多于优秀程序员,但是少于不称职的程序员。不管怎样,总的来说,在你收到的1000份简历中,他们的比例是很小的。在绝大多数情况下,几乎所有此刻桌子上堆着1000份简历的Palo Alto 人事经理们都会发现,其中970份简历是出自同样的那少数970个不称职的程序员,内容都一样,这些家伙针对每一份工作都发求职信,也许会这样干上一辈子。1000份简历中仅仅只有30份是值得考虑的,其中可能偶然会出现一份优秀程序员的简历。OK,可能一份也没有。请想一想,如何在一堆干草中找到一根针。我们下面将会看到,这是可以做到的,但是比较难。
~
我能得到他们吗
你能!
好吧,你也许能!
实际上,这要看情况而定!
请不要将招聘看作一个“收集简历,过滤简历”的过程,你必须将它看作一个“追踪优胜者,设法结识他们”的过程。
我有3个实现这个目的的基本方法。
(1) 走出去。
(2) 实习生。
(3) 建立自己的社区(community)。*
(“建立自己的社区”这一条后面有一个星号。它的意思是,这一条有难度,难得就好像数学家乔治?丹茨格 解决的那道数学难题一样。他之所以能解决是因为,他上课迟到了,以为黑板上的题是课外作业,而没有听到老师说那道题是无法解决的难题。)
在这方面,你可能有自己的想法。我只是想谈一谈这3个对我自己有效的方法。
……
第一部分 人员管理 1
01 我的第一次BillG审查 2
02 寻找优秀的程序员 9
03 寻找优秀的程序员之实战指南 21
04 三种管理方法 33
05 军事化管理法 35
06 经济利益驱动法 38
07 认同法 43
第二部分 写给未来程序员的建议 47
08 学校只教Java的危险性 48
09 在耶鲁大学的演讲 55
10 给计算机系学生的建议 70
第三部分 设计的作用 81
11 字体平滑、反锯齿和次像素渲染 82
12 寸土必争 85
13 大构想的陷阱 89
14 别给用户太多选择 94
15 易用性是不够的 97
16 用软件搭建社区 105
第四部分 管理大型项目 117
17 火星人的耳机 118
18 为什么Microsoft Office的文件格式如此复杂
(以及一些对策) 134
19 要挣钱,就别怕脏 141
第五部分 编程建议 145
20 循证式日程规划 146
21 关于战略问题的通信之六 159
22 你的编程语言做得到吗 166
23 让错误的代码显而易见 172
第六部分 开办软件公司 189
24 Eric Sink on the Business of Software 的前言 190
25 Micro-ISV: From Vision to Reality 的前言 193
26 飙高音 197
第七部分 经营软件公司 207
27 仿生学办公室 208
28 他山之石,不可攻玉 212
29 简化性 216
30 揉一揉,搓一搓 219
31 组织beta测试的十二个最高秘诀 224
32 建立优质客户服务的七个步骤 227
第八部分 发布软件 237
33 挑选发布日期 238
34 软件定价 244
第九部分 修订软件 263
35 五个为什么 264
36 确定优先顺序 270
★“人们需要交流、发展,需要新观点。他们期待变化。Joel就提供了变化。他给了这个部落一根杠杆,戏剧性地改变了他们所在行业的游戏规则。”
——Seth Godin,雅虎前总裁,当代最具影响力的商业思想家之一
★“谈论软件行业的书和网志很多,但Joel的无疑最为成功,因为没有生搬硬套的理论,所感所想也都切中肯綮……这是善于思考的智者的箴言,值得大家洗耳恭听。”
——Amazom.com
★“一拿到这本书,我就迫不及待地一口气读完了,优秀的作者不只是讲述自己的成功之道,更重要的是激发读者思考,Joel就是这样的人。”
——Joe Stagner