工做十年後面試華爲,60分鐘現場編程能測出個人實力嗎?

1程序員面試,一個玄學問題

程序員的面試問題一直是個玄學。有的公司認爲應該考量應聘者的技術深度與視野,有的公司則認爲起碼的白板手寫代碼是基本要求。而在面試者們看來,都是擰螺絲的 Crud Boy,你讓我瞎造什麼核彈。前端

前不久,華爲宣佈面試改革,將增長編程環節,充分考察程序員實際動手編程能力。改革中有幾個要點:1. 應聘人員要先在網上進行 90 分鐘的網上編程,符合要求以後才能進入到面試環節;2. 應聘人員須選擇一種編程語言進行兩輪面試,每輪約 45 分鐘,30 分鐘編程、15 分鐘提問討論。面試官獨立進行面試考察,並根據崗位要求設計編程考察題目,應聘者需經過當面或視頻編程的方式完成題目。程序員

對於程序員來講,把需求轉化爲代碼實現,並寫出健壯程序是最基礎也是最重要的能力。華爲此舉優化了軟件類人才的面試流程,面試更以考察軟件工程能力與編碼能力爲核心。web

事實上,對此作法表示贊同的不在少數:面試

  • 做爲 IT 行業的資深 HR,我表示承認;編程

  • 做爲一個面試無數次被拒的程序員,我表示承認;canvas

  • 實際操做能力是得考察一下;app

  • 不編程怎麼招聘程序員?二十多年前我本身應聘,後來我負責招聘,都是要上機寫程序的。編程語言

可是也有一些不一樣的聲音,認爲這樣的考覈標準太過嚴厲:分佈式

不說別的,就把華爲最牛逼的人,最優秀的人拉出來,看看他徒手能寫幾行,用相同的方式去把華爲程序員過一遍,估計 80% 須要淘汰,你們同一個圈子,何須爲難同胞。ide

這樣的抱怨,也常常發生在一些「功成名就」的優秀老程序員身上:

「我如今接近 40 歲了。去年 12 月,我離開了個人創業公司,再也不擔任該公司的 CTO 職位。自那以後,我至少經歷了 10 次失敗的面試,這些面試都有編程測試環節。我有近 20 年的開發經驗,包括早期電子工程開發和完整的分佈式 Web 應用程序開發等。我建立的軟件能夠在全球大批量的專業生產工廠中實現完整的產品追溯。然而如今,我甚至找不到一個開發的職位,由於我通不過這些編程測試。「

一樣的事情在大齡程序員不那麼受「歧視"的國外也依舊存在。一位具備 10 年工做經驗的計算機專業博士,不停地用網上題庫進行練習,想加快編程速度。在此以前,他多次被一些 IT 巨頭公司拒絕。

這樣的面試要求,不只會淘汰不少不合格的軟件人員,也爲不少高級開發工程師敲響了警鐘。若是想進大廠,面對這樣的面試要求,你慌不慌?

2對於面試現場編程,BAT 們未必贊同華爲作法

現場編程是最能直觀體現程序員編程水平的一種方式,也是程序員證實本身的最好方式。咱們也曾在報道中看到過程序員大佬現場編程拿到高薪職位的各類版本。

  • 好比某位程序員去京東面試前端崗位,在技術面這一輪直接用 JavaScript 寫了個魔方特效,經過終面,拿到高薪;

  • 再好比某位去騰訊面試的程序員,現場用原生 JS+canvas 開發出了一款五子棋遊戲,成功拿下該崗位......

華爲面試改革後增長了現場編程的環節,那麼 BAT 等 IT 大廠面試是否有現場編程這個環節呢?咱們分別詢問了阿里、騰訊和百度的同窗。

根據反饋:阿里有筆試手寫代碼的環節,但沒有現場編程的環節;騰訊各個團隊的面試不同,有的團隊須要上機寫代碼和編譯提交;百度沒有現場編程環節,甚至有的團隊連手寫代碼的環節都不須要。

這樣來看,BAT 都不作的事兒,華爲爲何要作呢?

對於華爲來講,之前用大規模招聘來快速補充業務發展所需的人力壓力,因此他們的面試步驟也是由於這個訴求而逐步創建起來的。在面試改革的文件裏,他們提到「HR 看簡歷面試又不深入,致使大規模進人、大規模走人」,這樣來看,編程環節能夠極大簡化 HR 檢查和審覈的過程。

看來應聘華爲的程序員同窗應該是數量龐大,針對大批量申請者,這樣的現場編程面試雖然會漏掉個別優秀的人,可是不會影響華爲招聘的節奏。

對於華爲這一面試作法,若是 BAT 都持保留意見,那麼中小型公司是否是就更不必了?

咱們採訪了一位 30 餘人技術團隊的負責人,他表示:「在咱們這樣體量的團隊中,讓程序員在面試時現場編程是徹底不必的,經過筆試題目和現場問答,徹底能夠了解到應聘程序員的實力。」

3除了動手編程,還能如何瞭解程序員的軟硬實力?

寫代碼是程序員的生命力所在,不管是現場編程仍是手寫代碼,面試官老是試圖從這些代碼中看出應聘者的代碼水平和習慣,例如代碼的可讀性、可維護性如何;界面、功能的設計能力如何;思惟、代碼結構是否清晰等等。

