年薪三百萬軟體工程師的歷程 第一集 白板面試

2021年8月20日 10:45
第二集 年薪三百萬軟體工程師的歷程 第二集 物件導向面試 - Dcard
第三集
想寫這篇分享軟體業面試的心得 以及鼓勵一些正在這條路上的人 或是想要轉換跑道不知道如何開始的人 實際上進的去矽谷前幾間FAANG的話薪水會遠比標題多 同樣的準備在台灣面試也能用上 前言: 兩年前的我曾經一直質問自己 對於在台灣月薪五萬現在的自己就滿意了嗎 看著朋友一個個邁向灣區矽谷 自己要花多少力氣才能追上 準備的這期間也不斷的懷疑自己 途中面試不斷的被拒絕 中間也曾經放棄 犧牲了許多平日跟周末時間 開始寫這篇文章之後 發現全部塞一個一天寫不完 決定分成三集寫 第一集: Coding interview 程式碼面試 第二集: OOP 物件導向 第三集: System Design 系統設計 排版可能有亂 (1) 程式碼白板面試 coding interview 1.1 開始準備 英文能力部分參考 b15回答 如果對軟體完全是入門的話 推薦熟悉資料架構以及演算法 參考下面第一個coding university 連結
中文版
有提供中文版 以及一些免費線上課程資源 那是一位金融系前輩為了轉行上google 每天花八小時準備的資料 現今成為許多人進入軟體業開始準備的起點 另外如果開始學java 或c++ 我個人推薦這個頁面
沒有軟體經驗的話也可以尋找自己有興趣的題目 做一些side project邊做邊學 推薦side project 很多可以跟著官方網站 或是其他人有建議 手機程式設計: android studio 或是 iOS xcode 網站設計 或是 前端: javascript, python 後端: c++ java (網路教材), pthon 機器學習: python 遊戲設計: Unity 或是 Unreal Engine 開始準備的時候是從leetcode上每週競賽開始的 leetcode.com 台灣時間是每周日早上9點 兩個小時有四個題目 一開始兩個小時一題都做不出來 跟我一起的朋友30分鐘做完三題 我都懷疑自己的人生了😂 在周末競賽受到打擊之後 我開始計畫自己 首先第一件事 先選擇一個程式語言 把他全部常用資料結構寫出來 我選擇的是java 包含array, list, string, queue, stack, map, pair 創建 存入 讀取 結構大小 縮減 常用的function全部寫在一頁紙上 接著每天上班回家不管多累 平日時間強迫自己 每天下班一定要leetcode上做至少一題 周末一天三題 面試前一個月開始做更多 在一開始的時候 按照這個表格裡的60題
原作者在medium上在解釋各個表格標題
自己複製一份來做紀錄 幾個月下來這60題重複了三四次 把各個總類的標題列出來 包含: 1. array 2. linkedlist 3. stack 4. queue 5. heap/priorityQueue 6. HashMap/dictionary 7. Tree, BFS, DFS(pre-order, inorder, postorder) 8. Sort(bubble sort, selection sort, quick sort, merge sort) 9. dynamic programming 10. binary search 11. recursion/iterative non recursion 12. dynamic programming 13. sliding window, two pointer 14. greedy algorithm, backtracking 15. graph, Dijkstra algorithm 每個題目 把每個算法 1. brute force 2. 熱門解法 3. 99% Time complexity算法 and 99% space complexity解法 (在第一次全部都pass之後可以去submission 那邊看自己的百分比 按最前面的可以看到最有效率的解法的程式碼) 4. 程式最乾淨的寫法 有時候2跟3一樣 做不出來的時候把上面每個算法抄三遍 隔天再來做一次 周末一樣不斷做競賽 知道自己跟別人差多遠 在那60題做三遍的時候 可以在根據每個總類去leetcode上找更難的題目 熟悉其中要花幾個月時間 這也是最辛苦的成長期 題目練習就是要狠下心來 不管颳風下雨 每天就是上去做一題 判斷自己能夠應徵大公司面試的標準 我自己是能在競賽題目 時間內4題做出來3題之後 其他公司的話能做出來1,2題 就可以投履歷看看 1.2 面試前兩禮拜 可以上leetcode看要面試的公司曾經出過的題型 熟悉題型 一畝三分地也是很好的資源 方法的話 一樣同上方 不同解法做三遍 *需要購買leetcode會員 *如果不想付費可以leetcode forum 或google上找找 1.3 面試時
我覺得這個頻道的影片是個很好的參考 大概可以知道面試的流程 後面還沒講的兩個階段這上面也有範例 面試中重點: 1. 不管知不知道答案 先從最直接或最沒效率的方法 brute force 開始 把算法講給面試官 2. 接著根據面試官提示 再把更有效率的方法提出來 如果面試官准許 就可以把程式寫出來 3. 寫完之後 根據程式尋找corner case 把一些檢查寫出來 4. 中間卡住可以詢問面試官 5. 面試官在寫完之後會提供測試 如果測試結果不符合 再根據結果改動 基本上面試過程大概這樣 可以自己先練習幾次 有時候面試官會改變題型 不確定可以詢問 大部分面試官是找 能夠溝通能合作的人 而不是一開始就知道答案的 如果大家有興趣 我之後再分享第二集第三集design interview準備方法 也歡迎提出疑問或是建議 cracking the coding interview 這本書也很推薦
169
留言 31
文章資訊
4 篇文章321 人追蹤
Logo
每天有 187 則貼文
共 31 則留言
國立政治大學
不是理科出生但最近也想學寫程式 目標是希望可以轉職成工程師(? 很清楚豐富的分享! 很期待下一集~~謝謝!
台灣純軟能到年薪 300 的公司手指頭數得出來 🥲
國立臺灣大學
所以原po是在台灣找到300萬的缺嗎,有點好奇哪家,然後年資多少
請問有網誌版嗎? 想收藏
國立政治大學
想問原po原先在台灣的科系和產業 後來是怎麼會想轉職的以及轉職年紀 謝謝🙏
輔仁大學
真的太詳細了!謝謝你的分享!期待續集!!
b2 b3 最後我是去美國 在台灣的話要到300 可能需要到高階工程師或是管理階層 或是一點運氣 目前年資4年
b4 網站有計劃要架 架好在分享 可能要點時間 裡面會包含做過的題目跟不同的解答
b5 在台灣原本是電子產業 科系是電機 想轉行原因有很多 一部分是興趣 另一部分是待遇跟發展吧 前份工作的產業非常侷限
蘇黎世聯邦理工學院
刷題超痛苦 但又不行不刷 但最近發現我每一時期最好的offer都沒有考過coding就是了.... (莫非定律??)
B10 刷題那麼好玩,怎麼會痛苦?
B10 我自己是靠參加競賽來給自己動力 每次看有人20分鐘把四個題目做出來 就會想自己要如何才能變成那樣😂😂 可能我就是把刷題當成線上遊戲了 看什麼能給你動力 可能是轉職後薪水 或是解出來的成就感 我覺得還有一點就是要有朋友一起刷 可以討論 一起加油!
國立勤益科技大學
期待繼續分享更多心得!
亞洲大學
請問原本英文能力是不是很好,是如何增強英文能力,是沒有相關經驗直接從leecode開始嗎,請問學習資源都是找書本來看嗎?我目前都在udemy 買課學習 ,想請問有沒有推薦學習資源,我是走web 後端php+js 目前是新鮮人,希望大神能給點意見,讓我有個方向😭😭
B14 我有些課程也是從udemy開始看 但是後來都沒看完 課程我主要有上完的 是上面那個coding university 推的普林斯頓演算法
coding university 中文版
我自己覺得 完全按照coding university 的話 大概準備兩年都準備不完😅😅 大概根據你要找的職位 看他們面試經驗 會面到什麼 決定上什麼課 譬如 如果是做server部分 需要用到Linux 底層 network library 或是thread 我就會根據去上intro to OS課程 leetcode就真的不需要太多英文 做的出來就可以 有時候做不出來去找答案 找中文英文都可以 實際上我自己感覺程式上的英文 也大概跟平時用的英文不太一樣 我分成幾個部分講好了: 讀的部分: 就是要熟悉讀document library manual 舉例來說: 如果寫android 我會去讀google的library
一開始看不懂可能就中文英文混著看 看是用google translate page 不會的單字用一個google doc寫下來 文件讀久了就會發現規律 聽力的部分: 大概就是看youtube或是像udemy, coursera 課程學習 有時候不同課程也會遇到百百種口音 可能都需要適應 或是平常看看一些輕鬆的小短片也可以 我輕鬆的影片是看viva la dirt league 專業的話最近也還在探索 JomaTech 跟TechLead TechLead近期的影片都很垃圾不推薦 但是他早期大概兩三年前 還在google的時候的影片 有的是如何快速寫好一個ios app 或是一些php網站架構實作
還有給剛進公司工程師的建議
我記得他還有一個影片有講到 當你進了一間很輕鬆的公司 可以很輕鬆的去看youtube滑fb 或是認真去把code base 學這間公司的tech stack 寫的部分: 大概是上述課程作筆記的時後一邊練習 一部分我覺得可以練習的 是程式碼上的註解 靠背工程師上很多例子😂😂 練習用英文寫註解 說的部分: 大概是最難練得 除了公司給的環境的話 有時候參加一些國內外駭客松 線上大會 Linux google apple之類的 或是些研討會 平日溝通的話可以線上隨即找人對話 我女朋友之前是用lingo blabla練習 或是其他線上英文對話練習平台 web的話我也是最近才開始接觸 之前我都是寫伺服器端的c++或是java 我前端朋友 印象中他跟我說過 他面試主要面js基礎語法 如果大公司的話也還是會考coding 演算法 資料結構 網站部分 除了udemy 我推薦coursera 還有udacity coursera有些課程可以旁聽 就可以免費上了 udacity也有不少免費的 前端路線圖
這篇可以參考 感覺英文部分也能單獨寫一篇了😂😂
亞洲大學
B15 謝謝您這麼用心的回答我 對未來的方向有點概念了 希望幾年後也能跟您一樣厲害 真的感謝🙏
國立臺南大學
想請問原po如果要去美國工作不是一定要去美國讀研究所嗎,如果是的話希望可以把這些過程經驗也寫出來~
B17 這部分我覺得我在寫這篇時沒考慮到 我自己是有美國身份 所以沒辦法提供很好的建議 我有認識的朋友 沒有身份的話 是在美國研究所畢業後 申請opt或是公司申請抽到h1b留下來 有一個朋友是結婚之後留下來的😅 建議的話 如果沒有要讀書 我推薦可以先找加拿大 或是英國 一些其他地點 現在一些大公司都還有維持 work from home 可以考慮先遠端工作 linkedin上有一些遠端工作 參考連結
輔仁大學
想問原po 能不能分享當初怎麼開始投美國的工作的?或是怎麼挑選可以去的公司?台灣的工作經驗他們會算嗎? 我也是有身分,但不知道怎麼開始比較好,因為沒美國的學歷和工作經驗,而導致我有點裹足不前,目前轉職在台灣已經擔任軟體工程師一年半了 或是能夠私訊你詢問嗎?謝謝!
B19 這可能要看你經驗 以及想做哪方面 來決定要找哪方面的 找工作我自己分成兩種 主動跟被動 主動的話 一般是沒有工作情況下 每天拼命送履歷 看到什麼就報 依照你想去的地方 找那地方的職缺 幾個常用網站 linkedin indeed monster hired 我自己經歷是看你履歷多好 送出去的10%~20%會回覆你 在來面試之後10%~20%會上 那尋找條件就是直接打 software engineer, software developer 或是你專攻某種系統 手機app front end, back end, c++, java, ios developer, android developer 如果自己還沒那麼有經驗 可以找associate 也可以去找一些有名的大企業 前500大企業 或是一些常看到的平台 常聽到的 google amazon apple Facebook Microsoft linkedin uber, snap, Adobe, doordash 一些硬體公司也有軟體職缺 amd, Nvidia, Intel, GE, Boeing 在紐約的話一些金融機構 hedge fund bloomberg, citidal, Hudson River trading, bny mellon 銀行業 Morgan Stanley chase, bofa, TD Bank, 被動的話 就是一般有穩定工作 但是想找下一個 這時候可以linkedin上 放完整自己的經歷 履歷 寫一下自己在找哪個地方的工作 有時候會有獵頭或是公司直接來找 然後傳履歷給他們安排面試 在報的時候先看一下requirement 有時候寫越多tool的可能 就是一些小一點的公司 如果那些tool不熟悉 就要找一些更入門的職位 大一點的公司通常不會那麼多要求 上面只會寫兩三年 java c++語言經驗 通常進去之後會在另外培訓 台灣工作經驗 像我在台灣是在外商 但是是硬體職位 所以他們也不太問 我自己覺得他們是不太在意 特別是大公司 面試的時候能把自己做過的 還有 tech stack講清楚就行了 公司大小地點基本不太介意 主要他們想確認的是你的經驗 像我後來是在長島當地 一間小公司工作 他們主要問的也都是自己的軟體經驗 對公司本身大小地點沒什麼提問 通常有回覆要面試我的 我才會去研究這家公司 可以看看linkedin上面他們請人比例 看看glassdoor評價 面試心得 去找他資產多少 員工多少 我的ig是 codingmahou 很久沒更新了😅😅之前會貼一些 android的學習資料 可以在上面私訊
輔仁大學
謝謝你的詳細回覆!已追蹤ig
國立交通大學
基本上 台灣就算你面 google 上了也沒有 300萬 靠考試不太可能超過 200萬 美國的 300萬生活品質差不多台幣 200萬以下 這個標題還是蠻豪洨的
國立清華大學
以為是台灣結果是美國...==
聖荷西州立大學
B0 想問一下原po 面試後等offer大概等多久? 我面試了好幾間,不知道要等多久才會有offer...
B22抱歉啦打了一個比較吸引人的標題 但是我希望以這個為基礎 分享一些歷程以及經驗 這些經驗如果在台灣 在日後自己累積的經驗 我相信也能達到300 國外部分300也是一個比較好的門檻 進了faang等級公司的話肯定會比這個多
蘇黎世聯邦理工學院
B22 你這已經是保守估計了XD 在矽谷(Bay Area)的話, 10萬美金大概是台北市生活拿100萬年薪感覺~~
B23 抱歉啦 但是希望這些經驗 也能在你之後面試準備用上
B24 offer有一個是兩天就口頭通知我的 有些一兩個禮拜 有些一個月 通常我過一個禮拜沒消息之後會聯繫hr 這期間也還是會繼續面試 口頭到談定到offer letter之間 可能也會到一兩個禮拜 希望你能早日收到offer!
國立交通大學
B26 真的 台北市年薪百萬感覺日子難過
致理科技大學
B1 你轉職了嗎
老公超猛❤️❤️❤️