前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的程序員實(shí)習(xí)心得體會(huì)主題范文,僅供參考,歡迎閱讀并收藏。
從GitHub旅程開始,就一腳踏進(jìn)了真正的企業(yè),而企業(yè)的面試也已開始。
這個(gè)改變會(huì)發(fā)生嗎?多久會(huì)發(fā)生?它在國外已經(jīng)發(fā)生了,我肯定這是大勢所趨。
我預(yù)計(jì),很快就會(huì)在中國發(fā)生。
我曾收到一位同學(xué)的問題:“找工作的首要原則是什么?”
答案是:“弄清雇主的需求到底是什么?!?/p>
美國軟件工程師Joel Spolsky曾發(fā)出類似感嘆:招聘難,難于上青天。也許沒有哪個(gè)行業(yè)像IT這樣,無形資產(chǎn)占據(jù)公司的絕大多數(shù)資產(chǎn)。坊間傳言比爾·蓋茨曾說:只要允許我?guī)ё?00個(gè)人我可以再造一個(gè)微軟。這話沒搜到出處,但從側(cè)面反映了IT公司中智力資產(chǎn)所占的比重。所以,招聘也許是IT公司決策中最重要的一個(gè)環(huán)節(jié)。Joel Spolsky把他在這方面的觀察、體會(huì)和洞見集結(jié)成小冊子Smart and Gets Things Done。
美國招IT人士難成這樣,搞得Joel Spolsky寫書語重心長地勸公司善待工程師,中國招人更是難上加難。從 2008 年到現(xiàn)在,我一直想:招人能不能有點(diǎn)竅門,或?qū)嵱梅椒ā=Y(jié)論:幾乎沒有。我用過大家都用的方法:
在水木BBS上發(fā)帖子(有點(diǎn)效果);
在藍(lán)色理想(有關(guān)網(wǎng)站設(shè)計(jì)與開發(fā)人員之家的網(wǎng)站)上發(fā)帖子(無效);
在技術(shù)郵件組里發(fā)帖子(無效);
買 51job/智聯(lián)服務(wù)(有點(diǎn)效果);
給所有可以想到的人打電話,請他們推薦(無效);
給所有和你討論過創(chuàng)業(yè),喝過點(diǎn)小酒的人打電話(無效);
約前同事私下談(有效)。
我用過大家可能沒有用的方法:
上twitter,看某人的follower,一個(gè)一個(gè)看,看他們的twitter、博客、Google Reader 分享,想辦法搞到郵件,半夜電話騷擾;
上豆瓣,挑幾本重量級的書,去找想看、看過、正在看這本書的人,一個(gè)一個(gè)看,看他們的活動(dòng)、博客、Google Reader分享,想辦法搞到郵件,半夜電話騷擾;
找同事,問他們都看什么技術(shù)博客,想辦法搞到郵件,半夜電話騷擾。
雙方:都在大海撈針
正是這樣的不易,有不少公司內(nèi)部培養(yǎng)人,它們的邏輯是一上來就招到靠譜的人太難了,但找一塊靠譜的璞玉然后雕琢相對簡單。這倒是個(gè)辦法,但難免陷入糾結(jié):培養(yǎng)好了,人跑了怎么辦,還是沒有解決根本問題。應(yīng)聘者覺得自己“海投”,大海撈針。而招聘者何嘗不也是大海撈針。
招聘真的很難。以至于招聘者每年絞盡腦汁出新的筆試題,題目要不太簡單也不太難,能夠?yàn)V掉絕大多數(shù)濫竽充數(shù)的,又要保證真正有能力的;考慮審題人的時(shí)間成本只能多數(shù)用選擇題,而選擇題又是可以猜答案的。更悲催的是,有些題目連公司的員工都會(huì)做錯(cuò)……筆試之后是面試。短短幾個(gè)小時(shí)的面試(大多數(shù)公司連幾個(gè)小時(shí)的面試時(shí)間都沒有),既要全面考察基本知識,又要考察編程素養(yǎng),還要考察性格心態(tài)。最后,還有一項(xiàng)根本沒法考察,卻占據(jù)程序員相當(dāng)工作時(shí)間的——debug能力。
面試官不但得找準(zhǔn)問題,不因?qū)Ψ揭活}答對而妄下結(jié)論,也不因一題答錯(cuò)扼殺機(jī)會(huì),還要從面試人的舉止言談、分析問題的方式,甚至寫程序的筆跡,觀察他的性格、做事的方式和心態(tài),這時(shí)的面試官,非要具備心理分析師的水準(zhǔn)才行。
這廂招人的雇主苦不堪言,那邊找工作的人也是一團(tuán)亂麻。絕大多數(shù)應(yīng)屆生直到畢業(yè),也不清楚他們想去的公司到底需要什么樣的能力,或者說,他們到底要具備什么樣的能力。我收到很多這樣的來信,大學(xué)生們很想學(xué)點(diǎn)東西,但又不知道哪些重要哪些不重要,該學(xué)到什么程度。有一次,我面試了一位同學(xué),簡歷上寫著編譯原理課的大作業(yè)得了一等獎(jiǎng)??晌乙粏柺裁词沁f歸下降,他就傻眼了。
現(xiàn)實(shí)的結(jié)果是,對絕大多數(shù)應(yīng)屆生而言,簡歷上最具信息量的部分不是“精通XXX,熟悉YYY,掌握ZZZ”,也不是“在UUU實(shí)習(xí)過”,反倒是越來越被認(rèn)為不重要的:畢業(yè)學(xué)校。畢業(yè)學(xué)校本不應(yīng)該最具信息量,之所以最具信息量源于悲劇事實(shí):簡歷上其他條目實(shí)在信息量太少了??孔V的面試者學(xué)會(huì)了無視簡歷上華而不實(shí)的內(nèi)容,只相信親眼所見。
怎么培養(yǎng)IT企業(yè)真正需要的人才?實(shí)戰(zhàn)能力怎么培養(yǎng)?代碼素養(yǎng)怎么培養(yǎng)?協(xié)作溝通能力怎么培養(yǎng)?學(xué)習(xí)能力怎么培養(yǎng)……這些問題,就是當(dāng)下人才培養(yǎng)/招聘的慘淡現(xiàn)狀。在雇主和學(xué)生之間,橫亙著一條巨大的鴻溝,兩頭都著急,兩頭都有動(dòng)力,但就是沒有方法。
這一切,也許將在未來幾年發(fā)生變化。
書單計(jì)劃
現(xiàn)在,企業(yè)對招聘者簡歷的要求變得越來越靈活變通。比如,ThoughtWorks招聘時(shí)希望招聘者能給出自己的博客地址,一個(gè)積累多年的技術(shù)博客比任何簡歷都更能說明問題??上В@個(gè)做法也有一個(gè)弊端——并不是所有技術(shù)牛人都寫博客,有人就是只干不說。但是,這表明了一個(gè)思考方向——尋找更具鑒別力的過濾器。到底什么既通用,又能夠有效鑒別應(yīng)聘者的能力高低呢?答案——書。
我一直認(rèn)為:很多時(shí)候,是否好好看完一本好書,對一個(gè)人的提升往往能達(dá)到質(zhì)的區(qū)別。就算不好好看完一本好書,馬馬虎虎看完好書,也會(huì)有很大的提高。面試時(shí),我經(jīng)常詢問對方看過哪些技術(shù)書籍,經(jīng)常上哪些網(wǎng)站,訂哪些博客。其中,書籍這一項(xiàng)的區(qū)分度最高。
好書和壞書的差別,本質(zhì)上就是學(xué)習(xí)效率和大方向的差別。一本爛書浪費(fèi)半年時(shí)間,一本好書卻可以帶來扎實(shí)的基礎(chǔ)和開闊的視野。讀爛書浪費(fèi)時(shí)間,但讀好書卻節(jié)省時(shí)間。為招聘頭疼的公司可以列出“應(yīng)聘俺們公司前必讀的十本書”。姑且把這個(gè)計(jì)劃叫做“書單計(jì)劃”,這個(gè)計(jì)劃有幾大優(yōu)點(diǎn):
清晰、明確。完全可度量。
防偽:讀沒讀過,一問便知。
不在乎是否“泄題”:書單完全公開。想背題?背書吧。
管你用心不用心讀,只要讀了,讀完了,就有區(qū)別。真正的好書,你想不被吸引都難。
不存在“怎么做”的障礙,所有人都知道怎么讀書——一頁一頁讀。
不需要招聘者投入精力:書單在此,就這么簡單,您看著辦。
評估的負(fù)擔(dān)很大程度轉(zhuǎn)移到了應(yīng)聘者身上:是不是認(rèn)真看完了,有沒有心得體會(huì),您自己掂量。沒看完別來找我們。
當(dāng)然,書單計(jì)劃需要自己淘自己學(xué)。微軟工程師熊力曾在微博上寫道:“我當(dāng)年畢業(yè)的時(shí)候總結(jié)了一個(gè)公式:第一份工作的月薪=大學(xué)四年買過的技術(shù)書籍價(jià)格的總和?!币韵率俏覀€(gè)人認(rèn)為面試微軟前必讀的10本書。
Code: The Hidden Language of Computer Hardware and Software (《編碼的奧秘》)
Computer System: A Programmer’s Approach (《深入理解計(jì)算機(jī)系統(tǒng)》) / Windows via C/C++ (《Windows核心編程》 /《程序員的自我修養(yǎng)》
Code Complete 2(《代碼大全》)/The Pragmatic Programmer (《程序員修煉之道》,我也把這本書稱為《代碼小全》)
Programming Pearls (《編程珠璣》)/Algorithms / Algorithm Design / 《編程之美:微軟技術(shù)面試心得》
The C Programming Language《C程序設(shè)計(jì)語言》
The C++ Programming Language《C++程序設(shè)計(jì)語言》/ Programming: Principles and Practice Using C++ 《C++程序設(shè)計(jì)原理與實(shí)踐》/Accelerated C++
The Structure and Interpretation of Computer Programs(《計(jì)算機(jī)程序的構(gòu)造和解釋》)
Clean Code 《代碼整潔之道》/ Implementation Patterns《實(shí)現(xiàn)模式》
Design Patterns (《設(shè)計(jì)模式》)/ Agile Software Development, Principles, Patterns, and Practices《敏捷軟件開發(fā)(原則模式與實(shí)踐)》
Refactoring (《重構(gòu)》)
注:以上同一條目下用“/”隔開表示任選。
GitHub
光有書單計(jì)劃還不夠,因?yàn)闀还芑A(chǔ)知識,更難以量化衡量的實(shí)戰(zhàn)能力又怎么辦?目前,除了“練”之外還沒有其他好辦法。可是,在大學(xué)里做的項(xiàng)目,或大作業(yè),能起到練的作用嗎?解決的辦法直到最近幾年才成為現(xiàn)實(shí)——GitHub誕生于2008年春天,第一年就產(chǎn)生了46000個(gè)公共項(xiàng)目,一年半后,用戶數(shù)達(dá)到10萬。2011年9月,GitHub迎來了百萬用戶,超過兩百萬個(gè)項(xiàng)目。
真實(shí)的項(xiàng)目、流程和人名,一切代碼review、check-in、test、build、document,甚至討論、計(jì)劃和brianstorming,都是項(xiàng)目歷史的一部分,都可以像棋局那樣復(fù)盤。有經(jīng)驗(yàn)的面試者只要掃兩眼GitHub歷史,挑幾個(gè)check-in歷史看看,便能迅速判斷這個(gè)人是否滿足要求。與大作業(yè)不同,GitHut里有源代碼管理系統(tǒng)、自動(dòng)化build,有check-in、review,有分工、合作,最重要的是GitHut是一個(gè)集市,牛人相互吸引。