怎樣花兩年時(shí)間去面試一個(gè)人?
Joel Spolsky曾經(jīng)感嘆:招聘難,難于上青天(此處筆者稍加演繹)。他有兩個(gè)辛辣但不乏洞察力的斷言:真正的牛人也許一輩子就投大概4次簡(jiǎn)歷,這些家伙一畢業(yè)就被好公司搶走了,并且他們的雇主會(huì)給他們不賴(lài)的待遇,所以他們也不想挪窩。(剛剛?cè)ナ赖腄ennis Ritchie就是這樣一個(gè)人)而“人才”市場(chǎng)上能找到的大多都不是什么人才。招到這幫人輕則費(fèi)錢(qián)重則把你公司搞掛。
(當(dāng)我把這篇文章給鄒欣老師review的時(shí)候,他說(shuō)了另外兩點(diǎn):1. 最好的人也許不投簡(jiǎn)歷,就決定去哪里了。所以要在他們做決定前找到他們。2. 比較差的會(huì)投很多次簡(jiǎn)歷,找不到工作的時(shí)間越多,投的簡(jiǎn)歷越多,給整個(gè)pool 帶來(lái)很多噪音,top10%的簡(jiǎn)歷也許根本不算全部人的top10%。)
誠(chéng)然,也許沒(méi)有哪個(gè)行業(yè)像IT行業(yè)這樣,無(wú)形資產(chǎn)占據(jù)公司的絕大多數(shù)資產(chǎn)。拒坊間傳言比爾·蓋茨就曾經(jīng)說(shuō)過(guò)類(lèi)似這樣的話(huà):只要允許我?guī)ё?00個(gè)人我可以再造一個(gè)微軟。這話(huà)沒(méi)搜到原版出處,但是從一個(gè)側(cè)面反映了IT公司當(dāng)中智力資產(chǎn)所占的比例之重。
所以一個(gè)自然的推論就是,招聘也許是一個(gè)公司決策當(dāng)中最最重要的一個(gè)環(huán)節(jié)。Joel Spolsky把他在這方面的觀察,體會(huì)和洞見(jiàn)集結(jié)成了一本小冊(cè)子《Smart and Gets Things Done》,開(kāi)篇就挑戰(zhàn)“產(chǎn)品是公司成敗的關(guān)鍵”這個(gè)傳統(tǒng)觀念,他認(rèn)為創(chuàng)造最適合工程師生活的環(huán)境,留下最優(yōu)秀的人才才是最先最重要的一步,接下來(lái)好的產(chǎn)品是水到渠成的事情。國(guó)內(nèi)iapp4me.com創(chuàng)始人郝培強(qiáng)正是這個(gè)理念,所以他在微博上說(shuō):
我們是小公司,工資開(kāi)的不高,也不招太多的人,但是電腦都是iMac27,iMac21,Macbook pro15,基本上比很多大公司都好多了。軟件沒(méi)盜版,剛才photoshop的正版我也收了。中午管飯,公司備傘。哈哈。節(jié)日假正常放,從不加班,早晨11點(diǎn)上班,下午6點(diǎn)下班。我是有資格說(shuō)某些大公司的員工苦逼的。
事實(shí)上,米國(guó)找個(gè)人尚且難成這樣,搞得Joel還費(fèi)心費(fèi)力寫(xiě)本書(shū)語(yǔ)重心長(zhǎng)地勸企業(yè)們要善待好工程師,國(guó)內(nèi)找個(gè)人更是難上加難,國(guó)內(nèi)高質(zhì)量問(wèn)答社區(qū)知乎創(chuàng)始人周源就曾經(jīng)在知乎上分享他嘔心瀝血的招人歷程,看完真是讓人慨嘆這年頭找個(gè)靠譜的人多不容易(這條知乎問(wèn)答還有很多精彩的跟帖):
其實(shí)從 08 年到現(xiàn)在,我一直想這事能不能有點(diǎn)竅門(mén),或者是實(shí)用的方法,結(jié)論是幾乎沒(méi)有。我用過(guò)的大家都用的方法:
- 在水木上發(fā)貼子(有點(diǎn)效果)
- 在藍(lán)色理想上發(fā)貼子(無(wú)效)
- 在技術(shù)郵件組里發(fā)貼子(無(wú)效)
- 買(mǎi) 51job/智聯(lián) 最便宜的服務(wù)(有點(diǎn)效果)
- 給所有可以想到的人打電話(huà),請(qǐng)他們推薦(無(wú)效)
- 給所有和你討論過(guò)創(chuàng)業(yè),喝過(guò)點(diǎn)小酒的人打電話(huà)(無(wú)效)
- 約前同事私下談(有效)
我用過(guò)的大家可能沒(méi)有用的方法:
- 上 twitter,看 XXX 的 follower,一個(gè)一個(gè)看,看他們的 twitter,博客,Google Reader 分享,想辦法搞到郵件,聯(lián)系,半夜電話(huà)騷擾。
- 上豆瓣,前端后端挑幾本重量級(jí)的書(shū),去找想看,看過(guò),正在看這本書(shū)的人,一個(gè)一個(gè)看,看他們的活動(dòng),博客,Google Reader 分享,想辦法搞到郵件,聯(lián)系,半夜電話(huà)騷擾。
- 找同事,問(wèn)他們都看什么技術(shù)博客,想辦法搞到郵件,聯(lián)系,半夜電話(huà)騷擾。
正是這樣的不容易,才有不少公司走內(nèi)部培養(yǎng)的辦法,這里的邏輯是:一上來(lái)就招到靠譜的人太難了,但找一塊靠譜的璞玉然后雕琢雕琢相對(duì)就簡(jiǎn)單很多。這倒是個(gè)辦法,但這樣做的人難免就陷入了糾結(jié):培養(yǎng)好了,人跑了怎么辦。這也不能怪招聘的公司,的確是人之常情。其實(shí)解決的辦法也很簡(jiǎn)單,培養(yǎng)的時(shí)候進(jìn)行適當(dāng)引導(dǎo),讓員工發(fā)揮自己的主動(dòng)學(xué)習(xí)能力,這樣不但人得到更多成長(zhǎng),公司也不會(huì)覺(jué)得投入太多患得患失。所謂師傅領(lǐng)進(jìn)門(mén)修行在個(gè)人。
但是,這仍然還是沒(méi)有解決根本的問(wèn)題,就是招聘真的很困難。應(yīng)聘者固然覺(jué)得自己是在“海投”,大海撈針一般。而招聘者何嘗不也是這種大海撈針的感覺(jué)。這就好比兩個(gè)人談戀愛(ài),都想和對(duì)方好上,但是偏偏就聊不到一塊去。
招聘真的很困難。以至于招聘者每年需要絞盡腦汁出新筆試題,以免往年的筆試題早就被人背熟了。出題很費(fèi)腦子,要出的不太簡(jiǎn)單也不太難,能夠?yàn)V掉絕大多數(shù)濫竽充數(shù)的但又要保證不因題目不公平而濾掉真正有能力的,要考慮審題人的時(shí)間成本就只能大多數(shù)用選擇題,而選擇題又是可以猜答案的(極少有人會(huì)在選了答案之后還敢在空白的地方寫(xiě)為什么選某答案的原因的)。更悲催的是,有些題目出的連公司的員工們自己都會(huì)做錯(cuò)(真的是員工們做錯(cuò)了嗎?還是題目本身就出錯(cuò)了?)
筆試完了之后如果還沒(méi)有被鄙視就要進(jìn)入面試環(huán)節(jié),姑且不說(shuō)筆試題的種種弊端,就說(shuō)面試環(huán)節(jié),短短幾個(gè)小時(shí)的面試(大多數(shù)公司也許連幾個(gè)小時(shí)的面試時(shí)間都沒(méi)有),既需要全面考察基本知識(shí),又要考察編程素養(yǎng),還要考察(也許最重要的)性格心態(tài)。再然后還有一項(xiàng)根本沒(méi)法考察但卻占據(jù)程序員相當(dāng)一部分工作時(shí)間的:debug能力。面試官不但得找準(zhǔn)問(wèn)題,不因?qū)Ψ揭活}答對(duì)而妄下結(jié)論,也不因一題打錯(cuò)而就扼殺機(jī)會(huì),還要以管窺豹,從一朵花看到整個(gè)世界,從面試人的舉止言談,分析問(wèn)題的方式,甚至寫(xiě)程序的筆跡來(lái)觀察這個(gè)人的性格,做事的方式和心態(tài),簡(jiǎn)直是要面試官具備心理分析師的水準(zhǔn)才行。
這廂要招人的雇主苦不堪言,那邊找工作的人也是一團(tuán)亂麻。絕大多數(shù)應(yīng)屆生直到畢業(yè)也不清楚他們想要去的公司到底需要什么樣的能力,或者說(shuō),他們到底需要具備什么樣的能力才能在應(yīng)聘季節(jié)擁有自己的選擇權(quán)。中國(guó)雖然本科教育環(huán)境差,但是同樣有很多的人在本科希望整點(diǎn)東西出來(lái),他們有一腔的激情和抱負(fù),有強(qiáng)大的動(dòng)力,但就是不知道自己需要掌握哪些技能才能滿(mǎn)足雇主的要求,求告無(wú)門(mén),整年整年苦悶的像沒(méi)頭蒼蠅一樣亂撞(我就收到過(guò)很多次這樣的來(lái)信,他們往往很想學(xué)點(diǎn)東西,但又不知道哪些重要哪些不重要,到底該學(xué)到什么程度,不知道導(dǎo)致不確定,不確定導(dǎo)致決策癱瘓,干脆嘛也不動(dòng),荒廢時(shí)間)。
什么叫熟練?什么又叫精通?那么扎實(shí)呢??jī)赡甑腨Y經(jīng)驗(yàn)又意味著什么?能這么簡(jiǎn)單的量化嗎?同樣是兩年的“實(shí)踐”有的人能真的學(xué)到點(diǎn)東西,有的人也許近似一無(wú)所得。那么實(shí)習(xí)呢?很多人都一定要在簡(jiǎn)歷上弄個(gè)實(shí)習(xí)經(jīng)驗(yàn),這個(gè)又能說(shuō)明多少問(wèn)題呢?大作業(yè)呢?得獎(jiǎng)呢?有一次我面試一位同學(xué),據(jù)簡(jiǎn)歷說(shuō)編譯原理課的大作業(yè)得了一等獎(jiǎng),可我一問(wèn)什么是遞歸下降,就傻眼了。
這個(gè)現(xiàn)實(shí)的結(jié)果就是,現(xiàn)在絕大多數(shù)應(yīng)屆簡(jiǎn)歷而言,也許最具信息量的部分不是“精通XXX,熟悉YYY,掌握Z(yǔ)ZZ”,不是“在UUU實(shí)習(xí)過(guò)”,也不是這個(gè)項(xiàng)目那個(gè)作業(yè),反倒是越來(lái)越被認(rèn)為不重要的一項(xiàng):畢業(yè)學(xué)校。畢業(yè)學(xué)校本不應(yīng)該是最具信息量的,它之所以最具信息量只是源于一個(gè)悲劇的事實(shí):簡(jiǎn)歷上其他條目實(shí)在信息量太少了。所以靠譜的面試者往往學(xué)會(huì)了無(wú)視簡(jiǎn)歷上華而不實(shí)的內(nèi)容,只相信面試的時(shí)候親眼所見(jiàn),掃兩眼簡(jiǎn)歷也就罷了,最后還得自己捋起袖子慢慢面。而應(yīng)聘者也許也知道招聘的也不會(huì)細(xì)細(xì)糾簡(jiǎn)歷上的條目,所以什么詞也都敢往上捅,反正先過(guò)了HR篩簡(jiǎn)歷這關(guān)再說(shuō)。從經(jīng)濟(jì)學(xué)角度來(lái)講,應(yīng)聘者的這種策略是正確的,沒(méi)有代價(jià)(因?yàn)槟壳八坪鯖](méi)有公司會(huì)去給已經(jīng)申請(qǐng)過(guò)的人做一個(gè)誠(chéng)信數(shù)據(jù)庫(kù)),但至少有可能會(huì)帶來(lái)巨大的收益。應(yīng)聘成了博彩。而博彩式的應(yīng)聘給招聘公司帶來(lái)了巨大的篩選壓力。簡(jiǎn)歷成了擺設(shè)。
那么招聘這個(gè)關(guān)系里面的第三者——學(xué)校——所處的位置呢?學(xué)校更關(guān)心的是畢業(yè)率和就業(yè)率,這似乎是件好事,有這個(gè)為目標(biāo),那么老師們似乎應(yīng)該努力讓自己的學(xué)生多學(xué)點(diǎn)東西。可惜就業(yè)的質(zhì)量似乎不是最重要的指標(biāo),此其一。其二老師本身大多數(shù)沒(méi)有豐富的業(yè)界經(jīng)驗(yàn),根本不知道企業(yè)整整需要的人才是什么樣的,可能花了精力,但卻培養(yǎng)不出雇主真正需要的人。另一方面,老師所起的作用很多時(shí)候甚至是一個(gè)負(fù)面的作用,例如布置大作業(yè)表面上看上去是培養(yǎng)學(xué)生的能力,我們姑且不說(shuō)抄襲,假設(shè)每個(gè)人都做了,那么大作業(yè)本身能夠衡量多少東西呢?能否衡量代碼質(zhì)量,能否衡量團(tuán)隊(duì)協(xié)作能力?能否衡量交流能力?考慮到大作業(yè)用到的東西往往都是書(shū)里面現(xiàn)成的,大作業(yè)甚至不能衡量學(xué)習(xí)能力。而學(xué)習(xí)能力簡(jiǎn)直算是這個(gè)行業(yè)最重要的能力沒(méi)有之一了。
所以,簡(jiǎn)而言之,如果把人才培養(yǎng)/招聘這件事情本身類(lèi)比做一個(gè)項(xiàng)目,那么這整個(gè)項(xiàng)目迄今為止就是一個(gè)巨大的失敗。為什么這么說(shuō)呢?
- 和需求嚴(yán)重脫節(jié):作為人才需求方的雇主的需求到底是什么?絕大多數(shù)應(yīng)聘者都沒(méi)搞清。更嚴(yán)重的是,這卻一點(diǎn)都不是應(yīng)聘者的錯(cuò)。因?yàn)楣椭魇莝takeholder,是雇主自己的責(zé)任得去說(shuō)清楚需求是什么。結(jié)果應(yīng)聘者實(shí)現(xiàn)的不是雇主想要的,雇主想要的應(yīng)聘者沒(méi)有實(shí)現(xiàn)。
- 應(yīng)聘者雇來(lái)培訓(xùn)自己的人根本不管事:學(xué)生交了學(xué)費(fèi),就相當(dāng)于雇老師來(lái)培訓(xùn)自己,可培訓(xùn)者根本也不了解(或不關(guān)心)他的客戶(hù)們的需求。這里,學(xué)生是需求方,老師則是實(shí)現(xiàn)方。弄清需求的職責(zé)在后者,可后者也弄不清。
- 學(xué)生自己也弄不清:學(xué)生自己既是需求方(需要特定技能),也是實(shí)現(xiàn)方??伤麄冏约阂才磺逍枨蟮降资鞘裁?。
以上三點(diǎn)還不是最嚴(yán)重的,最嚴(yán)重的在下面:
- 明白需求是什么的也不知道怎么實(shí)現(xiàn):怎么去培養(yǎng)現(xiàn)代IT企業(yè)真正需要的人才?特別地,實(shí)戰(zhàn)能力怎么培養(yǎng)?代碼素養(yǎng)怎么培養(yǎng)?協(xié)作溝通能力怎么培養(yǎng)?學(xué)習(xí)能力怎么培養(yǎng)?就算這些都知道怎么培養(yǎng),又怎么給在象牙塔里頭,離催命之日還遙遙無(wú)期的學(xué)生提供足夠的動(dòng)力呢?而學(xué)生自己就算知道該學(xué)哪些技能,又怎么知道具體怎么著手?什么是最有效率的學(xué)習(xí)方法?又如何讓自己保持學(xué)習(xí)的熱情?
以上這些問(wèn)題,就是當(dāng)下人才培養(yǎng)/招聘的慘淡現(xiàn)狀。簡(jiǎn)而言之,在雇主和學(xué)生之間,橫梗著一條巨大的鴻溝,兩頭都很著急,兩頭都有動(dòng)力,但就是沒(méi)有方法,君住長(zhǎng)江頭妾住長(zhǎng)江尾。像微軟谷歌這樣的,干脆和高校合作,直接插手本科或碩士的教育,從而保證到時(shí)有足夠強(qiáng)的候選,某種程度上,這的確是根本解決之道,可一來(lái)這代價(jià)太大了,非一般企業(yè)承受得起,二來(lái)這影響面也太小了。
這一切,也許將在未來(lái)的5年發(fā)生根本的變化。
《Switch: How to Change Things When Change Is Hard》(中譯《瞬變》)里面指出,表面上看來(lái)非常困難的改變,也許是因?yàn)楦揪蜎](méi)有抓住要害。在書(shū)中作者通過(guò)大量案例分析和心理學(xué)研究,雄辯地指出以下幾點(diǎn)促成改變的關(guān)鍵之處:
- 觸動(dòng)內(nèi)心的大象:要改變的人必須要有情感層面的動(dòng)力。有一些特定的方法能夠比另一些方法更能對(duì)人的情感產(chǎn)生觸動(dòng)。
- 給出清晰、明確的目標(biāo):目標(biāo)一定不能含糊,模棱兩口的目標(biāo)讓人無(wú)所適從,導(dǎo)致決策癱瘓。例如最近我們組在招實(shí)習(xí)生,我在微博上發(fā)了一條招聘信息,其中提到“扎實(shí)”的系統(tǒng)底層知識(shí),有同學(xué)就寫(xiě)信來(lái)問(wèn),怎么叫“扎實(shí)”。我傻眼了。比爾·蓋茨就以目標(biāo)清晰明確著稱(chēng),不僅在戰(zhàn)略制定上,“每個(gè)人桌面上都有一臺(tái)PC”,而且居然還體現(xiàn)在招聘上——“如果你讀完了TAOCP,那么就給我投簡(jiǎn)歷吧”。多么清晰,明確的目標(biāo)啊——雖然高了點(diǎn),也許這就是比爾·蓋茨至今還沒(méi)被應(yīng)聘郵件淹沒(méi)的原因:)
- 給前進(jìn)的道路掃清障礙:人是懶惰的,只要有借口就會(huì)不想往前。如果既有明確的目標(biāo),同時(shí)道路又直直指向目標(biāo),一覽無(wú)余,只等你開(kāi)始往前走,那么便沒(méi)有借口,一往無(wú)前。 #p#
那么讓我們對(duì)照上面看看,可以做什么?
首先,內(nèi)心的大象不需要觸動(dòng),中國(guó)有足夠多的人足夠早就開(kāi)始焦慮就業(yè)的事情,只是不知道往哪使勁,這部分人如果把勁頭用到正確的事情上面也許足以滿(mǎn)足現(xiàn)在的IT企業(yè)人才饑渴了。至于其他人,好吧,也許身邊的人開(kāi)始動(dòng)起來(lái)他們也會(huì)被觸動(dòng)。
然后是清晰、明確的目標(biāo)。這一點(diǎn)上目前雇主們的做法可謂好壞參半,好的一點(diǎn)是大家都強(qiáng)調(diào)要有實(shí)踐經(jīng)驗(yàn),要有團(tuán)隊(duì)協(xié)作精神,壞的一點(diǎn)就在基礎(chǔ)知識(shí)和技能的要求方面,可謂再含糊不過(guò)了:“精通XX語(yǔ)言”,“扎實(shí)的XX功底”,“熟悉XX技術(shù)”,甚至看上去最具量化感的描述“X年YY經(jīng)驗(yàn)”其實(shí)都根本說(shuō)明不了多少東西,在信息量方面還不如我家門(mén)口菜市場(chǎng)上一家賣(mài)酥油餅的店門(mén)口掛的橫幅——“三天不硬、至少六層!”。
很多朋友也許注意到一個(gè)現(xiàn)象,現(xiàn)在企業(yè)對(duì)招聘者簡(jiǎn)歷的要求也在變得越來(lái)越靈活變通,例如ThoughtWorks在招聘的時(shí)候就希望招聘者能給出自己的博客地址,博客對(duì)IT行業(yè)的意義也許勝過(guò)其他所有行業(yè),一個(gè)積累多年的技術(shù)博客比任何簡(jiǎn)歷都更能說(shuō)明問(wèn)題。臺(tái)灣的郭安定也說(shuō)“為什么寫(xiě)技術(shù)博客對(duì)新人如此重要”。可惜這個(gè)做法也有一個(gè)弊端:并不是所有技術(shù)牛人都寫(xiě)博客,有人就是只干不說(shuō)型的,而就算寫(xiě)博客,乃至動(dòng)手寫(xiě)過(guò)一陣子的,寫(xiě)一個(gè)常年的博客,也遠(yuǎn)比你想象的更為困難,因?yàn)楹芏鄷r(shí)候,寫(xiě)(說(shuō))得靠譜比做得靠譜更難。所以這個(gè)過(guò)濾器很多時(shí)候用不上。
但是這的確表明了一個(gè)思考的方向,就是尋找更具鑒別力的過(guò)濾器,Stackoverflow Careers 2.0之所以強(qiáng)大,是因?yàn)镴oel Spolsky和Jeff Atwood這兩位常年混社區(qū)的資深博主創(chuàng)造性地將一個(gè)人在社區(qū)的活動(dòng)歷史濃縮成為一系列的量化數(shù)值,由于這個(gè)歷史很長(zhǎng)期,所以鑒別力非常高。但它同樣也有問(wèn)題,就是對(duì)于應(yīng)聘者來(lái)講相當(dāng)花費(fèi)時(shí)間,而且并不是花時(shí)間(在Stackoverflow上回答問(wèn)題)就一定能花到點(diǎn)子上。
到底什么特征才是既通用,又能夠有效地鑒別高低應(yīng)聘者的特征呢?這個(gè)特征必須不像博客那樣難以實(shí)現(xiàn),同時(shí)又必須有足夠的區(qū)分度。
有的地方在要求填寫(xiě)簡(jiǎn)歷的時(shí)候必須填上平時(shí)都訪(fǎng)問(wèn)哪些技術(shù)網(wǎng)站。恩,很不錯(cuò)的嘗試,可區(qū)分度仍然還是不夠,因?yàn)樯暇W(wǎng)站上查東西畢竟只占現(xiàn)階段大多數(shù)應(yīng)屆生的少數(shù)信息來(lái)源,特別是當(dāng)我們看重得更多的是應(yīng)屆應(yīng)聘者的系統(tǒng)性的知識(shí)基礎(chǔ)的時(shí)候,網(wǎng)上的東西雖然豐富,但屬于提高班,也更為瑣碎,什么是更系統(tǒng)的知識(shí)來(lái)源呢?答案其實(shí)大家都知道——
書(shū)。
我一向認(rèn)為,很多時(shí)候,是否好好看完一本好書(shū),對(duì)一個(gè)人的提升往往能達(dá)到質(zhì)的區(qū)別。就算不好好看完一本好書(shū),馬馬虎虎看完,只要書(shū)是真的好書(shū),也肯定會(huì)有很大的提高。我在面試的時(shí)候就經(jīng)常詢(xún)問(wèn)對(duì)方看過(guò)哪些技術(shù)書(shū)籍,經(jīng)常上哪些網(wǎng)站,訂哪些博客。這里頭尤其數(shù)書(shū)籍這一項(xiàng)的區(qū)分度最高。此外,好書(shū)和壞書(shū)的差別,從本質(zhì)上,就是學(xué)習(xí)效率和大方向的差別。一本爛書(shū)可以浪費(fèi)你半年的時(shí)間,但一本好書(shū)卻可以為你帶來(lái)真正扎實(shí)的基礎(chǔ)和開(kāi)闊的視野。人們常常用“內(nèi)功”來(lái)形容扎實(shí)的基礎(chǔ),認(rèn)為學(xué)好了內(nèi)功以后學(xué)什么都快,其實(shí)一點(diǎn)沒(méi)錯(cuò),好的“內(nèi)功”書(shū)不僅講清楚深刻的原理,而且指明技術(shù)的本質(zhì),刻畫(huà)領(lǐng)域的地圖。好的書(shū)抓住不變量,讓人能夠觸類(lèi)旁通。好的書(shū)不僅介紹知識(shí),而且闡釋原則,介紹那些萬(wàn)變不離其宗的東西。讀爛書(shū)浪費(fèi)時(shí)間,但讀好書(shū)卻節(jié)省時(shí)間。
象牙塔內(nèi)的學(xué)生受到視野的限制,往往擇書(shū)不慎,事倍功半,爛書(shū)不僅浪費(fèi)時(shí)間,還會(huì)打擊人的積極性,讓人對(duì)知識(shí)心生恐懼,認(rèn)為很難掌握,殊不知只是作者沒(méi)有講好(或者沒(méi)有翻譯好)。因此,為招聘頭疼的公司完全可以給出“應(yīng)聘俺們公司前必讀的十本書(shū)”,也不一定要每個(gè)公司都不一樣,在某個(gè)技術(shù)子領(lǐng)域有影響力的人,或者創(chuàng)始人們,可以來(lái)定義具有代表性的書(shū)單。
我們姑且把這個(gè)計(jì)劃叫做“書(shū)單計(jì)劃”,容易看到“書(shū)單計(jì)劃”具備以下幾個(gè)卓越的優(yōu)點(diǎn):
- 清晰、明確。完全可度量。
- 防偽:讀沒(méi)讀過(guò),隨便一問(wèn)便知。而正因?yàn)閼?yīng)聘者也知道這事不像實(shí)習(xí)經(jīng)驗(yàn)可以忽悠,所以也不敢亂往簡(jiǎn)歷上捅詞。
- 不在乎是否“泄題”:書(shū)單完全公開(kāi)的,無(wú)所謂,本來(lái)就是要你去讀的。想背題?背書(shū)吧。真能背下來(lái)說(shuō)明認(rèn)真看了。
- 管你用心不用心讀,只要讀了,讀完了,就有區(qū)別。真正的好書(shū),你想不被吸引都難。據(jù)我觀察很多人就是不知道該去讀什么書(shū)。
- 不存在“怎么做”的障礙:所有人都知道怎么讀書(shū)——一頁(yè)一頁(yè)讀。
- 不需要招聘者投入精力:書(shū)單在此,就這么簡(jiǎn)單,您看著辦。
- 評(píng)估的負(fù)擔(dān)很大程度轉(zhuǎn)移到了應(yīng)聘者的身上:是不是認(rèn)真看完了,有沒(méi)有心得體會(huì),您自己掂量。沒(méi)看完別來(lái)找我們。
“書(shū)單計(jì)劃”能很大程度上起到強(qiáng)鑒別器的作用,看了就是看了,必然能學(xué)到東西,沒(méi)看就是沒(méi)看。知道和不知道,區(qū)別是本質(zhì)的。其實(shí)很多企業(yè)內(nèi)部培訓(xùn),根本上其實(shí)還不就是叫員工去看之前沒(méi)看過(guò)的書(shū)或者資料嘛。最后,除了鑒別作用之外,它還是一個(gè)清晰促進(jìn)的目標(biāo),是完全不花精力的培養(yǎng)。
當(dāng)然,“書(shū)單計(jì)劃”的背后是另一個(gè)悲劇的現(xiàn)實(shí),如果不是因?yàn)檫@個(gè)現(xiàn)實(shí),這個(gè)計(jì)劃也完全沒(méi)有必要,那就是,中國(guó)IT大學(xué)教育當(dāng)中要求要學(xué)的書(shū),和企業(yè)真正需要你去讀的書(shū)相比,不是完全不夠用,就是寫(xiě)的不夠好,或者更悲劇的就是根本用不上,所以在這個(gè)大背景下出來(lái)的牛人都是自己淘書(shū)自己學(xué)的。微軟高級(jí)開(kāi)發(fā)測(cè)試工程師,《Windows用戶(hù)態(tài)程序高效排錯(cuò)》作者熊力就在微博上說(shuō)過(guò):“我當(dāng)年畢業(yè)的時(shí)候總結(jié)了一個(gè)公式:第一份工作的月薪=大學(xué)四年買(mǎi)過(guò)的技術(shù)書(shū)籍價(jià)格的總和。”
但是光有“書(shū)單計(jì)劃”還不夠,因?yàn)闀?shū)籍只能管基礎(chǔ)知識(shí)這一塊,一些更難以量化衡量的實(shí)戰(zhàn)“能力”又怎么辦呢?至少目前為止,除了“練”之外好像還沒(méi)有特別好的辦法??墒窃谙笱浪锩孀龅捻?xiàng)目,或大作業(yè),真的能起到練的作用嗎?前面說(shuō)了,學(xué)生會(huì)知道自己最終要交差的不是雇主,而是老師,于是就以老師能夠評(píng)判的標(biāo)準(zhǔn)來(lái)默認(rèn)要求自己了,老師能夠評(píng)判編碼素養(yǎng)?代碼風(fēng)格?文檔?設(shè)計(jì)?協(xié)作?甚至連著名的Joel 12條的第一條“是否用源代碼管理系統(tǒng)”都沒(méi)法通過(guò)。所以大多數(shù)時(shí)候,大作業(yè)能起到的作用近乎0。
但是如果這一切是由雇主來(lái)評(píng)判的,這個(gè)“作業(yè)”是由雇主來(lái)給出的,就完全不一樣了。一想到作業(yè)是要作為簡(jiǎn)歷的一部分的,能不緊張嘛。能不好好做嘛。能不學(xué)到點(diǎn)東西嘛?
可是這事兒能實(shí)現(xiàn)嗎?雇主能給學(xué)生出大作業(yè)嗎?也許一兩個(gè)關(guān)系好的高??梢?,可是中國(guó)那么多學(xué)生呢?
為什么不能呢?如果像書(shū)單那樣,列出各個(gè)技術(shù)領(lǐng)域“推薦在學(xué)校期間嘗試的項(xiàng)目”,至于動(dòng)不動(dòng)手做,那是學(xué)生自己的問(wèn)題。做的,自然能夠得到鍛煉,面試的時(shí)候自然能得到更大的優(yōu)勢(shì)。
可問(wèn)題是,面試的人又怎么來(lái)評(píng)估呢?這不又回到了沒(méi)法有效評(píng)估的怪圈了嗎?答案很簡(jiǎn)單,但這個(gè)答案,直到最近幾年,才真正成為現(xiàn)實(shí)——
GitHub
GitHub誕生于08年春天,第一年便產(chǎn)生了4萬(wàn)6千個(gè)公共項(xiàng)目,大約一年半之后用戶(hù)就已經(jīng)達(dá)到10萬(wàn)用戶(hù)之巨。而到今年九月份,GitHub已經(jīng)迎來(lái)了百萬(wàn)級(jí)用戶(hù)。Host超過(guò)兩百萬(wàn)個(gè)項(xiàng)目。
增長(zhǎng)的太快了!就像Twitter一樣。這樣瘋了一般的增長(zhǎng)只能說(shuō)明一個(gè)事實(shí)——人們等待這個(gè)產(chǎn)品太久了。
Social Coding。
真實(shí)的項(xiàng)目,真實(shí)的流程,真實(shí)的人名,一切代碼review, check-in, test, build, document, 甚至討論,計(jì)劃,brianstorming,流程,一切的一切,都是項(xiàng)目歷史的一部分,都可以像棋局那樣復(fù)盤(pán)。有經(jīng)驗(yàn)的面試者只要稍稍?huà)邇裳垡粋€(gè)人的GitHub歷史,挑出幾個(gè)check-in歷史看一看,便完全能夠迅速判斷這個(gè)人是否滿(mǎn)足他的要求。不再需要費(fèi)勁心機(jī)地去想題目,去觀察,去揣測(cè),去花費(fèi)大量的時(shí)間的同時(shí)還只能采樣到幾個(gè)極為有限的點(diǎn)。
不像象牙塔里面大作業(yè),這里有源代碼管理系統(tǒng),自動(dòng)化build,有check-in,有review,有分工,有合作,最重要的是——這是一個(gè)集市,一個(gè)超出象牙塔的集市,牛人相互吸引,你可以在互聯(lián)網(wǎng)上找到和自己擁有共同興趣的一幫人,真正做起一點(diǎn)事情,而不是交差,不需要受限于幾十個(gè)人的一個(gè)小班級(jí)。Here Comes Everybody。
為什么我這么有信心?因?yàn)檫@事兒已經(jīng)發(fā)生了。這個(gè)想法也完全不是我原創(chuàng)的。
正如很多事情一樣,現(xiàn)在在國(guó)內(nèi)發(fā)生的事情,往往是美國(guó)那頭的歷史。今年7月中旬,紐約一家公司的工程師老大發(fā)了一篇博客文章:Github is Your New Resume。指出一個(gè)驚人但再合理不過(guò)的事實(shí):越來(lái)越多的IT公司在招聘的時(shí)候要求應(yīng)聘者給出GitHub賬號(hào)。甚至已經(jīng)有人為GitHub寫(xiě)了根據(jù)GitHub上的歷史自動(dòng)生成簡(jiǎn)歷的工具。
仔細(xì)想想,這是必然的趨勢(shì),沒(méi)有比這個(gè)再合理的事情了,既然StackOverflow的歷史能夠作為簡(jiǎn)歷,GitHub的歷史不本該就是更好的簡(jiǎn)歷嗎:你想要具有實(shí)戰(zhàn)經(jīng)驗(yàn),懂check-in懂review懂test和代碼質(zhì)量的重要性,懂交流和溝通的重要性,你本就應(yīng)該在一個(gè)真實(shí)的項(xiàng)目當(dāng)中去鍛煉這些東西,而這些在目前已經(jīng)完全可以辦到。正如鄒欣老師所說(shuō),你的工作就是最好的面試。
這件事情放在早幾年,是完全沒(méi)法做到的,因?yàn)槲覀兡菚r(shí)候還沒(méi)有GitHub。正如沒(méi)有Twitter,沒(méi)有微博之前,很多事情都不會(huì)成為可能一樣,你有千鈞之力,缺乏一個(gè)合適的支點(diǎn),也沒(méi)法撬動(dòng)一整個(gè)社群。無(wú)組織中的組織,具有強(qiáng)大的杠桿效應(yīng)。
這個(gè)事情里面,我唯一提出的東西就是:在目前國(guó)內(nèi)這個(gè)現(xiàn)狀下,苦悶的招聘者應(yīng)該主動(dòng)行動(dòng),給出一些建議項(xiàng)目,正如前面提到的書(shū)單計(jì)劃一樣,招聘者需要給出的只是引導(dǎo)和清晰明確的目標(biāo),剩下的事情,應(yīng)聘者自然會(huì)去完成,這些項(xiàng)目可以是實(shí)驗(yàn)項(xiàng)目,也可以是完全能做出點(diǎn)賣(mài)錢(qián)的東西的項(xiàng)目(如果好好做的話(huà)),唯一的不可或缺的前提是,項(xiàng)目不能太小,單人就能完成的項(xiàng)目不理想,一兩個(gè)月就能完成的項(xiàng)目不理想,最好足夠大到能夠鍛煉到方方面面,偏大一點(diǎn)倒是無(wú)所謂的,因?yàn)橐粋€(gè)尚未完成的項(xiàng)目完全可以作為簡(jiǎn)歷。當(dāng)然,可以想見(jiàn)的是,真到了那個(gè)時(shí)候,學(xué)生們肯定又是不會(huì)滿(mǎn)足于僅去做那些已經(jīng)有許多人做過(guò)的項(xiàng)目了。所以這里企業(yè)們一開(kāi)始所建議的項(xiàng)目只是一個(gè)《Nudge》,是滾雪球之前需要的一點(diǎn)初始動(dòng)能。后面的事情,他們自己會(huì)完成。
“GitHub計(jì)劃”同樣有一些明顯的、甚至不可替代的優(yōu)點(diǎn):
- 清晰、明確,完全可度量。
- 防偽:同樣不擔(dān)心“泄題”。你偽造不了GitHub歷史,偽造不了check-in歷史,review comments,文檔,交流記錄…
- 它不但是招聘,也是不花精力的培養(yǎng)。善哉善哉。
- 評(píng)估的責(zé)任很大程度上交給了應(yīng)聘者自己。
從你的GitHub旅程開(kāi)始,你就已經(jīng)一腳踏進(jìn)了真正的企業(yè),而企業(yè)的面試也已經(jīng)開(kāi)始。
書(shū)單+GitHub,就相當(dāng)于一個(gè)兩年左右的面試。
沒(méi)有什么面試比持續(xù)兩年的面試更具有信息量。
書(shū)單,加上項(xiàng)目,已經(jīng)基本上覆蓋了所需的全部技能。最妙的是,有太多的人在焦急的等待著他們未來(lái)的雇主給出明確的信號(hào),他們想投入精力,去學(xué)習(xí)和實(shí)踐,去成為企業(yè)需要的人,但是他們就是不知道往什么方向走,所謂有動(dòng)力沒(méi)方向。所以,雇主給出了清晰明確的要求,相信對(duì)于很多人來(lái)說(shuō)反倒是一個(gè)解脫:“終于知道該干什么了”?!毒幊讨馈窞槭裁闯>訒充N(xiāo)榜?因?yàn)樗嘎读斯椭餮壑械男枨螅鞔_、清晰的需求,可以實(shí)現(xiàn),并且知道怎么去實(shí)現(xiàn)的需求。
你提前兩年就開(kāi)始面試和培養(yǎng)未來(lái)的候選者,而且還不需要你花出一分精力,而且人家還很樂(lè)意,沒(méi)有比這更完美的面試了。
想一想,以后那些沒(méi)見(jiàn)過(guò)世面的公司看見(jiàn)你拿出GitHub賬號(hào)給他看,該是多么驚訝同時(shí)又覺(jué)得多么合理。
而這一切,只是因?yàn)閮蓚€(gè)小小的改變:
- 由需求方(雇主)給出了清晰、明確的目標(biāo)。
- GitHub這樣的平臺(tái)。
那么,學(xué)校/老師在這個(gè)事情當(dāng)中的位置呢?說(shuō)實(shí)話(huà)我不知道。沒(méi)有哪個(gè)行業(yè)像IT行業(yè)這樣特殊:沒(méi)有什么東西不能夠(應(yīng)該)在互聯(lián)網(wǎng)上學(xué)到的。自組織的力量完全大過(guò)傳統(tǒng)的教育方式。而且,既然雇主都當(dāng)了領(lǐng)路人了,我不知道還有中間開(kāi)發(fā)商什么事兒。(注:這里說(shuō)的是軟件開(kāi)發(fā),并非計(jì)算機(jī)科學(xué)研究,后者另當(dāng)別論)
那么,這個(gè)改變會(huì)發(fā)生嗎?多久會(huì)發(fā)生呢?當(dāng)然,它在國(guó)外已經(jīng)發(fā)生了,所以問(wèn)這個(gè)問(wèn)題多少有點(diǎn)無(wú)趣。但我還是預(yù)計(jì)很快就會(huì)在國(guó)內(nèi)發(fā)生,畢竟,不是已經(jīng)有人要求出示博客,和經(jīng)常瀏覽的網(wǎng)站了嗎?也許5年左右(4年本科和6年碩士的中間值?))就會(huì)深刻改變整個(gè)人才培養(yǎng)/招聘的格局。當(dāng)然,我并不是預(yù)言家,所以不要把我的時(shí)間估計(jì)當(dāng)真,我能肯定的是,這種方式是必然的大勢(shì)所趨。
剛才我就收到一位同學(xué)邀請(qǐng)我上知乎回答一個(gè)問(wèn)題“找工作的首要原則是什么?”,當(dāng)然,這個(gè)問(wèn)題的答案是:“弄清雇主的需求到底是什么”。
#p#
列一下我所認(rèn)為的,你面試微軟前必須要讀的十本書(shū):
- Code: The Hidden Language of Computer Hardware and Software (《編碼的奧秘》)
- Computer System: A Programmer’s Perspective (《深入理解計(jì)算機(jī)系統(tǒng)》) / Windows via C/C++ (《Windows核心編程》 / 《程序員的自我修養(yǎng)》
- Code Complete 2(《代碼大全》)/ The Pragmatic Programmer (《程序員修煉之道》,我也把這本書(shū)稱(chēng)為《代碼小全》)
- Programming Pearls (《編程珠璣》) / Algorithms / Algorithm Design / 《編程之美》
- The C Programming Language
- The C++ Programming Language / Programming: Principles and Practice Using C++ / Accelerated C++
- The Structure and Interpretation of Computer Programs (《計(jì)算機(jī)程序的構(gòu)造和解釋》)
- Clean Code / Implementation Patterns
- Design Patterns (《設(shè)計(jì)模式》) / Agile Software Development, Principles, Patterns, and Practices
- Refactoring (《重構(gòu)》)
(注:1. 以上同一條目下用“/”隔開(kāi)的表示任選,當(dāng)然你也可以都讀了,相信我,時(shí)間是足夠的。2. 讀這些書(shū)并不意味著逐字逐句從第一頁(yè)讀到最后一頁(yè)——當(dāng)然你也可以這么做。怎么是聰明高效的讀法,可以參考我之前寫(xiě)的關(guān)于如何閱讀和查找/鑒別書(shū)籍/資料的博文)
注意:以上是我個(gè)人認(rèn)為你面試微軟開(kāi)發(fā)職位前必須要讀的10本書(shū),它不代表我的雇主的觀點(diǎn)。它也只是一個(gè)初步的書(shū)單,肯定會(huì)受到我個(gè)人經(jīng)驗(yàn)和眼界的限制。歡迎大家提意見(jiàn)。
此外,IT不同子領(lǐng)域的必讀書(shū)單可能千差萬(wàn)別,所以在發(fā)布之前我把這篇文章發(fā)給了一些朋友,他們給出了自己的書(shū)單(你是不是能看到一些有趣的共同點(diǎn)呢):
云風(fēng)(中國(guó)游戲編程先行者,前網(wǎng)易游戲部門(mén)資深程序員,簡(jiǎn)悅創(chuàng)始人):
如果面試,我會(huì)挑以下的我自己讀過(guò)的書(shū),讓人選擇他也讀過(guò)的部分,再了解他對(duì)這些書(shū)的理解。這些書(shū)其實(shí)本質(zhì)上就是兩類(lèi),對(duì)所面對(duì)的東西(程序語(yǔ)言也好,操作系統(tǒng)也好,底層設(shè)施也好)本身的理解程度。以及另一類(lèi):對(duì)設(shè)計(jì)思想和原則的理解:
- C++編程思想
- Effective C++
- 深度探索C++對(duì)象模型
- C++語(yǔ)言的設(shè)計(jì)和演化
- C專(zhuān)家編程
- C陷阱與缺陷
- C語(yǔ)言接口與實(shí)現(xiàn)
- Lua程序設(shè)計(jì)
- Linkers and Loaders
- COM本質(zhì)論
- Windows核心編程
- 深入解析Windows操作系統(tǒng)
- 程序員修煉之道
- 代碼大全
- UNIX編程藝術(shù)
- 設(shè)計(jì)模式
- 代碼優(yōu)化:有效使用內(nèi)存
- 深入理解計(jì)算機(jī)系統(tǒng)
- 深入理解LINUX內(nèi)核
- TCP/IP 詳解
馮大輝(丁香園CTO,貝塔咖啡創(chuàng)始人):
- 軟件隨想錄
- 黑客與畫(huà)家
- 重來(lái)
- UNIX編程藝術(shù)
- 編程人生
洪強(qiáng)寧(豆瓣技術(shù)總監(jiān)):
StackOverflow上有一個(gè)程序員必讀書(shū)單帖子,這里僅列出top10,更多參考這里。
- Code Complete 2
- The Mythical Man-Month (《人月神話(huà)》)
- Code: The Hidden Language of Computer Hardware and Software (《編碼的奧秘》)
- TAOCP (不解釋?zhuān)?/li>
- The Pragmatic Programmer (《程序員修煉之道》)
- Design Patterns (《設(shè)計(jì)模式》)
- The Structure and Interpretation of Computer Programs (《計(jì)算機(jī)程序的構(gòu)造和解釋》)
- Refactoring (《重構(gòu)》)
- The C Programming Language
- Introduction to Algorithms (《算法導(dǎo)論》)
鄭昀(窩窩團(tuán)研發(fā)副總裁):
- 工程師入門(mén):
- Code Complete 2
- 程序員修煉之道
- 深入理解計(jì)算機(jī)系統(tǒng)
- 工程師升級(jí):
- 設(shè)計(jì)模式
- 重構(gòu)——改善既有代碼的設(shè)計(jì)
- 工程師轉(zhuǎn)型:
- 快速軟件開(kāi)發(fā)——有效控制與完成進(jìn)度計(jì)劃
- 人月神話(huà)
- IT項(xiàng)目管理那些事兒
- 軟件隨想錄
- 最后期限
- 走出軟件作坊
- 你的燈亮著嗎?——發(fā)現(xiàn)問(wèn)題的真正所在
張崢(微軟亞洲研究院副院長(zhǎng)):
- Algorithms (by Sanjoy Dasgupta, Christos Papadimitriou and Umesh Vazirani)
- Data Structure and Algorithms
- The C Programming Language
- The Design of the UNIX Operating System
- Compilers (龍書(shū))
- Computer Architecture: A Quantitative Approach
- Flow
- Outliers (why hard work and luck are both important)
鄒欣(MSRA創(chuàng)新工程中心首席研發(fā)經(jīng)理):
關(guān)于創(chuàng)新的書(shū)籍(http://book.douban.com/doulist/1253169/):
- The Myths of Innovation
- The Innovator’s Dilemma
- The Innovator’s Solution
- Crossing the Chasm
- Inside Intuit
- 盛田昭夫
- 杰克·韋爾奇自傳
- 夢(mèng)斷代碼
- Innovation
- 浪潮之巔
關(guān)于“精通”的一篇博客《技能的反面:魔方和模仿》:
http://www.cnblogs.com/xinz/archive/2011/08/07/2129751.html
在我教的《現(xiàn)代軟件工程》課上,除了教科書(shū),每個(gè)學(xué)生要看另一本相關(guān)的書(shū)籍并寫(xiě)讀書(shū)分析。這個(gè)博客有一些同學(xué)的讀書(shū)報(bào)告:
http://www.cnblogs.com/OMG-Team/archive/2011/10/25/2223247.html