我在硅谷上上家公司M,也就是上文提到连走几个牛人的时候,招聘新毕业生。发现一件趣事,也有点可怕。我面试的人中*所有人*都去Google和Facebook面试过。由于glassdoor这样的网站存在,只要花两个月,可以把考题全部做一遍。因为我偏向于招中国学生,可以和上海研发团队合作,至少听起来这像是GPA高的中国学生爱干的事。不过,一位最后进了M公司的女生说,尽管她的题答得快速又正确,还是被FB拒了。(类似事情在中国,Boss直聘上一哥们告诉我说,BAT把好人都招走了。)
其实不然,人才到处可见,难道美全被锁在艺术博物馆里吗。有独立精神的,比较流行的grit一词,描述的就是不拘一格的人才。上周遇到一位曲阜师范大学心理系学生应聘HR/行政。简历抬头Live beautifully, dream passionately, love completely。她有心理咨询师(三级)、企业人力资源管理师(三级)、计算机二级C语言程序设计等证书,第十三届“挑战杯”一等奖。我攻其不备,“考你一道编程题,因为你学过C”,大概是史上最不人道的HR考题。她当时在教室里自习,可能早忘了C怎么写,过了几十分钟才回,答得不完善。拍照上传的时候还担心流量,她的家境从一系列的兼职工作也看得出来。我当时就对小姑娘接受挑战的心态,不管通不通得过也要花时间完成的精神,留下了深刻印象。面试她之后,一票新的老的程序员在这道题前翻了船,要么放弃,要么解题思路复杂到无以复加,以一位清华CS硕士登峰造极。所以在一派失望之后回头去看她的答案。
我考的7行程序,两层for loop, if, else,加上3行printf,完了。
她答对了5行,两层for loop, if,else, printf。剩下的,任何一位能读懂她的思路的程序员接下来一分钟就搞定了。在if()里她还使用了 ||,风格非常简练。(初学者风格像儿童画。:))
没的说,我回头把她大赞了一笔,欢迎她来面试。如果HR职位没有了,我愿意为她创立一个职位。(当然别的方面她也很有想法。)
有个在不可回头的候选人中找最佳人选的算法。比如候选100人列队飘过,你看了一个好的,怎么知道后面没有更好的呢? (Attention,单身程序员,该算法也适用于找对象等等。)一个解法是,取前n个,全部reject,但保留极大值X,后面来的超过X即取,game over。最坏的状况当然是X就是最大值,你手上只留下了第一百位,不管是大是小。(千万别忘了找对象还有时间成本在里面,个体极值还随时间变化。世俗认为女人极值25,男人35,有待另外写医学论文批驳。我认为男女都可以到45左右。)
候选100人,n=37;那么10人时,大约是4。
她没有程序员之名,但具有程序员的精神。因此我会以她为极大值。说来也巧,从我赞她这天以后,也面过不下一百个人了,真出现了第一位写得又快又好的程序员。我这也是具有程序员精神的招聘!
程序员应该以自己是Coder自豪,Programmer听起来太机械,Hacker又不太正,码农,怎么这么不长志气呢,说大牛大神什么的,人家逗你玩呢。Coders at Work,依我就应该翻译成“程序员的精神”或“程序员在工作”,就是这么平实。软体是个台湾译法,大师这词跟美女一样有歧义,顶尖一样恶俗,书里的几代人也不都是先驱。至少硅谷多年以后骄傲的仍是Xerox Park这样的公司,新宠们还有待考验。