解題能力

正在辦理M社退役下台一鞠躬的同時,也正好是本屆實習同學工作告一段落的時候。跟很多未來的職場新鮮人聊天,總有個共同話題是: 你們這些高科技公司到底要甚麼樣的人才? 研發工程師要甚麼東西,才能進入這個人人稱羨的行業? 是C++、JavaScript、Java? 是 front end 還是 back end? 就像考前猜題,有個方向我才好準備阿。

我必須老實說,雖然在這一行打滾很久,沒甚麼自信能給出標準答案,也不知道有沒有標準答案。談技術,我懂的現在工程師都不談 (你聽過 OOP嗎?) 。談資質,我也不能說我招來的人各個都是明星球員。技術日換星移,人才來來去去,不變的東西真沒幾樣。不過,仔細回想,的確還是有一樣能力,M 社自始至終都算是很重視: 就是 problem solving skill。

解題能力這個詞很抽象,各行各業的定義我想也不同。既然我又不寫教科書,這裡並不打算深入研究。這次我想提一個還蠻特殊的例子,來說明 M 社的角度。話說回來,還是要聲明,我在M社也只看到這一例;但是因為太具指標性,所以值得說一說。 幾年前,我在Redmond 總部剛好有個機會參與一個實習空缺的 recruiting,是個 PM intern 缺,所以照例不限背景。他們的面試方式也很妙,就叫 candidates 直接參與一個功能工程小組 (feature crew, 由 1 PM + 1 SDE + 1 SDET 組成) 的 code review 和 debug 討論,看看他們能提出什麼高見。

我看了兩個人,前一個是科班出身,也看得出來是老手 (雖然還是學生)。Debug 的重點一下就點出不是 boundary condition 就是 exception handling 可能有問題,直接就在電腦上設 break point,兩三下就 trace 出來,沒甚麼意外。第二位就好玩了,那個男生的背景是音樂理論作曲,只會寫 BASIC (是誰做 filtering 的阿?) ,debug 的對象是 C++,他雖然看得懂大致結構,可是看不懂語法細節。

我印象非常深刻,他一邊在牆上畫圈圈 ,代表一個迴路的完成,一邊問 SDE 邊界條件到的達了沒。就這樣把整個白板畫滿了圈圈,而在最後一個圈圈的時候,只畫了二分之一,他就對主考官說,這裡的條件不對。真不愧是藝術家,把整個過程搞得像表演一樣。

大家猜猜最後 M 社 hire 了哪一個? 為什麼?

results matching ""

    No results matching ""