Synology「白板考」解密:用一面白板,看清工程師的工作性格

為什麼 Synology 會這麼堅持白板考?白板考到底考驗面試者哪些技能?事前又有什麼方式可以準備呢? 因為一名優秀的軟體工程師,最重要的技能絕對不是程式能力本身,而是「定義問題」的能力。
評論
Photo Credit:Synology 提供
Photo Credit:Synology 提供
評論

本文為 Synology 群暉科技投稿,經 INSIDE 編審後刊載。

某個下午,面試者帶著忐忑的心情,走進位於遠東通訊園區的 Synology 群暉科技,經過基本的學經歷面談後,隨即會被帶進一間配備有白板的會議室。過一會兒,面試官走了進來:「我們現在就來寫點 code 吧!」

「我們要提供服務讓民眾確認自己跟 COVID-19 某一確診案例某天移動路徑是否有相遇。

given: 某一確診案例某一天的移動軌跡,最細到秒,但也不是每秒都有位置 (t1, x1, y1),(t2, x2, y2), …

input: 民眾同一天的移動軌跡,最細到秒,但也不是每秒都有位置。

相遇的定義: 民眾與確診者直線距離 < 30m,且確診者到過的地方 30 秒之內都算會高密度殘留病毒。

output: 測試的民眾是否有被感染風險,時間與地點為何?」

出現在白板上的,就是 Synology 大名鼎鼎、卻又被眾多面試者視為大魔王的「白板考」。群暉科技軟體開發部門經理許智程說明,除了數學題外,這幾年白板考也開始出現時事應用題,例如這題就是依據 COVID-19 的情境所設計,題型更加靈活。

在 Synology 目前全球近千名員工裡,軟體開發相關部門員工佔全公司三分之二,其中就有超過 300 名軟體工程師。自 2004 年以來,軟體工程師都得經過這樣的關卡,透過與考官一對一在白板上寫程式,來判斷面試者是否適合成為 Synology 的一員。

但為什麼 Synology 會這麼堅持白板考?白板考到底考驗面試者哪些技能?事前又有什麼方式可以準備呢?

因為一名優秀的軟體工程師,最重要的技能絕對不是程式能力本身,而是「定義問題」的能力。

擔任考官超過五年,群暉科技軟體開發部門經理簡寗晏表示,白板考的題目本身其實不會太困難,絕大部分會落在大學資工相關課程中基本題型的範疇,例如白板考就曾出過一道經典題型。

「小明爬階梯每一步可以跨一階或兩階。請幫我設計一支程式計算從平地爬上一個 N 階的階梯有幾種可能的步法。以三階的階梯為例,共有『 1 階 1 階 1 階;1 階 2 階; 2 階 1 階』三種步法。」

以爬階梯這題為例,題目敘述並不複雜,主要目的是藉此觀察面試者寫程式的習慣、程式的可讀性如何,以及有沒有做好例外狀況的處理等。例如,有些面試者選擇的做法在程式邏輯上是正確的,但在實務上卻會對系統資源造成浪費。可以說要得出解答並不難,但要寫出「有效率」的程式卻也不容易。

更重要的是,在這樣的過程中可以看出面試者邏輯思考的能力。「程式就是把你的想法表達出來的過程。」這考驗的是面試者是否具備比較好的資料結構跟演算法概念,以及如何在沒有工具的輔助下,在腦海中重新解構、組織自己的想法。

尋找解答的過程,遠比問題本身重要

軟體開發實務上來說,在開發越前期發現問題的成本越低,所以在開始解題之前是否能正確的定義問題,是軟體工程師很重要的特質,而白板考的核心價值正是在測試面試者是否具備這樣的特質。

「我們比較喜歡說這是一個『討論』的過程,而不是考試。」群暉科技軟體開發部門資深工程師陳揚昇說明,白板考的出題方向多半會是一個偏短、小型的題目,約在三十行程式內就可以結束,並不會是非常艱深、需要面試者寫到上百行程式的問題。

依據不同 RD 部門的需求,以及面試者自身的經歷,題型都會有不同的變化。比方說,剛畢業的新鮮人,題目會比較著重在資料結構跟演算法的設計,如果是有工作經驗的面試者,就可能會利用 side project 的主題下去延伸。但出題的共通點在於,一個題目絕對不會只有單一解,敘述不會太明確,一定會是可以延伸、循序漸進的問題,以便在後續討論過程中探索出「最佳解」,「題目本身其實不是那麼重要。」他說,因為尋找解答的過程,遠比問題本身重要。

溝通與討論的能力更是核心關鍵

