我是如何篩選程序員的
我想這讓人難以置信,但是通過Twitter和電子郵件渠道蜂擁而來的報道表明:許多參加程序員面試的求職者根本就不會編程,看看邁克·林最近的郵件就知道了:
《為啥程序員 都不會編程呢?》這篇文章讓我改變了面試的方式。以前面試我開始都以營造融洽氣氛為主。正如你提到的,事實證明這種方式太耗費時間了,大多數應聘者根本就不會技術。因此我以技術問題作為開頭來面試應聘者,剛開始的時候,問題的難度是從容易逐漸變難。后來我發現反過來的話,甄別應聘者的速度會快些,即難的問題先問(前提是難的問題必須屬于“工作必備技能”一類的問題)。多數面試仍然會花上20分鐘作用,因為回答和評估仍然需要花上一些時間。但是這對于之前”先營造融洽氣氛“的面試方式來說一個相當大的改進,而且還可以通過電話方式來完成。
在讀了你的文章之后,我開始通過電話,網絡會議方式進行編程面試,甄別不會編程的應聘者(也就是大多數人)所需時間降到了15分鐘左右。
我寫那篇文章的時候時間還是2007年,三年后當我再次聽人說應聘編程工作的絕大多數所謂的程序員竟然不能寫一小段程序時,我震驚了,但是也并沒有完全出乎我的意料。需要清楚的是,難是一個相對的詞匯——我們不是指那種復雜的有如Google計算機專業研究生難度的面試題。我們給應聘者做的都是一些極其簡單的題目,但是他們不會。這就相當于你想雇一位卡車司機,但是卻發現90%的應聘者竟然找不到油門和變速擋。
我也同意,這有些瘋狂,但是這樣的事情每天都在發生,而且這是我們這個行業在招人時常見的問題。
你需要通過這種簡單的技術面試題來篩選掉這些偽程序員的大軍。我在前面提到過的,通過電話篩選是個明智的選擇。不過通過網絡方式來篩選效果要更好,并且更自然些。
我還是非常不習慣通過遠程共享對方電腦桌面的方式與應聘者進行網絡面試。我在網上搜索了一下類似“紙筆”方式的編程面試的工具,但是沒有收獲。所以我做了一件所有有自尊心的程序員都會做的事情。我自己寫了一個。伙計,花在這個程序上面的精力很值!對每個應聘者的初期技術篩選所花的時間,我安排了15分鐘。但是遺憾的時,我一般只需5~10分鐘就能結束。如果他們能寫10行簡單的代碼,我就會給他們安排一次真正的面試。但是這種事情并不經常有,不過也好,至少我不會再浪費大量的時間了。
邁克加了一個聲明,稱他這個自制的編程測驗工具并不是想秀一下他的編程能力如何。他需要一個這樣的工具,所以他就寫了一個——并且非常貼心的與大家分享了。 或許除了這個還有其他的工具;你們大多數人都使用什么在線工具來篩選程序員?
三年后,我仍然想知道:為什么一點都不會寫程序的人都會冒出他們可以勝任程序員工作的念頭來呢?的確,他們中有一些人會如愿以償。但這也意味這個程序員這個行業的面試標準非常不合適。這是一種恥辱。它讓每個在職的程序員蒙羞
水平差的程序還至少還可以接受教育來提高,而偽程序員不僅無藥可就,而且還會讓他周圍 的同事自掉身價。這類人需要鏟除,要做到這點就需要我們從最簡單的技術編程測試做起,而這類測試也應該成為每程序員面試的一個組成部分。