|
英文原文:How to recognise a good programmer
這并不是想象的那么容易。簡歷上的工作經歷并不能說明什么問題,因為卓越的程序員并非總是有“正式”的工作經驗來說明他們有多優秀。事實上,簡歷上的工作經歷往往會誤導。不過,從簡歷中還是可以得到某人是否是卓越程序員的一些細微線索。
我覺得自己是一個非常優秀的程序員。同時,我也花費了大量的時間在商業圈,找技術人員做項目,面試別人等等。正是如此,我覺得自己有足夠的經驗去識別一個優秀的程序員,我會在下文中分享,希望能夠幫助那些 “商業人士”更好地找到人才。那些有可能成為優秀程序員但還沒有摸到門道的,也可以閱讀這篇文章,從而發現自己需要改進的地方。
在Paul Graham的這篇《導致創業失敗的18個錯誤》文章里提到:
在90年代,導致絕大多數創業失敗的是那些劣質的程序員,很多這樣的公司是幾個商人共同創立的,他們有聰明的想法,然后讓程序員來實現這些想法。但事實上要困難地多——因為那些企業家他們無法分辨一個程序員是否優秀。他們甚至都沒有機會見到那些頂級的程序員。
事實上,那些商人選擇自己認為優秀的程序員(比如簡歷上提到自己曾是微軟的工程師),但事實上不是。然后會發現創業之路就像二次大戰一樣艱難。
如果你不是程序員,如何來挑選優秀的程序員呢?我覺得沒有最佳答案。我想說你最好找一個優秀的程序員來幫你篩選。但你如何找到這個人?
這點上,我不太同意Graham。我覺得優秀的程序員有很多特質。即使一個商人也能識別。我下面來一一列舉。
0. 激情
在我與別人合作的經歷中,遇到過很多技術員:他們寫程序,因為他們覺得這是份不錯的工作。業余時間從來不會去編程。當他們知道我家里有一個局域網和3臺電腦時,顯得很震驚。他們只是在工作,不會主動學習新事物,除非工作中需要,或者為了找份工作。當一天的工作結束時就再也不想談論它了。有些人覺得工作之余談工作不適合社交。但如果你想結識一個優秀的程序員,體現出自己的激情是很重要的。
1. 自學并喜歡學習
時過境遷,編程語言也在不斷進步和完善,新的技術會出現,新的標準也會到來。當然不是說,所有優秀的程序員都對那些事物有濃厚的興趣,但有很多程序 員他們從來不會主動學習新事物,除非迫不得已,因為他們不喜歡學習新東西。這些人往往是在大學時學的計算機專業,然后渴望畢業后找到份好工作。
如果你打算雇傭某個程序員,只要提到“我能掌握那個,只要把我送到培訓中心一個星期”。不要雇傭那樣的人。優秀的程序員不需要培訓中心。事實上,優秀的程序員會提到你從未聽過的新技術,然后向你解釋為什么必須用它,即使他都不知道如何使用。
2. 聰慧
有些商人覺得缺乏情商就是不夠聰慧。事實上聰慧包括很多因素,情商只是其中之一。優秀的程序員不是不會說話,事實上,優秀的程序員通常是你認識的人中最聰明的。他們中的很多人有很好的社交能力。我參加過幾次 London Ruby User聚會,除了少數幾個特例,大多數人都很聰明,善談,興趣廣泛等等。但你不會在公眾場合看到他們談論,然后會想“這是怎樣的一幫geek啊”。
不要認為那些話不多的人就是好的程序員。他們不是,如果在完全放松的環境下都不能很好地交流,他們不是優秀程序員的概率會很大。
3. 隱藏技能
這跟激情有關,也是優秀程序員的一個特征。
我在9歲時就開始編程,那時還不是在PC上,后來遷移到了PC,學了Pascal。當我14歲時,用C和Assembler寫了一個 raycasting引擎。花費了大量的時間與顯卡打交道,終于可以看到很酷的圖形效果。在這之前,我只是個二流的程序員,沒有信心做任何復雜的事情。當我完成它時,我收獲了自信。我知道只要我想,再難的事情我都能搞定。
這會在我的簡歷上出現嗎?不會
我深信大多數優秀的程序員都有類似的冰山不會出現在簡歷上。他們覺得這不是“合適的經歷”。可以對那些潛在的優秀程序員問一個這樣的問題“你能告訴我一個自己獨立完成的項目嗎?即使是不完整的,在業余時間開發的,沒有出現在簡歷上?”如果他們不能,他們很可能不是優秀的程序員。
4. 多種技能
這個很簡單,由于對新鮮事物的熱情和強烈的求知欲,那些22歲以上的程序員通常掌握好幾門語言。這不可避免,學習一個新技術是最有意思的事情之一。
5. 證書
這其實不是一個優秀程序員的特征,很多有計算機相關證書,很多沒有。年齡也一樣,有些18歲就展露頭角,有些40歲才有所成就。我的經歷告訴我,大多數平凡或者差的程序員大學時才開始編程,為了他們的計算機課程。而優秀的程序員編程的歷史可以追溯到更遠。如果你的準程序員在大學前沒有接觸過編程,他所有的經歷都是從第一份工作開始的,他很可能不是一個優秀的程序員。
聲明
上面或者下面所說的特征不是必備的。你很可能會發現 NB的程序員不符合這些特征。我的觀點是,你不太可能找到一個優秀的程序員不符合這些特征中的任意一條。當然,你也會發現差的程序員也符合這些特征中的某幾個。但我深信,一個程序員,這些特征符合地越多,那么他是優秀程序員的概率就越大,作為一個商人,你可以信賴這些人。
總結
以下幾個特征,能夠幫助你找到優秀的程序員
- 對技術充滿熱情
- 編程是生活的一部分
- 會在你的耳邊談論技術相關的話題,如果你有興趣的話
- 主動學習新技術
- 對自己不能認同的技術,感到不適應,無法全身心投入
- 聰明,對很多話題都感興趣
- 在大學/工作之前就開始編程了
- 有隱藏的冰山,自己完成的大項目
- 對許多不相關的技術有了解
it知識庫:如何辨別優秀的程序員,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。