軟體工程師 職涯規劃步驟分享

Deon
7 min readSep 21, 2019

--

背景:

最近一年跟很多朋友聊過軟體工程師的職涯規劃, 不管是想轉職進來的或是已經在業內想提升自己的. 發現很多人沒有職涯規劃相關的思維, 且他們比較多聽到的建議是反正先待個3年再説.
但基於教育思維的原則, 我們先假設有比”先蹲三年”更好的答案, 然後不斷琢磨這答案, 目前工作三年了受惠於此思維與實踐甚多,所以打算分享自己職涯規劃的心得.

簡短版

Agenda
A0-理解自己, 做出選擇
Goal: 理解自己從何來將去何處, 做出不會後悔的人生選擇
(人生規劃, 職涯規劃)

A1-[收集資料] 市場分析
Goal: 搜集資訊

A2-[診斷,系統化] 思考與判斷, 制定技能樹
Goal: 系統化整理資訊, 建立技能樹, 路徑

A3-[規劃] 制定職場,面試戰術
Goal: 制定此次職涯規劃的目標

A4-[量身評估] 制定 單月計畫
Goal: 短時程 迭代目標

A5-[執行與反饋] 執行月計畫, 反省, 調整
Goal: 反饋 調整迭代目標, 階段性目標

詳細版

0-理解自己, 做出選擇
Goal: 理解自己從何來將去何處, 做出不會後悔的人生選擇

解釋:
假設工時8小時的話, 平日一天就有一半的時間在工作上, 約等於接下來一半的人生會在工作上, 所以如果對這份職業,工作毫無熱情, 只是單純的來把時間換成金錢的話很可惜. 能理解自己願意投入人生在哪些人事物上是蠻重要的第零步.

1-[收集資料] 市場分析

Goal: 搜集資訊
Step0-查看工程師Title分類,理解工作內容, 期望, 需求
Step1-查看國外職缺內容 x50 (Ex: Glassdoor, LinkedIn, Indeed)(Job description, skills, experience)
Step2-查看國內職缺內容 x50 (Ex:104, Cake Resume, Yourator)
Step3-查看別人面試心得 x20
Step4-查看面試官面試心得 x20
Step5-查看別人LinkedIn x50
Step6-查看別人Resume x20
Step7-找業內人吃飯, 諮詢真實職業現況規格與未來

解釋:
第一階段最需要的就是情報, 重點在於搜集可靠真實的資料來理解常見職缺的規格, 例如一個後端工程師該會什麼?, 一個資深後端工程師會被期望有什麼樣的能力與經驗.

沒有情報幾乎無法做任何決策, 最常犯的錯就是沒有情報卻隨意根據感覺做第三步驟時的決策. (例如我先做前端工程師好了, 後端看起來很複雜. 我先做美式料理廚師好了, 法式料理看起來很難…)
美國與中國的軟體產業較為發達, 先搜尋這些地方的情報比較容易找到合理且嚴謹的JD 而非台灣常見的全能工程師要求, 較不容易被誤導.

這邊提醒特別有趣的一點, :Ex: 在查看backend engineer的JD,技能點時, 剛開始看glassdoor上的技能規格, 會看到不少沒看過的專業名詞, 但看到第十份JD時會開始發現名詞大量重複, 最後看完30份後, 能整理出80% backend 常見重要的技能, 與20%少見冷門或進階的技能. 這份市場調查的視野,思維與實際情報非常重要.

舉個例子來講, 下面是兩個不同公司的Linkedin data engineer job description.(旋轉,IBM)如果有你不認識的專有名詞就去查這component的用途, 技術等等, 然後觀察他們有何相似的, 一直調查市面上的Job description直到你對這engineer的工作的內容有一定了解.

2-[診斷,系統化] 思考與判斷, 制定技能樹

Goal: 系統化整理資訊, 建立目標樹, 路徑
Step0-畫出初版技能樹 (項目, 目標, 內容)
Step1-查看別人的心得與樹
Step2-畫出第二版技能樹…

解釋:
第一階段搜集全是別人提供的情報, 這階段要做的就是系統性的整理成自己的戰術資料.
這裡有我的技能樹範例https://medium.com/@yjhyjhyjh0/%E6%8A%80%E8%83%BD%E6%A8%B9-fc529dd6bf6
這整理資訊的目的是為下個步驟的決策, 例如技能樹有60個技能點, 人的時間有限, 無法在1年內處理完, 所以必須取捨, 有了工程師技能規格, 面試規格, 自己的目標等. 方能更有效專業的制定適合自己的職涯成長計畫.

3-[規劃] 制定職場,面試戰術

Goal: 制定此次職涯規劃的目標
Step1-查看別人的面試心得與面試規格x50
Step2-畫出面試戰略
Step3-寫出給自己的Job description 規格

解釋:
有了嚴謹的戰術資料與自己訂下的職涯目標後, 可以開始診斷何種成長計畫適合自己.

這時我們需要更詳細技術面試規格, (例如測驗項目是Multithreading, 那會如何測試, 用技術問答的話會問哪些常見的問題?),查閱多份實際上發生的面試,(面試者用什麼方式測試這項目,受試者用什麼方式表現這項目).我們能整理出詳細面試規格(難度,測驗方式,題型,best practice等).
搭配上步驟1,2的成果.我們能在親身站在面試場前就有一定的判斷力.(目前的自己這candidate的能力是否符合規格,能爭取到offer)

例如履歷上如果有寫NoSQL的HBase, 面試官決定問問HBase程度, 測驗方式是口頭技術問答, 那HBase top interview questions 可以略之一二, 例如rowkey 怎麼設計, HotSpot怎麼解決都是非常常見的提問, 不知道對方會問這兩個問題的話, 基本上就是candidate沒做好準備ˊˇˋ.

4-[量身評估] 制定 單月計畫

Goal: 短時程, 迭代目標
Step1-制定短期目標與細節項目 (Ex:這個月要完成三件事)

解釋:
例如六個月內要換工作, 目前找工作戰術是side project+framework, 並決策要學習Spring framework +side project demonstration. 搭配技能樹決定教材
第一個月->spring in action
第二個月->spring side project + spring 揭秘
第三個月->詢問別人feedback+side project enhanced

我想以上範例已經展示了,有正確的市場資料+正確的決策+持續feedback改進,長期下來影響很大. 反例就是常常說要換工作, 但半年過去仍然沒有任何規劃. (不過方法很多種, 此方法只是其中一種”戰術性擊倒”)

5-[執行與反饋] 執行月年計畫, 反省, 調整

Goal: 反饋, 調整目標, 迭代完成階段性目標
Step1-有效執行計畫
Step2-結束時進行反省會
Step3-調整後, 制定下月計畫

解釋:
半年過去了,半年前的規劃有多少實現,沒實現的為什麼?有什麼方法可改進?一年過去了,一年前的規劃有多少實現,沒實現的為什麼?有什麼方法可改進?

(培養執涯規劃思維與能力的推薦書籍)

1-程序員修煉之道︰從小工到專家
2-軟技能
3-Effective engineer
4-學徒模式
5-The Complete Software Developer’s Career Guide

--

--