希望leetcode篇結束之後,大家都有達到自己想要的目標分數/目標程度
接下來就是面試實戰篇
筆者會花兩篇稍微介紹一下大公司的面試流程等等
以及自身面試經驗的分享
(HR看到這篇覺得有什麼東西不希望被分享的話請寄到gmail信箱sendmefkingspammail)
希望可以透過接下來的文章
(如果讀者完全沒做過面試方面的研究)
讓各位對大公司面試的時候會發生的事有一些基礎的了解,能做出更好的決策
並且以筆者實際面試時犯的錯誤作為例子讓各位讀者在面試的時候能夠更小心
順利錄取想去的公司
(所有經驗分享都來自外商公司台灣Site 台灣Google或是台灣Amazon等等)
首先有一個不錯的文章可以先看一下(這篇是通用文章,不是針對軟體工程師的)
[心得] 面試時你應該知道的事
總之,
如果刷題刷的差不多,要準備開始丟履歷了
那必做的事情有:
研究好JD是非常非常必要的一件事情,
雖然很多JD的需求寫的很籠統,
但把JD裡要做的事情的關鍵字搜一搜,
就可以大致上猜出入職後要做哪些事情,
有想要換工作勢必對現職公司有一定程度的不滿意,
可以趁機揣測一下新的公司(至少做的事情方面)
還會不會讓你感到無聊或是不滿意
另外,JD上的關鍵字如果有好好搜尋,
在問面試官問題的環節也是非常加分的
筆者覺得最重要的是:
如果說你就是只想去某家公司,
(比如說谷歌)而且不太想離開台灣
但是又對最最純軟的東西才有興趣
那很可惜的,仔細研究過台灣谷歌(目前的)職缺之後,
可能會發現台灣沒有那些
YouTube, Ad, Search, Map, 之類的Team的職缺
就筆者目前所知道的台灣谷歌是Silicon (Pixel, Nest), Chrome OS, Cloud等等為大宗
這些Team有沒有開最最純軟的缺?也有!
但是比日本的壓縮機還要稀少
筆者最近就認識一位大神
要做Silicon內部要用的網頁系統
(缺如果稀少競爭就特別激烈,
而且也比較可遇不可求)
像這個同學就有好好根據興趣研究JD呢!
[請益] 新鮮人 Offer 選擇(Google/AWS/Tiktok...
如果沒有好好先看過履歷的JD,
很有可能跟HR溝通要去面試哪個組的時候,
HR也不能100%了解那些技術專有名詞,
他們可能就會把你放到你沒興趣的組裡面,
這樣就算錄取了,可能做了一下下就又想轉組,
變成你不開心你的主管也不開心HR也不開心的三輸局面
(這邊特別提一下,
雖然電機系畢業的我不太能理解,
為什麼大家那麼排斥那些,
稍微碰到一點點硬體的軟體職位,
而且主流的純軟都是
做large distributied web services為主,
但就筆者的了解,
台灣微軟做的東西都比較是所謂“純”軟的,
薪水也是在一級班的行列,不妨參考看看,
不過職缺這種東西時不時都在變化,
各位讀者請自己好好打開職缺網站研究JD!)
關於履歷整理和面試雜談,這個系列文寫得算是蠻完整的!
推薦大家點開來看!
快樂社畜路:畢業後的後端開發求職準備
網路上有太多太多教人寫履歷的文章了,
筆者就不贅述那麼多
只要簡單清晰明瞭即可
個人經驗是
大部分工程師要面試時
最缺的就只是沒有準備好更新到最新的履歷
然後履歷如果能稍微針對要去的公司客製化一下是會比較好的
不過如果是FANG的入門層級工程師的話,
履歷也不是太重要,
不建議花太多時間一直找別人精修,
拿時間做其他的事情比較划算
Mock interview 是在面試之前最最最重要的事情
必做!
而且如果是考刷題的外商公司的話
一定要用英文mock過,文章下面有補充語言的部分
筆者認為面試前應該最少最少要mock過3-4遍以上
而且一定要找有實際面試經驗的朋友做mock
如果覺得自己程度還太差,不太好意思找人mock的話可以先看YouTube上一堆
(中英文都有)mock interview的影片
但看完幾篇都沒用,最後你還是一定要找人實際mock3-4以上
找有經驗的人Mock interview,
可以讓你熟悉非常多實際面試
的時候該做的好習慣,
像是自我介紹,邊寫code邊講話,
遇到不會的東西的時候,
如何自己用小case dry run找規律,
如何跟面試官討論input output,
或是請面試官給提示等等等等
這些(下一篇文會仔細介紹的八股套路)
在遇到每一個不同的公司,
不同的題目,不同的面試官的時候,
都會有很多不一樣的變化
面試並不是刷題刷到2400分就必上
很有可能會有什麼講話因為緊張所以太快,
討論好的演算法忘記寫pseudo code一直用嘴巴空講,
等等等等一百種讓面試官搞不懂你在表達什麼的情況
而且實際面試的時候會緊張一百萬倍,
除非是梁靜茹本人不然一律不建議不mock就上
另外有一個線上找陌生人面試的平台pramp
筆者沒用過,但是個人感覺還是找朋友
比較能細心的幫你看出問題點
下下篇文章打的比較詳細,大家可以直接接著看
基本上大公司的面試流程都差不多
小一點的公司可能會流程跑更快或是有步驟更簡略
比較要注意的是大公司的流程從第一步到最後一步基本上都是一兩個月起跳
尤其是常常不知道是分工有變還是職務調動之類的,
面試過程中HR有可能會換來換去,每遇到一個新的就要再recap一些東西...
如果是想要Negotiate薪水,除非小公司很願意等你,
(通常發offer之後都會有一個等待期限,因為有品一點的公司不可能開一個職缺之後同時發offer給兩個人,
但candidate有可能跑掉,所以這個等待期限通常也不會太久)
請一定要先開始聯絡大公司(自己面試準備也要做足就是了)
然後刷題的規劃也可以把這點考慮進去,
從跟HR打完電話到VO應該差不多都還會有一個月的時間
有面試壓力在刷題效率會特別高!
HR Phone Check => Online Assessment/Phone Interview => Virtual Onsite Interview => Result => Negotiate => Offer Letter
分項目介紹一下
比如說在公司的職缺網站填一填
https://www.amazon.jobs/en/locations/taiwan
https://careers.google.com/locations/taipei
或是請朋友的朋友內推
或是在求職網站上面被HR/Head Hunder亂槍打鳥聯絡
通常兩三個禮拜之內HR就會打電話過來
(如果有讀者rating穩定2200+以上但是覺得履歷那關就被刷掉,
苦無面試機會可以寫email給筆者
Gmail信箱:sendmefkingspammail)
phone check大致上是HR會跟你聊天,確認你現在做的工作/會的技能
然後確認你想要以面試哪一個組和哪一個grade Level為主,
在這個階段一定要看清楚要面試的組和grade level(也先上levels.fyi查好package),
才不會浪費雙方時間,
有任何不對這個時候是還有分流機會的,
比如說筆者當初同時在網站上丟了Amazon的eero, Lab126, Ring都渺無音訊 (可能履歷太多)
後來在求職說明會結束之後請朋友的朋友內推,
但只有Ring的HR有回應,但因為我沒有特別的偏好,去哪個Team都可以,所以繼續跟Ring面試下去
(以下為個人體感)
HR他們把你分流到哪裡也是有一點壓力在的,那種純軟或是更研發一點的Team肯定是比較搶手又比較競爭
,可能面試cycle早就排滿了,所以相對來說變成其他Team機會就比較多,
雖然說個人興趣是很重要,但是如果是像我一樣主要是想換工作而且是跨領域,
做什麼都是學新的東西都沒差的話,(你錄取了HR肯定是有好處的,所以HR一定是把你丟到最缺人aka最容易上的組),直接依照HR幫你排的組繼續面試也是一個選擇
然後要注意筆者有聽過HR這關也有直接問一些基本的技術問題甚至考一些簡單的程式題的
因為實在太多不太會寫code的炮灰仔抱持著丟丟看的心情來面試,
如果全部都丟給phone interview篩選實在太浪費工程師寶貴的時間(aka錢)
(要意識到工程師一週領的薪水除以40小時乘上面試時間加寫review的時間
就是面試所花的成本,所以廣丟phone interview經濟上不可行,也是OA為什麼越來越流行)
(Google好像都沒有OA(?) Google真有錢(?))
這部分好像沒什麼好分享的 實際經驗建議直接看後面的文章
Online Assessment 常見的平台是 hackrank/codility
難度部分筆者覺得都還好(1400~1900)都有,
主要是對那些平常沒在刷題的人來說,時間可能會不太夠寫不完,
有時候會不小心遇到一題超難的...那也沒辦法算你衰... 只能期待其他人也抽到而且也寫得很爛(遇到記得feedback要diss一下)
OA/PI筆者覺得就是稍微再過濾一下,通常考的題目都比較簡單,
(同樣的對最後HC的佔比來說比重也比較低)
因為大家也都知道面試只考一關是不夠完備的,感覺有到一個程度以上都不會被刷掉,
頂多Google會比較嚴格,有聽說過被考要用BIT(Fenwick Tree)比較好做的題目,
(打個廣告BIT好用又好implement不學一下嗎~ (招手~
不過我相信要是不知道BIT,思緒想法邏輯清楚溝通流暢,有用其他複雜度高一點的方法解決問題
應該也是不至於在這邊被刷掉
這邊就是面試的重頭戲
以前Google是五關 4DSA+1BQ,L4以下不考system design,最近可能發現太燒錢了
變成四關 3DSA+1BQ,一樣L4以下不考system design,
對面試者來說有好有壞,不過大公司規定怎定也是他們決定的,
就算以後決定一關定生死也是只能這樣XDD
Amazon(至少以筆者面試的Ring)則比較特別一點,
每關都是一個小時,有15分鐘以上都在問14 LP(請見BQ篇文章)
總共四關,剩下的技術時間也不一定全部都是考刷題,跟要去的team的主管聊到天的時間也蠻多的
會考專業知識跟一些比較像Design tag的leetcode題目,難易度非常簡單,但是筆者覺得題目出得非常好,
寫code的sytle,trade off考量,edge case考慮等等等等都很容易從這類的題目看出來
跟Google的題目考DSA比重比較高的方向非常不一樣
Result
Google TW
HC: Hiring Comittee (在某些文章裡是Head Count的縮寫很容易搞混..)
好像是Google才有,Meta/Apple沒面過不確定
一群獨立於面試官,想要你的主管,接手的HR之外的資深員工(不確定要多資深還是要是主管才能去當)
組成的Committee,因為每一輪面試都會有非常詳盡的report還有當初面試interactive session上的所有紀錄,所以HC等於可以拿到每個candidate每一關的所有表現,(甚至聽說還有每個面試官過往的評價,這個人是不是本來就比較嚴格,常常給出比較低的分數之類的),去綜合評價這一輪所有的面試者,決定要收誰,
降低因為某一關表現不好造成的bias
筆者是非常喜歡這個制度的,除了公平之外,因為上面講的三個人都跟你是有直接/間接利害關係的,
主管跟HR或是內推的人就會很希望你進來,HC能確保給Approval的quality,
比較不會因為找人的deadline犧牲掉了品質(也是沒有100%完美拉...)
(而且也常常lowball人就是了XDDD)
Google的話以前是先送HC再Team Match,現在是先Team Match再HC,
感覺是為了減少那種有HC Approval而有侍無恐慢慢挑Team的狀況,
但還是有聽過強者拿一堆strong hire + hire,就會先送HC再讓他慢慢挑team,
確實夠強的時候就是你選公司不是公司選你了 大家多多努力!
所以沒有match到(我猜可能還會再多給你match幾輪),就不會丟HC!
HC的決定 reject 或是 加面 或是 給 down/up level offer 或是 offer
Amazon TW(Ring)
Amazon的話則是VO四關都由你要去的組的人+Hire你的主管+一些相關組的人+一個完全跟你不相關的Bar raiser一起當面試官
(Bar raiser筆者不太確定會有什麼影響跟作用)
最後沒有什麼HC之類的,大部分面試者都面完之後這幾個人會直接開會討論要發誰offer就發誰
少掉了team match跟hc的過程,跟Google比起來速度非常快,先發offer贏一半!
筆者也是非常喜歡這種面試方式的,因為相較Google派跟你同一時區但和team不一定有關的陌生人(看運氣)來面試,面試的時候能夠直接跟以後要工作的同事面試跟聊天問問題,對瞭解team和了解同事/主管/氣氛/環境/公司文化福利工時工作內容等等等等非常有幫助,千萬要好好把握問面試官問題的時間,
(像我這次面Google的面試官甚至完全沒有在台灣site的,有點不方便)
Negotiate
這部分也是後面文章會打的比較詳細,大家可以直接接著看
這部分好像沒什麼特別好分享的,後面文章會再提,有問題可以留言~
面試完除了會有詳盡的review report
就筆者知道的是每一關的總體評分會分成六個等第(對就是像問卷一樣)
Strong Reject/ Reject/ Weak Reject/ Weak Hire/ Hire/ Strong Hire
總之面試就是跟同期的candidate競爭,大部分時間完全不會知道自己的結果,
但是因為來面的人都還蠻不錯的,以Google來說
筆者體感是拿到兩weak reject(有些人會說leaning no hire)以下
又沒有strong hire能救,基本上就機會渺茫了的樣子..
另外一件超級重要的事情是,
如果目標是FANGM,
那一定不要只面試一間公司,
除了蠻有可能一間都沒面上之外
拿到其他的offer來compete也是無敵重要,
除非可以接受工作內容一樣,
但是薪水是別人的一半甚至三分之一不到這件事情
有些人會想用面試來熱身
但是其實mock interview可能比較好一點
因為實際面試不一定拿得到feedback
拿寶貴的問面試官問題的時間問說
"我這場面試有什麼地方應該改善嗎?"之類的問題一聽就覺得是拿面試在練習...不是很尊重...
總之除非沒有工作全職刷題,不然一段時間內能面試的公司有限
而且拿到offer之後也不會被等太久,建議讀者自己評估好大概可以最多同時面試幾間公司
筆者體感是這種流程很多的公司2個就已經差不多趕了,不建議四個以上
(面試流程很快的公司除外 那種還要寫作業的就又更花時間)
拿一堆offer當offer收割機這種行為筆者是覺得CP值很不高就是了
(不如拿時間好好刷題)
筆者幫忙整理當初看到不錯的文章了,很多都打得比我詳細比我完善!
反正有空就是把這邊的選文看一看一定有收穫XD
還都是中文的,跟13億人一起用同一個語言就是賺,語言友善!
[美國求職]#4 Amazon, Google面試,科技公司 常見的3個面試流程,面試官都考察什麼? - 紐約工程師Jack
作为面试官,给即将参加coding interview的你,分享一点刷题之外的事
[刷题之外]面试官角度看面试那点事(1)-对面这货到底在想什么
[刷题之外]面试官角度看面试那点事(2)-刷题之外要思考什么
面试中的沟通技巧——面试官使用手册
我是如何准备4个月,面试60家,拿到10家offer的
从面试官角度谈面试心态|一亩三分地求职(非面经)版
谷歌面试官揭秘谷歌"downlevel"|一亩三分地职场达人版
2022 求職心得
2022 求職經驗
2022 New Grad 後疫情時代找工作
拿到 Google & Amazon Offer 的面試之旅(一)
拿到 Google & Amazon Offer 的面試之旅(二)
【新提醒】对candidate的code interview的一点建议|一亩三分地求职版
刷题&面试经验交流|一亩三分地求职(非面经)版
谈谈面试官在面试coding题目时的考察终点与心理活动, 求大米
聊聊技术面试中的沟通和交流|一亩三分地求职(非面经)版
前亚麻面试官面试心得|一亩三分地刷题版
Google 面试技巧|一亩三分地海外面经版
[其他] 谈谈coding面试的种类与基本应对策略, 欢迎其他有面试经验的人一起讨论
[心得] 國外各大公司面試經驗- Soft_Job | PTT Web
【干货贴】疫情下VO视频面试如何出色发挥
面试中需要注意的细节-如何让你刷题的辛苦得到应有的回报
補充一下關於面試語言的部分,
如果面試語言是英文,
有時候面試官(不管看起來是不是華人)劈頭就是一連串英文,
那很顯然接下來整場面試就會是全英文,
用中文試圖先聊聊天緩和氣氛有時候是不可行的,
因為對方可能是馬來西亞/越南
或是任何看起來像華人的不懂中文的人
有些時候雖然是英文面試,
面試官還是會用中文打招呼簡單寒暄幾句之後,
就開始請你用英文自我介紹
如果面試語言是中文,那要注意的就是大公司(至少以筆者的經驗是Google常常這樣)
的工程師在面試的時候常常會把語言搞錯(但基本上應該是只有中文面試被搞錯成英文面試)
所以如果你明明預期這場是中文面試,
但是面試官一開鏡頭就開始霹哩啪拉講英文的話,
可能也不要太意外
筆者覺得英文面試是一定一定一定要事先練習很多次的
尤其是在數數(像是dry run,數array index)的時候,
如果平常都是用中文在思考,
但在面試的時候要用英文流利地把思考過程講給面試官聽其實還蠻難的,
蠻容易因為結巴或是想不到某個單字或是卡螺絲要再浪費額外的時間,
更別說如果有東西發音唸錯,一個觀念無法完整或是清楚的表達給面試官,
或是常常會順口對一個外國面試官
把I'll use C plus plus講成I'll use C加加,之類的事情都會比想像中多
千萬要先練習!
然後有時候中文面試的面試官會問你想要用英文還是中文進行面試
只要你母語是中文對方母語也是中文的話,一定要選中文,
就算你今天是加拿大僑胞母語就是英文多益990金色證書,
還是有可能對方英文也不太好,聽力很吃力之類的(True story)
總之如果是想進外商公司,
不管是聽說讀寫,多多練習的英文到流利自然還是非常必要的
(筆者雖然是在台灣site,但目前公司上工後的training,同組9人全部都是印度人,
公司內部所有的網站,課程,教材和會議都是全英文(廢話),不管是聽說讀寫哪一樣有點跟不上的話都會很吃虧的)
這篇是面試前可以做好的事,下一篇:
在你面試時一定要做的事可以接續著看!