Jalex Chang
2024.11.13
軟體業求生指南
職場新鮮人的生存之道
Agenda
-
職場新鮮人的面試指南
-
Junior 的技能學習之路
-
職場的溝通秘訣
-
Q&A
Experience
-
Staff Software Engineer @ Crescendo Lab 2021 - Present
-
Junior-Staff Software Engineer @ Umbo CV 2018 - 2021
-
Software Intern @ CacaFly 2015 - 2018
Community
-
工程組導師 @ 第六屆曼陀號領航計劃 2024
-
講者 @ 台灣技術社群 (Golang/COSCUP) 2018 - Present
Education
-
Ph.D. Candidate in CS @
NYCUNCTU 2013 - 2018 -
Bachelor in CS @
NYCUNCTU 2010 - 2013
我是誰 - Jalex Chang
職場新鮮人的面試指南
面試官觀點
觀念建立 - General
-
求職不是技能買賣,是尋找長期合作的夥伴。
-
公司觀點:因為雇用錯人的成本很高,所以要最大限度地淘汰可能不適任的人。
-
求職者觀點:找到兼具自我成長與公司獲益的機會。
-
-
面試是絕對主觀,表現再好都有可能被拒絕。
觀念建立 - New Grad
-
新鮮人非常非常難找工作
- 學生時期的經歷很難證明你的專業與影響力
- 目標:證明 學習力與熱誠 > 專業能力
著重在研究計畫、企業實習、比賽、社群參與的過程與學習,而不是成果。
-
學歷是你的敲門磚,但不會決定勝負
- (O) 履歷篩選脫穎而出、增加面試的容錯
- (X) 得到 Offer => 取決於面試現場的表現
- 有相關實習經驗,先贏一半。
- 學歷與學生時期的經歷只能陪你走到第一、二份工作
- 職涯是故事接龍。起點的後旅程就是職場經驗的事了 ☕️☕️☕️
面試官視角看面試 - New Grad
-
時間寶貴:面試很累,也很匆忙,面試官只想知道他有興趣的。
-
投資心態:賭面試者的成長潛力 (高度&速度)
-
格外沒耐心:面試者差異性低、數量多
動機
(Motivation)
文化
(Culture Fit)
能力
(Competence)
Ref: 「到底該不該留下他?」淺談人才價值金字塔
面試者會什麼對我們有興趣?他有沒有做過研究?
面試者的行為特質是否符合公司的價值觀?能否順利融入團隊?
面試者怎麼學習新的事物?需要多久的時間?合不合理?
履歷撰寫 - General
-
履歷是減法原則-只寫職缺相關、重要、自信的事物上去
-
相關:人只看得懂自己會的東西,其他都是雜訊。
-
重要:反應面試者自我認知、優先排序、說故事的能力。
-
自信:那些你花過心力實踐、走過痛過,不會畏懼質疑的事情。
-
-
履歷講求專業感
-
條理分明、結構工整,看起來舒服。
-
-
履歷內容
-
Summary: 條列式摘要至今的職涯
-
Experience: 先陳述概觀 (Role & Responsibility),再到細節 (重要成就)。
-
Skill:好好分類,只列相關且有自信的技能。
-
Others:寫上真的會加分的項目 (社群經驗、開源專案、學歷)。
-
專業的履歷 be like:
著重在工作經驗
先講成果,再講做了什麼
履歷撰寫 - New Grad
放寬心
找個常見的範本
一頁,能放就放
保持簡單順眼
先用學歷背書,再談經驗
直接講做過及學過什麼
Technical Interview
Coding test aka LeetCode aka 刷題地獄
aka 錢進大型軟體企業的必經之路
Technical Interview - New Grad 很不一樣
對於 Junior/Senior,面試官想確認的是日常工作時的模樣 => 互動的過程
- 確認目的與目標 (Definition of Done)
- 確認限制條件 (Constraints)
- 確認驗收標準與測試方法 (Acceptance Criteria)
- 討論初步構想,尋求回饋。
- 寫下 Pseudo Code 或流程圖,驗證可以滿足 1-3。
- [Optional] 實作 5 的細節,再驗證一次 1-3。(多數面試者關注的步驟)
- 交流,延伸題目,進行下一輪的 1-6。
- 覆盤,尋求改進的建議。
- 總結 (what have done & what action items would be)
對於 New Grad,沒這麼複雜,解出來就對了 => 刷題是學習力的展現
一般來說,半年可以刷 500 - 1000 題,一定解得出來。當考研究所一樣準備。
Behavioral Interview - Tell me about yourself 🤔
自我介紹是每一關面試的開場,這 3-5 分鐘會直接確立你在面試官心中的第一印象
-
面試者給我的感覺,是否與履歷呈現的一致?
-
面試者給我的感覺,是否與相同職位的同事相似?
一個好的自我介紹需要回答:
-
我是誰? => 職涯、能力、特質的概貌
-
價值與影響力 => 當前的 R&R 與重要成就
-
為什麼在這裡? => 職涯規劃與應徵公司或職缺間的關聯
[建議] 設計 1, 3, 10 分鐘的通用範本,再依據情境調整
-
公司的文化與規模
-
面試官的職位角色
Behavioral Interview - 自介範例
你好,我是 Jalex Chang,很高興能得到這次面試的機會。
我目前擁有3年以上的後端開發經驗,最熟悉的開發模式是 Golang + 敏捷式開發。除了後端開發外,我也擁有2年以上基於AWS的軟體架構設計經驗,走過在 AWS 上完整的產品開發週期,包括網路與基礎設施建置、應用程式開發、服務部署、後續迭代與維運等。除了日常工作外,我喜歡參與社群,與他人分享自己的所學,是 COSCUP 與 Golang Taiwan 的活躍講者,每年至少會公開演講一次以上。
我目前任職於 Umbo CV,擔任 staff software engineer。我的職責除了 Mentorship 外,便是協助兩個工程團隊能夠更有效率地使用 AWS 的資源,以提升產品毛利。我在這段工作經驗中最大的里程碑是制定各種優化計畫,在不影響產品體驗前提下,帶領團隊在六個月內將 AWS 的系統成本降低 54 %,協助公司撐過財務危機。
我對職涯規劃的下一步是加入一間持續快速成長的公司。我相信那些在工程上真正困難的挑戰,在公司成長的過程中只會出現一次。相較於在大公司裡事後學習這些問題如何被解決,我更希望能參與其中,見證它們的發生與被解決。我非常希望能在職涯前期就得到這些寶貴的經驗,而這也是為什麼想加入 {公司} 的原因。貴公司的 {產品} 在過去四年內業務成長超過 30 倍,在 {產業} 上具有指標地位,但也因此面臨了系統跟不上業務成長,未來擴張計劃窒礙難行的困境。現在的 {公司} 便是我正在尋找的舞台,希望能發揮我在工程領域的專長,協助團隊突破限制,一起走到下個里程碑。
Behavioral Interview - 不只回答,還要提問
公司面試你,你也在面試公司。絕對不要沒有事前研究就去面試。
公司與文化
-
公司如何幫助新進員工融入團隊並適應工作環境?
-
是否有針對新人的培訓計劃?培訓通常包括哪些內容?
-
團隊文化如何?怎麼面對犯錯與衝突?
職位期待
-
這個職位對新鮮人來說,最重要的學習曲線是什麼?
-
對於新鮮人的工作表現有什麼期望?預期多久時間內要能完全上手?
成長機會
-
團隊怎麼評估成員成長狀況?怎麼維持 Motivation?
-
如果我想要拓展更多技能,是否提供內部輪調或其他成長機會?
職場新鮮人的面試指南 - 小結
心態與事前準備
- 社會新鮮人的面試難度是高的
- 目標是證明學習力與熱誠,而不是專業能力。
- 學歷能幫你拿到面試機會,但無法幫你拿到 Offer
- 有相關的實習經驗,先贏一半。
面試
- 履歷簡單順眼即可
- 自我介紹非常重要,好好準備。
- 面試過程講重點。面試官很忙,對新鮮人格外沒耐心。
- Technical Interview 真的要解出來。
- 事前對公司與職位研究,好好問問題。
Junior 的技能學習之路
Senior IC 觀點
Don’t fall into the trap of thinking that it is your employer’s job to train you. This is your career—you have to take responsibility for it. It is your job to learn. It is your job to figure out what you should be learning.
- Chapter 14. Teamwork, Clean Craftsmanship: Disciplines, Standards, and Ethics (匠藝整潔之道), Robert C.
出了社會後什麼都有,就是沒有時間。
觀念建立 - 職涯成長是自己的責任
學得深?學得廣?
核心概念:沒有無用的技能,只有理解不夠透徹與時機未到。
日常工作導向的技術培養:
- 不用規劃直接學,完成任務最重要。
市場導向的技術培養 (短中期):
- 維持競爭力、增加面試成功率 => 市場需要 (熱門) 什麼就學什麼 。
職涯導向的技術培養 (中長期):
- 以終為始:先規劃再行動,主題式學習。
深
廣
工作日常導向
市場導向
職涯導向
工作日常導向
職涯導向的學習框架
如果想讓技能學習與職涯發展有效搭配,我會這麼做:
- 願景:收集情報 (文章、JD),梳理出自己 N 年後想成為的模樣。
- 終點:釐清需要哪些技能/成就/經驗,才能支撐目標的模樣?
- 起點:現在的我具備什麼技能?擁有哪些資源?
- 過程:將起終點差距拆分,以季為單位,設計學習路徑。
- 驗證:每季驗證、回顧、慶祝自己的成長。
框架核心
- 以終為始:先專注在未來,再反推回現狀。
- 想好故事再執行: 確保無論如何都有收穫 (達成目標 or 驗證不適合)
- 回饋循環:每一季都能檢視自己的成長,適時調整,維持動能。
範例 - 願景:我要成為在國外工作的 Senior Web Developer!
終點:在三年內用英文流暢溝通且具備 Senior 等級的網頁開發能力
- 用英文溝通工作上的大小事
- 能根據產品需求,獨立開發網頁產品
- 在作品集加入四項網頁產品開發專案經驗
起點:目前是任職本土公司的 Junior Web Developer
- 只有一年工作經驗,需要 Senior 引導才能作業
- 英文讀寫沒問題,但聽說沒有機會練習
範例 - 願景:我要成為在國外工作的 Senior Web Developer!
終點:在三年內用英文流暢溝通且具備 Senior 等級的網頁開發能力
起點:目前是任職本土公司的 Junior Web Developer
Y1Q1: Web Developer Roadmap
- 針對研究 Roadmap 裡的 4 個主題,並整理出各主題中常見的議題與解決方案
- 檢閱公司內相關的產品與系統議題,並在公司內部分享 6 個解決方案
- 說服團隊執行 2 個解決方案
Y1Q2: 外商面試經驗
- 針對 15 間外商進行面試研究
- 投遞履歷並走過 8 間全英文的面試流程
Y1Q3: ......
Y1Q4: ......
Note
- 量化成果以驗證學習狀況
- 用數量指標取代二元指標 (有 or 沒有)
常用的量化指標
工作落地型
- 針對 XXX 議題,整理 N 個公司遇到的痛點
- 針對 N 個公司遇到的痛點,提出解決方案並分享
- 說服團隊與主管執行 N 個 XXX 相關的[優化|維護|開發]專案
- 執行 XXX 相關優化,並得到 N 個同事的正面回饋
個人專案型
- 閱讀 N 個 XXX 議題的相關文章
- 找出 N 個 XXX 與其替代選擇間的差異
- 重現 N 個研究/文章中分享的解決方案
- 交付 N 個 XXX 議題的文章或社群演講
技能培養經驗談
採用學習框架的目的是保持方向與維持動能
- 一到三年是理想的長度 => 適度的想像空間又不會太過遙遠
- 以季度為單位規劃 => 保留容錯與喘息的空間
計畫不是用來達成的,是用來被打破的
- 執行, 回饋, 調整/廢棄,不斷循環。
- 沒有無用的技術,也沒有白走的路
學習計劃本身就有價值
- 競爭優勢:對主管而言,幫助你的 ROI 很高,也可以達到雙贏 (公司與自身職涯)
- 作品集 (Portfolio):替現在的努力與付出留下痕跡,是送給未來自己的禮物
Portfolio - 送給未來自己的禮物
為了驗證自己學習 AWS (雲端運算技術與應用) 狀況:
- 花一季看了 52 部相關的技術分享並筆記 (notion)
- 主動幫公司的系統健檢,並提出 8 個改善方案內部分享
- 在下一季執行了 5 個改善方案
此後,每次面試到主管/CTO時我都會拿出當時的筆記 kill the game.
Junior 的技能學習之路 - 小結
心態
-
職涯成長是自己的責任
-
出了社會後,時間非常寶貴。
-
沒有無用的技能,只有理解不夠透徹與時機未到。
-
職涯想走得長遠,需要先規劃再執行。
學習計劃
- 先確立終點,再回到起點規劃。
- 學習計劃是為了維持方向與動能,不是逼死你自己。
- 讓學習成果在職場內或外落地,任何留下的痕跡都是你未來的禮物。
職場的溝通秘訣
主管/同事觀點
-
公司是由人所組成。有人的地方就會有江湖。
-
任何產品/技術/流程問題,最後都是在處理人的問題。
-
就算是工程師,也躲不過"與人溝通"這個難關。
在職場上要成為令人又愛又恨的聰明混蛋 (Brilliant Jerk) 很容易
但想受他人信賴與尊重,優先得到成長機會,有些課題我們可以練習.....
觀念建立 - 所有的問題,都是人的問題
第一課-不要成為邏輯惡霸
「你只是用理性論點壓垮我,我雖然不贊同,但是無法反駁。」
我以為勝利的關鍵是帶著無懈可擊的邏輯和精準的數據,全副武裝上場。我精準聚焦在說服他們接受我的觀點,重新思考他們的觀點,卻經常落得讓對疏離我的下場。我並未獲勝。
- Chapter 5, Think Again: The Power of Knowing What You Don't Know (逆思維), A. Grant.
商學院/理工學院出身的我們,是容易成為惡霸的一群人
- 特質:邏輯清晰、數據驅動、持續學習
- 擔任解決問題的人:比多數人理解事物全貌與細節
邏輯惡霸不會成為值得信賴的工作夥伴,因為人都有情緒,會心累💔
- 沒有人喜歡在職場上被洗臉或潑冷水
- 沒有人喜歡戰戰競競地說話,深怕一不小心就得開始辯論
用對話取代批判
當聽到一個不太可行的提案時,我會試著:
-
先壓抑批判的衝動,透過覆述與摘要,釐清對方用意
「你想表達的是.....,用 {提案} 解決 {問題},這樣嗎?」
-
用好奇心延續話題,得到更多資訊
「沒有想過 {問題} 可以這樣處理,好奇你是怎麼注意到的?可不可以多說一點?」
-
保持著完善提案的心情,討論各種情境
「我們來試試看沙盤推演,如果在 {情境} 下,會發生什麼事?」
-
讓對方全身而退,帶著新的觀點與資訊重新思考
第二課-給予他人有建設性的回饋
人們通常不善於給予與接收意見回饋
給予者
- 習慣以自己的利益/觀點出發
- 以為做對的事不需要顧及他人感受
- 熱衷於點出問題
接收者
- 把“想法被否定“連結到”個人被否定“
人們習慣把抱怨包裝成回饋,抱怨對解決問題/幫助對方成長毫無幫助
- 覺得你在工作上很被動,對技術/產品也沒有什麼熱情,希望能夠改進。
- 覺得你的程式碼品質不夠好,可讀性很低,需要再加強。
- XXX 會議每次都開很久,根本浪費時間。
- YYY 團隊交付速度超慢,態度也很差。
Netflix 4A Feedback Guidelines
4A Feedback 範例-會議冗長
Giver:
「嗨, 我注意到 XXX 會議很容易超時,議題也常常發散到收不回來。我在想,也許我們可以在會議前幾天先公告議程,並鼓勵大家會前閱讀並留言提問。這樣不僅參與者可以提前消化資訊,提案人也可以針對提問事前準備回應。你覺得呢?」
Receiver (會議主持人):
「我覺得提前公告議程並進行會前的線下討論,這個想法很好。但在執行面上,我會擔心參與者及提案人沒有額外的時間提前消化資訊。」
Receiver (會議主持人):
「但我們可以先驗證概念:前一天公告議程+會議的前十分鐘提供閱讀與留言提問時間。這樣可以在開始討論前,確保大家有足夠的認知,不需要重複解釋。你覺得這可行嗎?」
Giver:
「超棒的👍 在這件事上,有什麼是我可以幫得上忙的嗎?」
第三課-擁抱合夥人心態
人們常抱持著主事者心態 (aka 交給大人處理)
- 在反應需求與期待後,預期主管會有所行動。
- 覺得主管手握資源與權威,一定可以幫助我。
事實上
- 主管的注意力嚴重發散,無效回饋的優先度很低。
- 公司大小事都是資源(人力、時間、金錢)分配的一環,是零和遊戲。你的主管也有主管。
想在職場上優先得到成長機會,需要的是合夥人心態 (aka 一起解決問題)
- 換位思考:用主管的角度思考,設計出有說服力的故事 (往上爬必備技能)
- 成為解決問題的人:提供解決方案取代提出需求 (E.g, 學習計劃取代表達成長停滯)
職場的溝通秘訣 - 小結
- 溝通是職場的核心。所有的問題,都是人的問題。
- 成為職場好咖的三步驟
- 用對話取代批判。讓對方帶著新觀點與建議全身而退。
- 不抱怨,給予建設性的回饋。
- 擁抱合夥人心態。不只是點出問題,而是成為解決問題的人。
結語
Early adulthood is about watching your dreams go up in flames and learning as much as you can from the ashes. Do, fail, learn. The rest will follow.
- Chapter 1.1 Adulthood, Build: An Unorthodox Guide to Making Things Worth Making (創建之道), Tony F.
Q&A Time
Ask Me Anything!
Feeling inspired but have no idea how to start?
Come join us !!!
We are hiring now:
Tech Industry Survival Guide: Key Skills for New Grad
By Jalex Chang
Tech Industry Survival Guide: Key Skills for New Grad
身為職場新鮮人的我們,該如何適應瞬息萬變的軟體科技產業,持續精進,打造屬於自己的美好職涯?
- 113