【程式設計師】揀好Programmer切忌只靠CV 比CV更重要的六大要點

撰文:撐場來稿
出版:更新:

【文章原刊於01撐場,歡迎下載香港01 app,與星級作者一同討論喜愛話題。】

撰文:Tecky Academy

有一個大部分僱主都面對的難題,在芸芸履歷之中,如何萬中挑一,找到好Programmer呢?聘請程式設計師很難,不像其他行業,打開履歷就一目了然。有時履歷上滿滿証書的,其實連FizzBuzz也寫不了;有時看起來像個Fresh Graduate的,卻又有無限潛力。 如果你是一個要聘請程式設計師的僱主,你應該如何是好呢?

比起CV,性格和潛力對於程式設計師更為重要(gettyimage/視覺中國)

《好程式設計師的特質》

要理解此困境,首先要解答一個更困難的問題:就是好程式設計師有何特質?以筆者個人聘請經驗,加上與其他同行交流所得,歸結出以下六點,有些是性格特質,有些是行為表現,現列舉如下:

1.思維清晰有條理

程式設計是一個將想法化為代碼的過程,要不想一忘二,一個好的程式設計師必然思維慎密,思維有清晰條理。優秀程式設計師可以理解複雜問題,並得出合乎邏輯的結論。思維清晰一事上,不限於程式設計,好程式設計師在其他事情,也擅於運用同樣的邏輯思維去解決問題。所以,如果你有一個面試者在程式設計上看來不錯,但是生活上其他方面好像迷迷糊糊一樣,就要小心一點。也許他真是一個還好的程式設計師,但不會是優秀的一員。

分辨此項特質的面試問題:可以解釋一下井字過三關規則是怎樣嗎?一個HTTP請求由瀏覽器到伺服器中間過程是怎樣的?

觀察點:是否能夠清晰解說每一條規則、每一個步驟。

好的程式設計師需要思維清晰有條理(gettyimage/視覺中國)

2.有強烈好奇心

科技日新月異,資訊科技變化的速度更快得驚人,優秀程式設計師通常有着強烈的好奇心,不會抗拒學習新事物。在程式設計這門學問上,每年每月每星期都有新的框架、新的程式庫、新的想法誕生。不熱愛學習,欠缺好奇心的人,會覺得很難適應。因為剛剛習慣的做法,可能又有其他新的可能性。好程式設計師通常會定時學習新知識,更新自己的理解,亦會希望以新學成的東西應用在新專案之上。不會因為過去一直的做法,而毫無理由的選擇因循守舊。

分辨此項特質的面試問題:你有學過(新科技A)嗎?你對(新科技A)有何看法? 下一個專案你會運用(新科技A)嗎?原因為何?

觀察點:有否學習新科技及思考過其優劣之處。

3.性格不固執

普遍程式設計師都對軟件工具有自己見解及喜好,但優秀的不會固執於自己喜好的程式語言、框架、程式庫。如上一點所言,好程式設計師經常有學習新事物的渴望,如果他看到有合理原因要使用其他工具,不會因為個人喜好,而堅持己見,也就是使用適當工具,解決適當事情(Use the right tools for the right thing)。於他而言,使用其他工具亦是一個學習的過程,不會因此而覺得自尊受損。不固執的性格亦令好程式設計師可以與他人磋商最佳解決方案。

分辨此特質的面試問題:可以解釋一下(一種新科技)與(對立的新科技B)有何異同?你會在哪個情況使用各自工具呢?

觀察點:有否對科技有强烈的喜好及見解。

對工具不固執,會變通是程式設計師需要的特質(gettyimage/視覺中國)

4.習慣三思而後行

優秀程式設計師由於思維比較慎密的原因,所以行事通常都會三思而後行。而解決問題最痛苦的莫過於花了很多時間,卻發現徒勞無功。因此好程式設計師明白Solve the right problem,比Solve the problem right更重要。因而會花一定時間在詳細計劃之上,待理解整個問題後,才開始着手解決。

分辨此特質的面試問題:請分享一個開發新專案的故事。

觀察點:是否習慣做事有計劃,及是否會跟隨自己制定的計劃。

5.熱愛編程

這一點大概是最重要的一點,好程式設計師一定會熱愛編程。正是由於熱愛,才會孜孜不倦改善自己。也正是由於熱愛編程,才有足夠熱情一直進步。熱愛編程令程式設計師在工餘時間或學習之外,會再花時間學習新科技,這些額外努力正是令好程式設計師更加優秀的原因。如果面試者是一個朝九晚六式程式設計師(9-6 programmers),也就是工作時間以外完全不碰編程,基本上不可能是一個優秀程式設計師。

分辨此特質的面試問題: 你工餘時間外有其他專案正進行中嗎?最近有學習其他框架/程式庫?

觀察點: 是否熱愛編程本身。

熱愛編程是最基本的因素(gettyimage/視覺中國)

6.溝通能力強

有一個常見的誤解,就是程式設計師都是不善辭令。然而優秀程式設計師通常是溝通能力很強,因為大部份程式設計是都需要多人合作,只能一個人工作的程式設計師,不論寫的代碼多好,都不及善於與他人合作的程式設計師。好的程式設計師能夠清晰解釋事情,並能協助他人解決問題。因為程式設計不只與懂編程的 人溝涌,亦要與許多如專案管理(Project Management)、質素鑑定(Quality Assurance)等部門的同事合作。

分辨此特質的面試問題:請分享一個與非技術的同事合作的故事。

觀察點:是否有良好溝通能力。

《如何使用本文所談的技巧》

以上是一些在優秀程式設計師身上常見的特質,要如何使用本文所談的技巧,取決於你:

如果你正在聘請程式設計師,又不知如何入手,以上一些技巧應該能夠幫助你;

如果你本身是初出茅蘆的程式設計師,可以對照自己,看看如何繼續努力下去;

如果你想學習編程,但不知自己是否適合,可以看看自己是否適合寫程式一行啊!

【編按:文章題目為編輯所擬,原題為「【請人必睇】好Programmer是怎樣煉成的?」​】

(文章純屬作者意見,不代表香港01立場。)

立即下載《香港01》,緊貼公務員職位空缺、勞工處筍工推介,了解CV、面試致勝技巧!
下載網址:https://hk01.app.link/bkbJyY5t4O