[心得] Google面試 & offer請益

工作

標籤:面試
1431190


背景4大混血 資訊相關科系
一線ic 軟體 0.5y + 一線ic韌體 1y
技能樹方面 c++ leetcode 600題 純刷題仔
其他技能除了C外 其他都接近0

希望認識的不要認親><

目前拿到2個offer

A公司
工作內容: bsp
待遇: (N + 16k) * 14
優點: 正常工時 &爸爸是一線大廠 & 技能樹在台灣發展性好
缺點: 要碰硬體

B公司
工作內容: 遊戲app backend
待遇: N * (13 + 2)
優點: 使用c++ & 軟體夢 & 短工時福利佳
缺點: 博弈 & 目前後端know how = 0

兩邊錢差不多,產業類別無所謂,比較在乎技能累積
兩邊的面試也有相當的難度,對於工程師的要求也應該會比較高
未來職涯希望幾年後能跳到在台外商 or 不排斥往國外發展

另外想問幾個點:
1.
對於BSP的了解就是讀懂硬體規格,然後讓他能work?
不知道這理解是不是對的 & 有沒有其他困難和有挑戰的點

2.
不同產業的後端的技能是不是能shift?
會不會因為展業導致技能樹受到侷限?
博弈的app後端技術在台灣的市場狀況如何,轉職會不會受限?

如果不方便留言的也可以站內信><

- - -

Google 面試分享(L3)

時程表:

2022:
6/7:HR LinkedIn 傳訊息
12/8:一面(coding)

2023:
2-4月:等新年度head count update & team match

6/6:二面(coding)
6/7:三面(coding, English)
6/8:四面(coding, English)

尋找願意跟我match的team manager

7/11:五面(behavior + team match)

(一年內都可以team match, keep waiting……)

- - -

google面試流程 (2023 新制)

正式面試一般有5關
4關的coding & 1關behavior
4關coding中會有2關用全英文進行(2-4關中間2關)

根據HR表示,今年開始面試流程有一些改動,
所以可以從時程表中可以看到很多team match

現在面試流程是這樣:

Step 1.
HR電話考試,通過可安排一面

Step 2.
一面,通過可安排team match

Step 3.
team match,這邊比較像是確認產品線,
我是選擇silicon,所以後續都是安排silicon的工程師來幫我面試

Step 4.
二面 + 三面 + 四面

Step 5.
尋找願意跟你team match的manager,由他來完成behavior

Step 6.
team match
(根據coding成績,極優秀的人可以先7再6)

Step 7.
Match上之後,會送hire committee,決定最後hire or not,有可能有加面的關卡

- - -

Step 1

HR電話問一些資料結構 & 演算法的問題
選擇題or問答題,會用英文出題
主要確認基礎程式能力和英文能力
我大概刷100題左右時進行
當時英文能力太差,都用中文回答也過了

- - -
Step 2

45分鐘coding面試,45分鐘是硬上線
會出一題類似leetcode的題目
要先說明打算怎麼解 & 分析時間複雜度

面試官同意後可以開始解題
邊寫要邊解釋每一行在做什麼
寫完之後需要自己建test case逐行驗證正確性
如果是比較簡單的題目會有follow up

我當時被問的是今年6月最後一天的daily (hard)
寫的時候有三個edge case沒考慮到

第一次他問我確定嗎? 我檢查一下之後發現改掉
第二次他問我要不要再檢查一下? 我又改了一個
第三次他又問確定嗎? 我說確定
然候他叫我跑test case,跑到一半才發現又錯一個地方

結果後來我還是通過了,而且feedback還很好
這一關比較像是測驗有沒有能力繼續往下走
如果這關沒過就會直接結束面試流程

- - -
Step 3

以往都是一面完之後,就會一路面到behavior結束
但現在會先進行一個team match,選一個想要的職缺
然後會從這個職缺的產品找人當後續面試官
讓你可以面試完的時候和他聊天,對部門多一點了解

每一個coding關,面試官都會獨立寫出feedback
feedback很詳細,會根據演算法 & 資料結構正確性之外
還會評論程式碼整潔度 表達方式 互動細節……等等都是評分項目
每場面試都是獨立的,面試官之間不會彼此討論

每一關面試官,會根據綜合評論,給出最後評分
Strong hire - hire - lean hire - lean no hire - no hire - strong no hire

我這關被問到簡單的string存取,模擬接收封包的情景
follow up 是模擬封包傳送錯誤的處理情形
解法不難也很直覺,大概是一般medium的難度
主要是考你怎麼選資料結構 & 如何update data

這關我拿到hire

- - -
Step 4

這一關是英文進行
題目是根據某些規則算西洋棋走法數
是在leetcode沒看過的題型
我有寫出次佳解,並說出最佳解的時間複雜度
時間不夠,沒有follow up ,但有問我可以怎麼優化
我只有回答出最佳解的方向,但不知怎麼實作

這關拿到lean hire

- - -
Step 5

