Quantcast
Channel: 工程師 – TechOrange
Viewing all articles
Browse latest Browse all 585

如何找到可靠的軟體工程師?三個標準篩選出蘋果、Google 等級的優秀 coder

$
0
0

【我們為什麼挑選這篇文章】專注於開發 App 與開發者工具等的 Oursky,創辦人 Ben 分享了他是如何挑選軟體工程師的訣竅。你如果是工程師,那你應該要好好看這篇文章,理解老闆到底要啥;如果你是雇主,則也應該好好看這篇文章,了解到到底要如何找出「最適合」的工程師。(責任編輯:陳君毅)

人們常說香港是一片科技荒漠。 頂尖的開發工程師都外流至矽谷,而香港則受困於人才流失。事實真是如此嗎?

我們團隊曾開發過榮登 App Store 內過百萬下載次數的精選項目,我們在努力研發我們的開源產品 Skygear,開發地正是這片「荒漠」。

比起薪水,或者是像 Google 那樣華麗的工作環境、灣區 Geek 的夢幻生活, 有沒有機會讓工程師發揮所長才是吸引人才的重點

這篇文章裡,我會以我的公司為例(三位共同創辦人均為技術背景出身),分享我們如何進行招聘並在九年間發展出駐點在香港及台北超過 50 人的開發團隊。

雇主對於軟體工程師首要發掘的特質

Photo by Faustin Tuyambaze via Unsplash

要招募一個優秀的軟體工程師意味著你先要清楚你正在找尋什麼。

你想找一個全端開發者? 還是一個前台 / 後台工程師?你是否需要一些特殊技能,比如要求他擁有 AI、blockchain 或 big data 相關知識?

請不要以專門技術來作為招聘的準則(除非你有特殊原因)。相反,請以基礎知識作為評定的標準

每年面試五百多位應徵者的累積經驗中,我的心得是:不要對人有任何的假設。我曾經面試過一位計算機科學碩士,他卻無法編寫一個簡單的迴圈(for-loop);或是小有名氣的軟體開發講者,卻無法解決實際應用上的問題。

所以招聘的第一誡是:(寧可)聘請具有基礎知識、富編程經驗、並願意恆常學習新程式語言與科技的人

當然,我們也為一些後來轉戰到蘋果或 Google 的同事感到驕傲。但回歸到問題的根本,我們最初是怎樣發掘出這些人才的呢?

我們的招聘過程

科技日新月異,我們的招聘過程只重點測試三件事情:

  • 他能寫出簡潔的編碼嗎?
  • 他對技術層面有穩固的基礎認識嗎?
  • 他能配合團隊開發、並運用解決問題的能力在 iOS、Android、網頁或任何指定平台之上嗎?

簡單初試

為了減省面試的工作量,我們先要確定應徵者具有基本編寫程式能力。我們也不希望因為冗長的招聘過程而與優秀工程師擦身而過,所以我們首先會進行快速的簡單初試。

技術問題

我們將技術問題分為四部份:

  • 演算法(Algorithm)及數據結構(data structures)
  • 網絡及網頁(Network and web)
  • 伺服器層面知識(Server side knowledge)
  • 應徵者背景相關的專長

我們主力開發的是手機及網頁應用程式,所以在演算法與數據結構方面, 我們其實不在意應徵者是否能做出最優化的演算。我們強調的是對常見數據結構背後概念的認識

我們避免發問教科書中的題目。我們期待的是應徵者對複雜性 (complexity) 有正確的理解

有關網路和網頁,我們會發問一些常見於 Frameworks 已經解決好的問題,這樣我們才能確定應徵者有正確理解 HTTP Protocol 和 DOM 結構工作這類東西。

至於伺服器層面我們會提問架構性有關架構或設計的問題來了解他富有多少經驗、是否能有效溝通技術性的設計。

最後,我們會根據應徵者的背景提問一至兩個專門語言或平台相關的問題。資歷相對較淺的應徵者如果表現出對應用科技(application technologies)略有不足也是可以接受的,但這些問題應足以反映他們上一份工作裡是否認真對待自己應用的技術,譬如我們期望一位具有三年經驗的 Javascript 開發工程師能在處理常見的連結問題(the binding problem)時游刃有餘。

如果應徵者在首三個範疇都有經驗,那他們應在第四個範疇裡展現出相關能力。即使某些範疇可能並非他們的專長,我們仍然希望他能表達其他優化應用的見解。例如,我們樂見一位後台工程師能展示一些前台知識,因為這些知識將有助他往後優化 API。

結對編程(Pair-programming)與作業(Take-home exercises)

我想這是產業滿常見的標準流程。在應徵者通過所有技術測驗的前提下,我們會觀察這位工程師如何實際跟一個團隊合作。他能跟其他隊員溝通良好、合作愉快嗎?他有優秀的解決問題能力嗎?

如果在辦公室安排結對編程有資源上的壓力,你可以提供一份作業給應徵者。嘗試制訂盡可能仔細的題目,並解釋你將如何評估這份作業。

以下是我們一般檢視作業時使用的標準:

  • UI 的準確度,尤其針對設計細節(適用於前端工程師)
  • 方便使用的互動元件的可能性(適用於前端工程師)
  • 易讀的編碼
  • 合邏輯和容易理解的 Git commit messages

為何能力出眾的工程師會捨棄蘋果或 Google 而選擇來跟我們共事?

實際上,最主要的原因是我們總部在香港和台灣,而很多來 Oursky 面試的工程師都希望留在家鄉;也有很多工程師更傾向於在小巧精緻的機構裡工作,建立具特色的產品。

當然,無可避免也會有些人決定尋找更大的舞台,我們同樣支持他們的選擇。Oursky 跟其他團隊成員一樣,一直希望對開源項目能作出更多貢獻。

透過強調綜合能力多於專門技術知識的招聘過程,我們發掘到很多具天賦的人才,這一切都歸功於面試時發問正確的問題。

我們從招聘中反覆試驗和練習,創造出鮮明的公司文化,得以留住很多本來可能出國發展、最後卻選擇留在香港或台灣的優秀工程師。

___

本文經投稿作者 Ben Oursky 創辦人 授權刊登,並同意 TechOrange 編寫導讀與修訂標題,原文標題為《僱主眼中最希望軟體工程師擁有什麼專長?答案是基本功》。意投稿者可寄至:edit@fusionmedium.com,經編輯檯審核並評估合宜性後再行刊登。圖片來源:wiredforlego, CC Licensed。)

延伸閱讀

Google 在台找工程師,薪資行情大公開:矽谷年薪 400 萬是台灣 2 倍!
只要台幣 6000 塊讓你一個月速成 ARKit 工程師! Udacity 攜手 Unity 打造全新 ARKit 開發課程
工程師專屬的女僕咖啡廳:如果有可愛女僕陪我一起學 coding,我一定會更認真的啊!


Viewing all articles
Browse latest Browse all 585

Trending Articles