想成為專業開發者 如何用作品集打動雇主

當你開始思考自己的作品集該如何準備時,表示你可能已經跨過了程式新手村、嘗試了一關接一關的實作練習,往專業開發者邁進。

準備作品集的過程,等同於為自己做「職前訓練」。訓練越紮實,越能勝任接下來的工作,縮短撞牆期、增加成就感。對於應徵者而言,作品集是在雇主面前加分的好機會。若一個應徵者能夠拿出一個準備完善的作品集,並且在面試中流暢地介紹自己做過的專案以及回答面試官有興趣的技術細節,將有更多籌碼可以談到好待遇。

在接下來的內容中,我們將以「網站開發工程師」為例,分享好的開發者作品集的必備條件,並且從雇主的角度,說明如何將程式練習「作業」優化成符合業界水準的「作品」。



幾乎每個開發者都有自己的 GitHub 帳號,在裡面展示自己的作品以及參與開源專案的經驗。GitHub profile 等同是工程師的履歷。為了讓面試官對你的專案可以一目瞭然,請先做好以下準備:

  • 在每個專案的 repository 中,建立一個  README 檔案,詳述這個專案的目的、功能以及想要解決的問題。如果這個專案是一個應用程式,請說明安裝和使用方法
  • 確定你的原始碼是清楚好讀的,並且遵循固定的 coding style,例如,如果你是 Ruby/Ruby on Rails programmer 的話,可以參考這份 Juanita 翻譯的Ruby Style Guide 中文版
  • 變數、函式的命名要符合慣例,命名的意義要符合應用的場景,並且要輔以清楚的註解,幫助讀者瞭解各變數和函式的用意
  • 把同一個專案的原始碼分門別類,拆成不同資料夾,不要全部都擠在同一個資料夾

除了 GitHub,以上的原則也適用於其他類似的版本控制平台,例如 Bitbucket。

想瞭解更多讓你的 GitHub profile 加分的方式,請參考以下延伸閱讀:


另外,也有許多開發者會另外製作美觀的個人履歷網站。例如這位開發者 ,在個人網頁上清楚呈現自己的學經歷和做過的專案。


圖片來源:AndrewBorstein 作品集

但對雇主而言,相較於美觀的介面,他們更想從作品集中看見應徵者的程式能力、邏輯思維、與溝通技巧。因此,設計自己的履歷網站時,請務必讓雇主可以方便地看到作品的原始碼,並為程式碼加上清楚的註解,讓看的人能充分理解你程式碼背後的邏輯。

以 Andrew 的作品集為例,每一個專案方塊清楚地載明專案的目的,點擊方塊後即可看見該專案使用的語言和框架,並附上 GitHub 連結,讓訪客點擊就可以瀏覽原始碼(如下圖紅色方框標註),整個網站的動線對訪客相當友善。



圖片來源:AndrewBorstein 作品集

在一個優秀的作品集中,專案數量不在多,而在精。作品的原始碼要讓雇主能清楚看懂你的邏輯,例如註解要寫清楚、結構要有條理。如果為了衝專案數但卻寫一堆雜亂無章的程式碼,只會適得其反。



若想觀摩更多網路開發者的優秀作品集,可參考以下的延伸閱讀:


 

如何將「作業」變成成熟的「作品」?


過去在自學、進修的過程中,你或許已經累積了一些作業,用來練習你新學到的工具和語言。雖然這些作業可以納入你的作品集,但強烈建議回頭去修改、優化,把「作業」升級成「作品」。

作業畢竟是用來練習,和業界期待的標準還是有差異。簡單來說,你展現的「作品」原始碼必須要有一致的 coding style、有條理的結構、清晰的註解以及命名邏輯,才能讓雇主相信你能寫出符合業界水準的 code。

 

作品優化三步驟

1. 打開各專案的原始碼,複習每個功能是如何被建立的
2. 針對原始碼以及效能做優化

  • 統一整個專案的 coding style
  • 注意各參數與 methods 的命名是否合乎慣例
  • 將註解寫清楚
  • 優化網站效能


3. 增加新功能,讓作品更加完整

  • 例如你架設了一個相簿網站,可以試著增加點讚、追蹤、評論等功能,讓這個作品的完成度更高


挑戰新專案 讓作品更豐富


若想在作品集中多下點功夫、更加脫穎而出,建議可以挑戰更多沒做過的網站 App,增加作品集豐富度。

例如,你可以做一個串接金流和購物車的簡易電商網站、類似臉書 Messenger 的通訊 App、虛擬貨幣看盤網站、類似 Trello 的便利貼小工具等。更多有趣的作品集題材,請參考以下延伸閱讀。

延伸閱讀:

挑戰新專案的過程和工程師的日常工作很類似,會常常遇到沒碰過的技術和功能,得要靠自己主動尋找答案。因此,當你能獨立完成新專案,不只得到成就感,而是可以向雇主證明,你擁有創造力、自我學習能力以及解決問題的能力,這些都是優秀工程師的必備特質。

 

在面試中展現自己的作品

面試時,若遇到技術經驗深厚的面試官,通常會深入問專案的 coding 細節。準備面試時,記得要複習自己作品的 coding  細節,例如為什麼這裡會用 while loop?為什麼會這樣設計資料庫的 table?為什麼會選這個 library?為什麼要串這個 API?如果用到 3rd party gem 也要瞭解實作底層的原理。如果只是會用,卻不懂原理,很容易被問倒。

想獲得好 offer,你需要一份亮眼的履歷表、作品集、在面試時展現熱忱與專業能力,這三者缺一不可。想知道更多履歷和自傳撰寫技巧,請參考:非本科系轉職者 如何打造一份「正中紅心」的工程師履歷