這關也是英文關
一開始他貼跟昨天一模一樣的題目
如果出現這個情況一定要反應
不然會變成無效關,需要補面

後來他換了一題
根據某些情況算股票買賣時間點
也是leetcode沒看過的題型

因為我知道時間複雜度是O(n)
所以我一開始花了20分鐘想O(n)的解法,但是一直卡住

後來他給我一個提示
我花十分鐘寫了一個O(nlogn)的解法
他對我的解法和寫code能力很肯定
我也說我知道最佳解的方向,但是我一直想不到實作方式

我的負評只有花了20分鐘想不出有效解
其他評論都是正面的

這關拿到no hire

- - -
step 6

到這邊如果評分太差,會直接結束面試流程
如果評分很高,就會先送hire committee決定錄取與否

如果在中間,就會先team match
確認有team要你之後,他會幫你寫推薦信
增加通過hire committee的機會

我拿到三個評價分別為 hire, lean hire, no hire
介於中間,所以先進行team match

這時候hr會去問有沒有team manager想和你team match
你也可以自己找職缺,請HR幫你問
有找到人才會往下進行behavior,如果沒找到就一直等
面試流程一年內都可以進行

我後來match一個做Linux kernel的team
behavior就是一般的樣子,上網查很多資訊

Match過程蠻愉快的
manager會跟你介紹部門做的東西
並且一直問你喜不喜歡
不會問你會什麼,也不會考試

- - -
Step 7

後來team match沒有成功
因為manager有3個candidate可以選,最後選了別人

所以我現在還在等待team match的狀態
一年內都可以match,match成功才會送hire committee
送完之後會有三個可能結果,hire, no hire, hold
hold可能就會需要再加面

如果面試沒上,會進入冷卻時間
冷卻時間半年到一年,會依你這次面試差多少來決定

- - -

我目前規劃:

我會先找工作也是因為google面試流程跟馬拉松一樣
而且看起來距離結束還有很長一段路要走,還不一定會上
所以先找一份工作當成過渡期
也順便選擇未來的領域
之後會繼續面試google,也會嘗試其他外商

- - -

Google 面試刷題方式

L3(初級) - L4(中級) 應該都是以刷題為主

面試難度大概介於mid - hard
我這次被問的題目大概是1 mid, 3 hard
但不是很難的hard

我有朋友被問過極難的hard (leetcode 2242)

我大概刷100題面HR問答
250題面第1關
550題面234關

我準備的刷題方式
是把leetcode的study plan先寫完
然後每天寫daily
並且按照這個網站刷https://neetcode.io/

寫題目的時候
如果10分鐘內想不到最佳解(包含時間複雜度)
就可以直接找答案來看
並且把解法學起來

每題寫完的題目 也要去看看別人是怎麼解的
即使原本不用看解答也能寫對
並且把程式優化,修到最好的版本

要練習到每一題都要在第一時間想到最佳解
並且一次寫就能寫對的程度

面試當下如果說不出夠好的解法
面試官也不會讓你開始寫

可以練習用run確認有沒有compiler 問題
確認沒問題之後直接submit
然後要一次對

hard的題目也一定要寫
因為真的有可能問到這麼難

各種題目題型都要刷(dp, bs, graph, array, …….)
各種特殊演算法也都要會(union, trie, …)

Google面試重視的是能不能想出夠好的解法
並且在接近0失誤的情況下完成
還要能夠驗證正確性,清晰的解釋給面試官聽
以上全部要在45分鐘內完成

所以在平常刷題時候要盡量要求自己寫題能表現到完美

- - -

刷題的時候,每100題都是一個坎

基礎建立時期:
0~100是程式基本資料結構和演算法的建立,熟悉基本語法
100~200會接觸到簡單演算法的模板(DFS, BFS, BS, DP……)

題型熟悉時期:
200~300開始會接觸特殊演算法
這時候會自以為有點小成
但是有些題目還是會卡超久都想不到
才發現有些演算法根本想不到

300-400會開始熟悉所有題型
這時候會開始接觸各種題型的hard
並且熟悉每種題型的解法
開始練習看到題目就要知道該怎麼解
(有些題目跟你說解法,你還是不知道怎麼解)
(蛤?為什麼這題是Binary search?) -> 最常見
(這題dp條件要怎麼更新?)

解法優化時期:
400之後,9成以上的題目都難不倒你
medium 即使沒看過,基本也都能秒殺
hard題型如果遇過,也都能在1小時內寫完

這時候會開始優化解法
不只要寫對,還要寫的美,寫得漂亮

之後累積題目的速度就會變很快
也很容易寫到以前寫過的題目
可以看一下自己青澀時期的寫法
並且重寫一次,讓現在的自己把他修得更美

後面就是題目累積和增加熟悉度
打週賽基本上都能輕鬆快速完成3題
(但我每次第四題都TLE 囧)


- - -

Google面試前準備:

面試前一定要找朋友mock interview
最好是有面試過google的朋友

