※ [本文轉錄自 studyabroad 看板 #1ToJFUH0 ]
作者: theWANDERER (癡、肥、蠢、宅) 看板: studyabroad
標題: [心得] CS找工作經驗分享
時間: Mon Nov 11 18:11:39 2019
分享個CS找工作的經驗
看得懂中文的人都知道要去看一畝三分地,導致繁中的資源很少
但是由於看了某些文起肚爛,我就來寫一篇找CS工作的經驗分享
結果:
- Offer: FLAG x 2,MS x 2 (不同組允許同時面),Expedia、大Startup x 2,小St
artup x 3
- (因為有offer)婉拒onsite:5
- (因為有offer)取消電面: 3
- 沈船:LinkedIn、MS (XBOX)、Amazon (Flex)、高盛、Citadel、Two Sigma、Uber
、和一些startup
我先介紹我的1. 戰略分析,再來2. 經驗,附上3. 背景
經驗分成三個部分:2a, 刷題/解題、2b. System Design和2c. Behavioral Question
最後給個4. 心得做為結尾
1. 戰略分析
這只是我的分析,對不對請讀者自己斟酌
去各大公司網站上投履歷是有用的!我的FLAG實習就是海投來的
但是能找內推就找內推
LinkedIn上面直接丟recruiter也並無不可
有些時候可以跳掉phone screen就爭取看看
我G有跳掉phone screen
合理戰略,把一些可有可無的公司放在前面,面掛了也沒關係那種
所以我是先找一堆startup來練習面試
當然因為我有一些實習經驗,加上我是在職換工作,相對好拿面試
如果沒有辦法拿到這麼多面試的朋友可能就多找mock 的機會
我個人是幾乎不可能去灣區
所以我甚至拿灣區(LinkedIn、Uber)、紐約(高盛、two signma)、芝加哥(Citadel)的公
司來練
我還有拿contractor的職位來練
timeline:
- 2019/06初: 開始準備,猛刷題,海投履歷,leetcode 400題
- 2019/06中:開始接受不是很想去的公司的phone screen、online assessment
- 2019/07中:leetcode 600+,不是很想去的公司有些有offer/onsite
內推想去的的公司的phone screen、online assessment
- 2019/08中:想去的公司開始onsite,不是很想去的公司offer
- 2019/09初:開始有想去公司offer
2. 經驗
這是我的經驗,未必是通例,參考參考吧
2a. 刷題/解題:
- 基本的那些資料結構要熟,時間、空間複雜度要講得出來,基本的sort、tree、
BST、Graph、recursion、Union Find等等,這些東西要知道怎麼用
- DP就聽天由命了,我至今也不是每題都想得到
- 至少要能用英文把自己的想法解釋清楚
- 解釋完想法後,面試官答應了再開始coding,不要糊裡糊塗就開始亂寫
- 擺脫IDE,就算你不練白板coding,至少要無IDE(無autocomplete... etc)環境的
coding,這樣面試才不會漏東漏西
- 重點:題不是刷過了就算了!會忘!我是一新一舊的刷,每刷一個新題就練一個舊的
這樣可以確保某些公司求快的你可以迅速出答案,例如F要45分鐘出兩題標準答案
- 某些公司如G幾乎不考原題,就要想盡辦法練新題,想辦法自己想出答案
參加Leetcode的競賽是不錯的練習,我最後三次參加競賽是解出四題、三題、四題
- 題目不是Leetcode test case過了就算了,要確定是最佳解,我個人是C++在刷
如果我的解答時間不是TOP 30%我就會看答案,並且改我的寫法
- 重點:要練HackerRank!一大堆online assessment是他們家的系統,因為系統不熟
掛掉是很悲慘的事
- 重點:解題的時候想不出標準答案,也要給個半殘的答案,解釋給面試官聽
他同意你的解釋,你寫個半殘的答案出來,至少不是0分
- 我2016 Leetcode 400題時拿到 FLAG實習
650題時,開始拿西雅圖startup offer
750題時,拿西雅圖中型startup 和MS offer
850題時,拿西雅圖FLAG offer
2b. System Design
我也是很頭痛,我在學校待太久,沒有真的做過大的系統
我就是讀一讀Grokking the System Design Interview - Educative.io
看看Youtube的影片
- 基本:Grokking每個章節都看得懂的程度
- 基本:蓋上Grokking網站之後,自己畫出所有內容
- 基本:要把題目問清楚,各種requirement問出來,寫在白板上列表
- 重點:問面試官再來他想看什麼
這是我面試久了才發現的事,Grokking和Youtube、每個影片講的流程不一樣
有時候是要看High level archi,有些人想看Capacity analysis
有些人想看DB design,所以我翻船一兩次之後我了解到:
問完requirement後,應該要問面試官想看什麼,然後順著面試官講
我曾經在high level畫完之後,面試官想看load balancing/scaling的問題
當時經驗不足,欲哭無淚,沒時間了
2c. Behavioral Question
(這是我的偏見)按照亞麻的13條Leadership principles去準備
亞麻的能答出來,其他就能答出來,掰故事也要掰出來
BQ就是那些亂七八糟的東西
無用,但是你查到的每一題,你都要有答案
連G家都有Googliness,有夠弱智
我G的面試官(好二六,擺明要放水)和我一起
邊罵G幹嘛學A弄那個沒有用的
邊把我的答案(某些是掰的,ㄏㄏ)填入問卷裡面
(PS. 我亞麻遇到全老印面試官,我flag offer x 2,亞麻掛了,請各位自己解讀)
3. 背景:
- 學歷:台灣top 3 CS學士、美國某中西部CS碩博
- 實習經驗:灣區FLAG一次,沒拿到return offer
X公司一次,西雅圖分部
- 正職經驗:X公司1.5 y
4. 心得
論錢其實FLAG給的不是最多的
我有大startup offer給的非常非常猛(有些人1M/4y就在吹,頗ㄏ)
聽到我有FLAG的Offer之後還要加錢
只是我個人志向不在拼搏,而是求穩定,所以還是選了FLAG
FLAG實習時在灣區體驗過一陣子,確定自己不喜歡灣區的氛圍與氣候
突然上了文章,滿足博班畢業條件,指導教授放人的時候題目練的也不是很多
FLAG+M沒上就去X了,畢竟在西雅圖,不用去灣區
而且有認識的人,之前Manager、組員都相處融洽
待了一年多快兩年,卻因為鬥爭因素整個組要被裁(2019/06)
雖然有幾個缺可以留,但是還是不如歸去
胡亂講了一堆,希望對任何人有點幫助
謝謝!祝大家好運,offer連連