看板 Soft_Job 關於我們 聯絡資訊
最近終於準備收 offer 了,想分享一下挑戰 big G 的一點經驗與心得, 可能會寫得比較像流水帳,大家輕鬆看看就好。 會試著面試的緣由是看到前同事挑戰成功,覺得自己好像也有點機會試試看。 殊不知總共挑戰了三次,從 2018 年底到 2021 年中終於塵埃落定。 然後這篇主要會分享前兩次失敗的經驗,跟從中獲得的一些教訓, 下一篇才會提供成功的經驗,希望能幫助到一些還在努力的板友。 1. 2018 年底,第一次面試,職位:Software Engineering Productivity 第一次是以一種嘗試的心態進行,Leetcode 大概 100 題就上場了 HR screen 時問了一些演算法複雜度與說了些英文, phone interview 被問了一題 easy-medium 的題目,順利解出進 onsite, 然後 onsite 前兩場就被直落二了... 第一場中文對談,問了一題 easy-medium,是某個 medium 題目的子題。 結果沒跟面試官討論好,直接就寫了最直觀的暴力解, 寫完立刻就被打臉說這不是最佳解,要我再想想看。 然後我的步調就亂掉了,拿了 hint 之後好不容易找到對的方向, 但最後還是寫了亂七八糟的 code 出來。 第二場也是中文對談,是一題 medium, 其實方向是對的但因為自己不太確定,所以講的有點支支吾吾, 最後被問時/空複雜度直接結巴。 後來自行檢討這兩場失敗的原因,應該是出在「寫 code 不乾淨」, 還有「太快開始寫 code」跟「對寫下的 code 不夠有信心」吧。 不過原本就是以一種嘗試的心態進行,失敗其實不大意外, 但其實心裡隱隱約約覺得,這兩題最後的解題方向都是對的, 如果有好好練習準備,感覺應該還是有機會過的。 最後以一個有點遺憾又不太意外的心態結束這一回合。 2. 2019 年底,第二次面試,職位:Software Engineering Productivity 其實 2019 年中就有收到 HR 的再嘗試邀請, 但當時女兒剛出生,在醫院陪產整個漏看信件 lol 在 2019 年底才又真正被聯繫上。 電話接起來後,HR screen 直接措手不及英文開場, 講一講後突然說「我們其實可以說中文」,然後就轉成中文溝通 XD 也沒被問制式化的問題了,直接就安排 phone interview。 這次心裡想說機會來了,要來好好把握。 直接跟公司多請了六個月的育嬰留停假,領著勞保局給的補助打算拼了。 這段時間大概跟我考研所的時間有得拼, 每天除了吃飯睡覺以外,就只剩下刷題, 直到面試前累積了 600 題左右吧,以一個好像還行的心態上場, ...結果 phone interview 差點崩掉。 其實這次 phone interview 不難,只需要用到簡單的數學概念就能解, 難度應該只有 easy,什麼演算法資料結構都用不上,根本暖身題而已, 但在當下我緊張到頭腦一度空白,最後五分鐘才想到解法一口氣寫完。 原本以為完蛋,結果收到 HR 的信內寫「well done」, 有點摸不著頭緒的進入 onsite 流程。 這次安排面試前有被問說想面 junior 難度還是 senior 難度, 可能是因為我的工作經驗剛好卡在四年多吧,L3 or L4 都可以試試, 經過一番掙扎最後選了 senior 的難度, 這邊雖然說是 senior 難度,但應該對應到 L4 左右而已而不是 L5, 但這次被告知除了三場 ds/algo 以外,會再有一場 system design。 當下有點傻掉,因為似乎 2018 還沒有規定要面 system design, 所以先寄了信問能不能把 system design 換成一場 ds/algo 來面, 結果答案是不行,好吧,頭都洗下去了硬著頭皮來面對。 還好能把 ds/algo 都排在一天,其他的排另一天,想著先過 ds/algo 再說。 ...嗯,結果就是我沒再被安排另一天, ds/algo 三場的 feedback 不夠好直接又被結束這回合。 onsite 第一場全英文對談,題組式的 medium 情境題,總共有三題在這題組中。 要思考他給你的某種要求實作出可以對應的資料結構。 我有記取了前一次面試的教訓, 在動手寫 code 前先跟面試官釐清可能的 input 與想做的方法, 第一題算是順利度過。 第二題是第一題的改條件,變得更難處理一點, 一樣先跟面試官討論可能的 input,結果不小心解鎖第三題 XD 當下打算寫個第二題跟第三題都可以處理的做法, 但是一直沒抓到好的解法,過程中有感覺到面試官一直想幫助我, 很可惜最後時間快不夠了只好退回來以一個沒那麼漂亮的解法來解第二題作結。 onsite 第二場是中文對談,總共被問了兩題, 第一題是 easy,聽完題目做法大概就有底了, 跟面試官討論後寫 code 都很順利。 第二題是 medium,聽完題目有個大概的想法, 也是跟面試官討論後請我開始寫 code, 但是有點可惜對於這個類型的題目我不是那麼熟悉, 所以修修改改了 code 後,最後的版本應該也有些 edge case 沒處理好。 onsite 第三場全英文對談,也是兩題, 第一題是 easy,也是聽完題目有底直接討論開始寫, 結果跑第一次 dry run 時自己跑錯 lol,重跑一次發現我寫的 code 是對的, 當下有點糗 XD 第二題是一題 medium,這題我花了很多時間跟面試官溝通一些 edge case, 但因為是全英文,感覺自己沒有很好地表達出自己在考慮的東西, 弄了很久才終於得到想要的解答,以至於最後只口述了可能的做法來不及寫 code。 其實這三場下來我自己覺得應該已經比第一次面更有機會了, 但自己也認知到面試當下犯了太多錯誤,像是: - 不夠穩定,臨場怯場影響表現太多 - 想一蹴可幾,但穩穩一題一題解更重要 - 對某個題型不熟悉,想法若有似無比完全沒想法還更令人懊惱 - 對自己的 code 掌握度不夠,dry run 不應該跑錯 - 時間掌握度不夠,英文表達能力要再加強 嗯,最後不意外的以 feedback 強度不足,直接結束了這一回合。 也解決了我要另外準備 system design 面試的煩惱(? 但其實收到拒絕當下真的還滿灰心的,畢竟都請了這麼長的育嬰假, 感覺對家人很過意不去,經歷了一段調適後才終於又回到正軌。 (待續) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.43.0.15 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1625756279.A.914.html ※ 編輯: wheels (114.43.0.15 臺灣), 07/08/2021 23:00:37
taipoo: 謝謝分享 07/08 23:15
mike8469: 推推 07/08 23:24
ryanlei: 第2次就衝到600題了呀 07/08 23:25
對,真的是天昏地暗的刷, 但其實帳面刷了幾題不是重點,融會貫通了多少觀念才是重要的地方。
sarsman: 推 恭喜 07/08 23:40
kvjo: 有沒有有管理職位的分享呢? 07/08 23:58
kvjo: 純許願 推文 07/08 23:58
ken90242: 推推 07/09 00:59
Psyman: 謝謝分享! 07/09 01:06
kyrie77: 推 07/09 01:13
algorithms: 推 07/09 01:51
x013x: 感覺題目數跟分享出來的能力好像不一致?還是題目其實更難 07/09 01:58
x013x: ? 推分享 07/09 01:58
之前也有些前輩提到,刷了多少題真的不是重點, 掌握了多少解題手段跟了解背後思考觀念真的才是最需要練習的地方。 最懊惱的是,在聽到題目時發現這題之前好像有寫過類似的題目, 但發現自己完全抓不準解題方向...
deeeplove: 好扯喔 一直在做題目? 07/09 06:20
libraryfire: 推 07/09 06:31
eggy1018: 謝謝分享 推w大,真的很辛苦的過程 07/09 07:51
realbout: 太狂了~推 07/09 09:34
l9830826: G社真的難度真高! 07/09 09:52
aa06697: 推 07/09 10:05
bug2: 謝謝分享 期待下篇 07/09 10:23
mirror0227: 猛 07/09 10:59
mirror0227: G社面試當RPG的王在刷XD 07/09 11:00
chatnoir: 敲碗 07/09 11:04
Michael132: 原來台灣google也這樣 07/09 11:19
Michael132: 我過去三年失敗三次了!今年準備打第四次王 (矽谷) 07/09 11:20
辛苦了,祝早日上岸
shiauji: 看隔壁版都說大概刷200-300題就可以進了,覺得…我處在 07/09 11:25
shiauji: 兩個平行世界 07/09 11:25
多刷題可以更好地幫助你掌握觀念,但要掌握觀念不一定要刷很多題。 真的不要被題數迷惑了。 而且題題不等價,有刷到關鍵概念題更重要。
ken771209: 推推輪子大 07/09 11:48
st945712: 太強了 想請問L3職位從頭到尾都是面試演算法題目而已嗎 07/09 12:22
shiauji: 了解,感謝分享~ 07/09 12:23
st945712: 其他像是DatabaseB,Git,OS,OOP之類的基礎知識會問嗎 07/09 12:24
Apache: 不會,所以你會看到有些招進來的開發水平其實... 07/09 12:32
Apache: 看崗位 可能會有OS/Arch一些優化概念 07/09 12:33
阿帕契大大應該是前輩 XD 但其實我有遇到面試官開場五分鐘會請你自介 + 問些基礎的東西, 或是問些你 resume 上有寫的東西, 但大部分時間都是花在解題上沒錯。
st945712: 那如果只是刷題刷到爐火純青進去,其他軟體開發的知識都 07/09 12:53
st945712: 不熟,他們會有一套完整的訓練流程?還是說很快就會被PI 07/09 12:53
st945712: P出去了哈哈哈 07/09 12:53
這個我聽到的是, big G 預期的是你如果有資格進去,你應該可以很順利的把東西 pick up, 有點像是進到一流頂尖大學實驗室, 教授會覺得你應該要有能力可以很快就把給你的東西都學好。
uopsdod: 感謝分享 07/09 13:22
vvind: 推 07/09 14:46
pcsh710738: 推,目前也是面完on-site到fit talk階段了,但好擔心 07/09 15:08
pcsh710738: 自己找不到組。HR是跟我說希望我先fit到後再拿support 07/09 15:08
pcsh710738: 去送HC,不知道是不是自己的feedback不夠強。 07/09 15:08
這可能要看 location, 我看小道消息是有些 headcount 比較少的地點會是先 team match 再送 HC, 或者真的就是 feedback 不夠強才會先 match 才送了。
frank910138: 推 07/09 15:24
Sleepingfive: 推 07/09 15:30
coquelicot: 恭喜原 po 順便回 st94 大,google 很多 tool/service 07/09 15:39
coquelicot: 都用自家的,進來還是要再摸,所以可能覺得影響不大 07/09 15:39
coquelicot: 吧 07/09 15:39
mathbookh2o2: 恭喜 07/09 15:48
st945712: 了解 非常謝謝各位大神解答 07/09 15:48
bill1992: pcsh 大你說的沒錯 07/09 16:53
VVii: 請問您刷的語言是什麼 07/09 17:44
刷題個人推薦 Python 3,理由我應該會寫在下一篇,但這見仁見智啦沒有一定。 但 resume 上最好也要寫上你會 C++/Java 的經驗, 這對過了 HC 後的 team match 會比較有利。 如果真的不太熟可以在 resume 上標上熟練度分級。 ※ 編輯: wheels (114.43.0.15 臺灣), 07/09/2021 18:43:16
Vick753: 請問這個職位 內容是要做甚麼呢 07/09 21:16
samfox: 謝分享 07/10 08:40
hao1993: 恭喜 敲碗期待下集 07/10 14:43
iiiii: 一流頂尖大學的實驗室是哈佛和MIT嗎?四大的實驗室鐵定不 07/10 16:48
iiiii: 是這樣文化,倒是中華文化 07/10 16:48
a8989332: cheers~ 07/10 20:56
viper9709: 待續www 07/14 00:08