面試的時候需要邊寫code邊解釋自己在寫什麼
對於沒有練習過的人來說是一個很大的挑戰
尤其是還需要用英文講解

所以平常也要練習邊寫程式邊講解

面試當下不一定要寫出能夠work的code
所以call function的時候如果input參數忘記,可以簡單寫一下
跟面試官達成共識,讓他知道你寫這行想要做什麼就好

平常也要練習考慮各種edge case
並且練習全部想好怎麼寫之後再開始寫,不要邊寫邊想
也不要寫到一半才發現前面沒考慮到,又回去改

再來就是面試的時候可以多和面試官討論
例如確認input size or 有沒有負值
如果想不到解法,也可以先講暴力法
面試官都會斟酌給提示,引導你往最佳解思考

(我當時就是不確定還要硬掰,不好好跟面試官討論QQ)

- - -

如果有什麼面試細節不夠清楚的
可以留言或站內信問我

謝謝各位的觀看






-----
Sent from JPTT on my iPad

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.192.228.127 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Tech_Job/M.1691249057.A.BDC.html
wondtty1樓N是? 08/05 23:34
去年發哥新人價
psow1232樓 08/05 23:36
a989876053樓 08/05 23:41
papapa4樓韌體一年經驗能累積到什麼? 08/05 23:44
FTL,我也不想再碰,所以我很老實的說只會c & c++,其他都不會><
HelloPPT5樓 08/05 23:44
fish01126樓用c++刷600題也很強了 08/05 23:51
brightest7樓硬體仔表示有題可刷真好 08/05 23:52
LinuxKernel8樓考成這樣結果進去該不會在做系統廠的事 08/05 23:53
qk33808889樓面了一年 好痛苦… 08/06 00:03
gn0170552910樓軟體夢大概只能支撐頭幾年 08/06 00:10
nolegoat11樓請問google會承認一線ic的年資嗎 08/06 00:10
根據能力面試職等 pay的話各憑本事談 應該沒有像台廠一樣的職等&薪資換算公式
gn0170552912樓後來還是回到錢跟business 08/06 00:10
gn0170552913樓軟體能幹嘛?能不能賺錢才是重點 08/06 00:11
gn0170552914樓最後還是得回到公司政治及派系 08/06 00:12
gn0170552915樓除非你不想升遷 08/06 00:12
ppc16樓g社面試流程好恐怖 08/06 00:16
NewLifePage17樓真的很厲害 推一個! 08/06 00:19
touurtn18樓B這樣也能錄取== 很好奇面試都不問資料庫嗎 08/06 00:25
他有問 但是我連題目都聽不懂xD 不過他問了很多c++和os底層實作方式 我基本上全部都有回答出來 他們覺得我c++實力很好 願意讓我後端從0開始學
russellluo19樓google 的招聘流程真的是太慢了 08/06 00:27
john1189432420樓看起來可以進google的都是神人 08/06 00:31
steak556621樓大大已經很強了 台灣g真的好卷 08/06 00:41
我最近開始寫兩三次 都是前三題寫完 第4題TLE
steak556622樓可以問一下大大週賽大概幾分嗎? 08/06 00:42
OUX851323樓我跟你說,如果你之後有貸款的需求,有些銀行是不貸 08/06 00:44
OUX851324樓給博弈相關公司的 08/06 00:44
jim54300025樓之前五個面向只要一個border line就會是lean hire 08/06 00:45
我不知道怎麼樣算coding失敗 不過我每一關都有寫出最佳解 or 次佳解
jim54300026樓兩個就是no hire 標準看來降低了嘛 08/06 00:45
jim54300027樓只有方向coding失敗也有lean hire簡直太不可思議 08/06 00:47
bla28樓看完我只覺得google有病… 08/06 00:51
jim54300029樓非最佳解就是失敗的意思 08/06 00:56
ok 那可能早期真的比較高 現在只要能寫出面試官覺得夠好的解法就可以了 面試官還跟我說我O(nlogn)的方法還不錯 O(n)的解法實際上不一定比我的方法好
boomberm30樓我怎記得只要有一個no hire基本就沒救了 08/06 00:58
我原本也這麽以為 但HR讓我繼續往下走 那就等看看有沒有加面的機會
延伸閱讀
[面試] 2022 軟韌體工程師面試心得
Re: [面試] 電控/PLC工程師面試,請大家幫我健檢公司
[面試] 台光電子材料
[心得] 台中-惠X科技面試心得。
Re: 友達面試
[心得] 近期三家面試感想
[面試] 外商面試心得分享
Re: [請益] 老闆總問我是不是在面試,該怎麼回
更多心得
[心得] 台中-惠X科技面試心得。
[心得] 微軟也開始把support外包出去了
[心得] 近期三家面試感想
[心得] 非主管薪資中位數的落差
[面試] 外商面試心得分享
[心得] 在日本工作受不了,想回台灣
[心得]給求職者如果要購買面試趣的心得(不推薦)
[心得] 科技業公開薪水