群暉科技軟體部門主任開發研究員李可涵也進一步指出,解題時通常會遇到兩種類型的面試者,一種就是會先與考官討論題目的人,一種則是直接埋頭下去解題的人。以白板考這類題目通常不會講得鉅細靡遺的模式來看,能夠在一開始就提出疑問討論的人,會是設想比較周到的人,比較不會寫到一半才開始發現哪邊怪怪的。當然,如果問得很不著邊際那也可能是個扣分的機會。

群暉科技_白板考配圖一
▲通常會在一開始就提出疑問討論的人,會是設想比較周到的人。Photo Credit:Synology 提供

以 COVID-19 路徑偵測的這題為例,題目的敘述只有如此,但較靈敏的面試者馬上就會發現因為給的時間跟地點都不是連續的,「e.g.,12:00 在北車、13:00 在雙連站」,這中間的資訊是不足的,於是就會開始跟考官討論有這個限制,該怎麼處理,或是可以如何提出假設等。

在整個白板考的過程中,考官都會在旁給予適當提示,面試者的程式能力只是評斷的標準之一,白板考更重視的是雙方交流跟討論的過程。陳揚昇指出,過去 Synology 也曾經錄取過程式能力不是頂尖的人,他們並不一定能解出最佳的解答,但可以感受到他是能夠理解考官的詢問,並且在討論的過程中持續改進的,這會被 Synology 視為有潛力的人才。

簡寗晏也說明,由於白板題的問題都是口述的,考官可能有意無意會在表達上有些比較模糊的空間或是缺少細節。比如一些考題牽涉到數列,數列的邊界、是否連續、是否包含 0 、有沒有排序過,這些條件的定義很大程度會影響考題的複雜程度,如果一開始就先討論清楚問題會更有效率。此外,考官也會觀察面試者問的問題如何,合不合乎受過程式訓練的人應有的常識,而問問題不僅是個面試者跟考官交流或自我表現的機會,也能讓考官藉此評估面試者溝通討論的能力。

白板考模擬的是真實工作環境會遇到的問題

最重要的是, Synology 白板考模擬的其實是面試者未來工作實際會遇到的情境。比方說,在開發過程中,你能不能夠先定義、釐清問題並確認需求,一開始就掌握大方向;或是,你面對新的指示時會如何反應,以及你如何與他人互動溝通等。

目前溝通討論、合作能力幾乎已經成為 RD 的必備技能。「進入公司後你會有很多協同合作的機會,遇到問題你會需要跟 PM 溝通,需要跟同事一起作業,光以技術力單兵作戰的模式已經不常見。」群暉科技軟體部門資深開發研究員謝昀達認為。

甚至,有時候面對未知解時,是否有足夠的毅力與抗壓力尋找解答,畢竟之後工作上也可能會遇到不是那麼明確的需求,但當你遇到困難的、沒有正確答案的問題會如何解決,從這個過程中可以看出很多個人特質。簡寗晏認為,「簡單來說,我們看的就是一個『解決問題』的能力,我們認為合格的工程師就是可以解決問題的人。」

面試是一場雙向的「適性」測驗

「面試其實是一個雙向的過程。」白板考共分三到四關,每一關各自獨立,也都有各自獨立的考官,最後再經由共識決來決定面試者是否錄取。相對來說,面試者也可以透過這樣的過程更了解 Synology 的企業文化。

事實上, Synology 比較看重的會是面試者未來在團隊中所扮演的角色。在面試者進入白板考流程之前,以人資部門第一步審核履歷來看,除了面試者熟悉的程式語言、論文題目及所學與職務的關聯性外,面試者過去在團隊合作、在學校做專案的經驗會是加分條件。如果是有經驗的人,還會看他過去的領導經驗。

回歸到 Synology 規劃白板考的初衷,之所以不像許多科技公司選擇直接讓面試者上機考,或是透過書面測驗的方式事先篩選,是希望更全面的考量面試者與 Synology 的契合度,這是即便會花費更多時間、人力等成本, 20 年來也堅持要維持白板考模式的原因。

責任編輯:Chris
核稿編輯:Mia

延伸閱讀





精選熱門好工作

產品經理 (PM, PO)

VeryBuy非常勸敗
臺北市.台灣

獎勵 NT$15,000

資深UI / UX 設計師(中壢)

雷麒科技有限公司
桃園市.台灣

獎勵 NT$15,000

消費產業驅動事業群 公關顧問- 理級主管 / Manager

布爾喬亞公關顧問股份有限公司
臺北市.台灣

獎勵 NT$15,000