可是有時候面試官的水平和眼光也決定着這種作法是否真的那麼禁得起考驗。

Facet 的 CEO 曾抱怨本身在 Netflix 時,不當心拒絕掉了亞馬遜 Prime Air 的創始人。另外一位從業 30 多年的業內人士看到這個消息,也感慨本身的一位同事,一位公司內排名 Top 5 的程序員,在面試其餘公司時,首輪就被刷掉了。這說明不只程序員自己擁有過硬的實力很重要,招聘者是否具有伯樂的眼光更重要。

圖片

招聘新思路——創建工做樣本測試

「如何在短期內瞭解程序員的軟硬實力」是每一個招聘者的必修課。諾貝爾獎得主 Daniel Kahneman 因其在判斷和決策方面的成績而聞名,他在早些時候接受採訪時表示,面談對於選擇最佳崗位候選人來講是很是糟糕的,但遺憾的是他並無提出替代方案。不過,著名的工程師兼評論員 Thomas Ptacek 在發表的招聘方法論的文章中提出了這樣一個招聘方法——創建工做樣本測試。相比於詢問應聘者的工做內容,讓應聘者實際操做是更好的一個方式。

工做樣本測試須要具有如下特徵:

  • 儘量地反映出應聘者在將來將要完成的實際工做;

  • 要是標準化的,每一個應聘者都要進行一樣的測試;

  • 最終生成數據和評分,而不是簡單的及格或不及格。

Thomas Ptacek 曾嘗試使用工做樣本測試,他們在一個單文件 Sinatra 項目中構建了一個電子交易系統,接口爲定製的二進制協議,同時構建了 web 接口來驅動協議。應聘者須要找出這個交易體系中的缺陷。

「這樣一個小測試須要應聘者在幾小時內編寫出幾百行代碼,比其它任何面試都更有預測力」。Thomas Ptacek 表示:「相比於傳統的面試方法,應聘者彷佛更喜歡這樣的測試。另外,在工做樣本中作的評估越多,面談中須要談的內容就越少。」

這樣的工做樣本測試也適用於純開發任務,例如面試官能夠實際構建和部署一個應用程序,並從應用程序中劃分出一些功能區域,刪去某些功能,讓應聘者從新添加。

招聘常規思路——歷史項目描述及筆試題目

如何才能快速瞭解到程序員的軟硬實力?「交流歷史項目是一個很好的方式」。某位技術團隊負責人表示:「我通常的面試時間是 40 分鐘到 1 個小時左右。從歷史項目的描述中,我能夠驗證他是否曾真正參與到該項目中,也能很快地瞭解到他以前在團隊中扮演的角色、作的事情,同時還能夠就該項目發散到其它技術細節。另外,這樣的描述也順帶考察了應聘者的表達能力和對技術細節的關注和處理能力。」

某公司 HR 表示:「HR 面試程序員的時間大概在 25 分鐘左右,來公司之後先作一套題,簡單粗暴有效。筆試題目除了考察基礎的技術功底以外,也會增長一些場景題,考察應聘者的應對能力。」

4面試高級崗位,還須要進行技術細節筆試嗎?

前幾日,一篇題爲《我是技術總監,你幹嗎問我技術細節?》的文章在技術圈火了,文章的起源是獵頭妻子向做者抱怨,「如今的客戶真難伺候,招的是 VP,問的全是與細節相關的問題,最終,候選人抱怨企業小瞧了他,企業則吐槽這哥們很水。」這一話題也引起了你們對於面試高級崗位是否還須要進行技術細節筆試的討論。

針對這一話題,咱們也諮詢了專業獵頭,他表示:「若是你在溝通中已經獲知了應聘者有很是好的編程底子,或者招聘的是高級技術總監這樣級別的崗位,通常是不須要進行現場編程或筆試題目考察的。咱們會經過他在行業中的影響力、以前的項目經歷、對於問題的解決思路和前瞻考慮等方面來考察面試者能力。」

上善伐謀,次善伐交,下善伐城。因爲國內不少科技公司尚處於發展階段,因此相似 CTO、技術 VP 等職位可能仍須要在前線「攻城略地」。可是不管是否要衝在一線,技術管理者的工做優先級,確定是要放在對前瞻技術的預判、對團隊的管理、與業務線的協做上。若是這些事情佔據他們絕大部分精力,他們是不會有時間去寫代碼的,不少大廠 CTO 也坦言」本身如今不寫代碼了「,固然這並不意味着他不會寫代碼。

此前咱們在採訪螞蟻金服 CTO 程立(魯肅)的時候他曾經表示:」雖然我不碰代碼了,但支付寶到底有多少個系統,當用戶第一次點擊這個系統會呈現什麼樣的狀態,整個過程我都很是清楚。因此若是支付寶出任何故障,我會第一時間知道哪裏可能會有問題,哪一個關鍵點會出問題。「

若是是你,工做十年以後再次求職,你還願意和剛畢業的求職者一塊兒,作一份動手編程題嗎?

相關文章
相關標籤/搜索