[心得] Google 面試心得
《前言》
雖然之前有在 Oversea_Job 版分享過類似的心得文,
但由於那篇比較像是雜談,所以想說稍微整理一下內容再分享到這個版上。
希望能夠幫助到那些以後想要應徵的人~
《背景介紹》
113電資學士班(已停招),目前以交換學生的身份在東京讀書。
大學時期除了當了一學期的TA跟在中研院實習之外,並沒有特別的經歷。
由於暫時沒有升研究所的打算,加上從以前就一直很嚮往在海外工作,
於是我就趁在日本交換的期間試著找看看這裡的工作。
《準備》
由於我鎖定的都是SWE的職缺,
我從下定決心要找工作開始每天都會用閒暇的時間刷Leetcode,
兩個多月以來大概刷了130題(27% Easy、60% Medium、13% Hard)。
不得不說勤刷Leetcode對於大部分公司的coding test確實有很大幫助,
我也是在刷題時順便複習Data Structure跟Algorithm。
在收到Google onsite interview的邀約之前其實我有被不少公司在
coding test的關卡刷掉。雖然不知道是因為自己本身coding能力不足,
還是自己的背景跟公司不符,我依然抱著全力以赴的精神去面對每個機會。
《流程》
0. 投履歷(3/22)
某天無意間看到日本Google有在徵SWE new grad後,
我就請在台灣的朋友幫我掃描大學的成績單,然後連同履歷一併寄出去。
1. Online Assessment(4/18)
履歷寄出去隔了一週後recruiter聯絡了我,
並且邀請我在指定的時間參加online assessment。
測驗的內容出乎意料的容易,一共考了兩題難度Leetcode Easy-Medium的題目
(Optimization Problem跟All Pairs Shortest Path)。
一共有120分鐘的時間可以完成。
2. Phone Interview(5/13)
隔了一週recruiter來信告知通過OA,
同時Recruiting Coordinator A聯絡我並跟我約好phone interview的時間。
在phone interview時interviewer一共問了三個題組,時間大約為45分鐘。
一題字串處理題、一題Pre-order Traversal實作題跟一個觀念題
- Why should we increase the capacity of a dynamic array exponentially ?
- Why not linearly?
前兩題因為勤刷題的關係我很快地就解出來,
第三題雖然當下我沒有立即回答出來,
但在interviewer的引導下我完成了基本的數學推導,並給了差強人意的答案。
3. Onsite Interviews(5/24)
phone interview完隔天我收到了onsite interviews的邀請。
由於我目前就住在日本,我跟recruiter要求想在Tokyo office進行onsite。
Recruiter答應了要求,並透過Recruiting Coordinator B跟我約了onsite的日期。
onsite當天遇到第一個interviewer時,
我很好奇的問了他一下是不是要簽NDA之類的文件,
結果他表示「我從來沒有聽說過有這東西耶!」。
雖然想在這裡透露面試題目的細節,不過為了公平起見我還是點到為止就好。
- Interviewer A 考了Parenthesis Matching相關的題目
- Interviewer B 要我實作出一個能在graph(2D Array)上畫直線的Function
- Interviewer C 考了一個Breadth-First-Search on 2D Array的應用題
- Interviewer D 考了Greedy Algorithm裡經典的Scheduling Problem
當天一共有四場45分鐘的interview,全程都是以英文進行。
而在第二場跟第三場之間有一個短暫的lunch meeting讓你跟現役googler聊天。
每場interview的一開始interviewer會先跟你講一下題目的specification,
接著會有一段時間讓你跟interviewer討論你解題的思維。
如果interviewer認為你的解法可行(儘管不一定是最佳解),
他會請你先把code打在Chromebook上或寫在白板上,接著跟你討論你寫的code。
以下是幾個常被問到的問題:
- Time Complexity?
- Space Complexity?
- 你覺得你的code可以處理 edge cases嗎?
- 你覺得有哪些input可能會讓你程式crash?
(例如return (y/x) 而使用者輸入x = 0, y=5)
- 你覺得有更好的解法嗎?
如果你的答案已經是最佳解的話,
interviewer這時可能會出一些follow-up question考驗你;
如果你的答案還有改善的空間的話,interviewer會適時地引導你走向更好的解法,
然後要求你把不同的解法寫下來並且比較兩者。
這次面試題目的難度大致都在Leetcode Medium-Hard,
其中第四題我因為很快就提出最佳解,
follow-up的難度一口氣被提升到Hard,當場直接被考倒。
綜合我在onsite的心得,
我認為比起卯起來自己解題目,更重要的是把你的想法傳達給interviewer,
並且適時的跟interviewer交流想法。
大部分的interviewer都會積極的跟你溝通,但不幸的我還是有遇到
愛理不理的interviewer把場面搞得很冷,只能說溝通真的很重要。
4. Hiring Committee(6/7)
Onsite完隔了幾天,我主動寫信給recruiter想詢問onsite的結果。
結果得知我的feedback是positeve的,而他也決定把我的申請轉到HC。
同時recruiter也要求我提供最新的履歷、成績單、competing offer等,
並詢問我有沒有對哪個team特別有興趣。
在lunch meeting時陪我吃飯的人有提到一點他們team的資訊,
而剛好他們在做的東西跟我的背景有一些關聯,所以我就表示想加入那個team。
由於我有跟recruiter說明我已經有拿到其他公司的offer,
他答應他會盡快處理我的申請。
recruiter在6/3通知我他已經把我的package寄出去,並在6/7通知我通過HC。
5. Team Match(6/19)
在Team Match的階段我原本以為recruiter會幫我安排跟team manager聊天的機會,
沒想到recruiter隔了一週告訴我我想進的team對我的也有興趣,
所以就把我的申請推向了最後一關。
我有聽說不同的office在team match時有時會有不同的流程,
也有可能是因為我competing offer的deadline快到了,
recruiter幫我省略了一些部分(?
雖然team match的階段跟我想像的有些出入,
不過能match到自己想進的team真的是還蠻開心的。
6. Offer Review(6/28)
最後的offer review真的就是漫長的等待啊~
雖然recruiter答應我會在我competing offer的deadline前把一切處理完,
沒想到居然剛好壓在deadline前5小時通知我的offer被approved...
當然offer review的階段因為是北美的team在負責,會有一些delay也是難免的。
感謝recruiter能在時間內把一切都處理好,
也很感謝另一間給我offer的公司前願意等待我一個多月(我大概延了3次deadline)。
《總結與心得》
能走到這裡完全是意料之外(感謝主!)
在被很多公司刷掉拿到第一個offer時,我其實已經決定要去那間公司。
沒想到結局居然來個大逆轉,只能說不到最後千萬不要放棄!
與其他的SWE求職者相比我的履歷其實還蠻平庸的,
沒參加過任何競賽、也沒有企業實習的經驗,
大學時我幾乎都專注在課業上跟大三時當助教。
能挺過這麼多面試真的要感謝那些熱心栽培我們的教授!
這次的求職經驗也讓我體會到即使沒有很豐富的背景,
只要能把基礎學問顧好(特別是Data Structure跟Algorithm!)
以及擁有無比的熱誠,終究是能找到自己的天下。
當然進到公司只是個開始,日後還有很多要學習的地方,
我也期許自己在進到公司前能夠持續精進自己。
「人生有夢,築夢踏實」
與大家共勉之
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 124.35.221.18 (日本)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1561700251.A.474.html
推
06/28 13:46,
5年前
, 1F
06/28 13:46, 1F
推
06/28 13:48,
5年前
, 2F
06/28 13:48, 2F
推
06/28 13:49,
5年前
, 3F
06/28 13:49, 3F
推
06/28 14:13,
5年前
, 4F
06/28 14:13, 4F
→
06/28 14:13,
5年前
, 5F
06/28 14:13, 5F
恩,是的~
推
06/28 14:33,
5年前
, 6F
06/28 14:33, 6F
推
06/28 14:45,
5年前
, 7F
06/28 14:45, 7F
推
06/28 14:55,
5年前
, 8F
06/28 14:55, 8F
推
06/28 15:04,
5年前
, 9F
06/28 15:04, 9F
推
06/28 15:07,
5年前
, 10F
06/28 15:07, 10F
推
06/28 15:10,
5年前
, 11F
06/28 15:10, 11F
大概是因為第一次參加onsite的緣故,我對自己的表現沒什麼自信的(笑
推
06/28 15:29,
5年前
, 12F
06/28 15:29, 12F
→
06/28 15:43,
5年前
, 13F
06/28 15:43, 13F
電資沒有不見,只是變成了不同的樣子!!
推
06/28 15:43,
5年前
, 14F
06/28 15:43, 14F
推
06/28 15:54,
5年前
, 15F
06/28 15:54, 15F
推
06/28 15:54,
5年前
, 16F
06/28 15:54, 16F
推
06/28 15:56,
5年前
, 17F
06/28 15:56, 17F
推
06/28 16:00,
5年前
, 18F
06/28 16:00, 18F
推
06/28 16:23,
5年前
, 19F
06/28 16:23, 19F
推
06/28 16:24,
5年前
, 20F
06/28 16:24, 20F
推
06/28 16:30,
5年前
, 21F
06/28 16:30, 21F
推
06/28 16:37,
5年前
, 22F
06/28 16:37, 22F
推
06/28 16:39,
5年前
, 23F
06/28 16:39, 23F
→
06/28 16:39,
5年前
, 24F
06/28 16:39, 24F
我不太確定CLRS那章的內容是什麼,
這題我記得是當初在上OOP時教授偶然間提到的。
簡單來說exponentially的好處在於insert時的time complexity是O(n),
而linearly的情況是O(n^2)。
→
06/28 16:50,
5年前
, 25F
06/28 16:50, 25F
推
06/28 16:57,
5年前
, 26F
06/28 16:57, 26F
→
06/28 16:57,
5年前
, 27F
06/28 16:57, 27F
→
06/28 16:58,
5年前
, 28F
06/28 16:58, 28F
待遇的話可以參考glassdoor上面的數字,
語言的話Google完全不會日文也可,大家基本上都是用英文溝通。
當然你如果想搭訕營業部門的帥哥美女的話,會日文應該蠻吃香的(笑
推
06/28 16:59,
5年前
, 29F
06/28 16:59, 29F
推
06/28 17:07,
5年前
, 30F
06/28 17:07, 30F
推
06/28 17:09,
5年前
, 31F
06/28 17:09, 31F
推
06/28 18:04,
5年前
, 32F
06/28 18:04, 32F
推
06/28 18:37,
5年前
, 33F
06/28 18:37, 33F
推
06/28 18:39,
5年前
, 34F
06/28 18:39, 34F
推
06/28 18:57,
5年前
, 35F
06/28 18:57, 35F
→
06/28 18:57,
5年前
, 36F
06/28 18:57, 36F
我記得主要有Search、Ads、Maps、Chrome跟Android這幾個team,
而我被match到的是search team
推
06/28 19:59,
5年前
, 37F
06/28 19:59, 37F
真的!多虧有交大扎實的訓練(作業)
推
06/28 20:18,
5年前
, 38F
06/28 20:18, 38F
推
06/28 22:01,
5年前
, 39F
06/28 22:01, 39F
推
06/28 22:10,
5年前
, 40F
06/28 22:10, 40F
推
06/28 22:36,
5年前
, 41F
06/28 22:36, 41F
※ 編輯: howardtzou (124.35.221.18 日本), 06/28/2019 23:10:00
推
06/29 03:01,
5年前
, 42F
06/29 03:01, 42F
推
06/29 05:23,
5年前
, 43F
06/29 05:23, 43F
推
06/29 07:46,
5年前
, 44F
06/29 07:46, 44F
推
06/29 09:45,
5年前
, 45F
06/29 09:45, 45F
推
06/29 10:12,
5年前
, 46F
06/29 10:12, 46F
推
06/29 10:26,
5年前
, 47F
06/29 10:26, 47F
推
06/29 11:00,
5年前
, 48F
06/29 11:00, 48F
推
06/29 11:46,
5年前
, 49F
06/29 11:46, 49F
→
06/29 11:46,
5年前
, 50F
06/29 11:46, 50F
我當下就是用類似歸納法的方式導出答案
看來效果顯著
推
06/29 12:38,
5年前
, 51F
06/29 12:38, 51F
推
06/29 18:16,
5年前
, 52F
06/29 18:16, 52F
→
06/29 20:26,
5年前
, 53F
06/29 20:26, 53F
推
06/30 01:11,
5年前
, 54F
06/30 01:11, 54F
→
06/30 01:11,
5年前
, 55F
06/30 01:11, 55F
我記得當時有要求用iterative的方式
不過勤解題的話寫出這兩種方法應該跟喝水一樣輕鬆~
推
06/30 01:53,
5年前
, 56F
06/30 01:53, 56F
推
06/30 14:32,
5年前
, 57F
06/30 14:32, 57F
謝謝!這版果然有不少Googler在淺水(笑
※ 編輯: howardtzou (124.35.221.18 日本), 06/30/2019 19:12:46
推
06/30 22:35,
5年前
, 58F
06/30 22:35, 58F
推
07/01 01:27,
5年前
, 59F
07/01 01:27, 59F
推
07/01 02:16,
5年前
, 60F
07/01 02:16, 60F
推
07/01 08:34,
5年前
, 61F
07/01 08:34, 61F
推
07/01 09:36,
5年前
, 62F
07/01 09:36, 62F
推
07/01 10:10,
5年前
, 63F
07/01 10:10, 63F
推
07/01 23:51,
5年前
, 64F
07/01 23:51, 64F
推
07/02 14:16,
5年前
, 65F
07/02 14:16, 65F
推
07/03 03:52,
5年前
, 66F
07/03 03:52, 66F
→
07/03 03:52,
5年前
, 67F
07/03 03:52, 67F
→
07/03 03:52,
5年前
, 68F
07/03 03:52, 68F
推
07/06 01:50,
5年前
, 69F
07/06 01:50, 69F
推
07/06 14:05,
5年前
, 70F
07/06 14:05, 70F
推
07/06 22:23,
5年前
, 71F
07/06 22:23, 71F
推
07/29 02:14,
5年前
, 72F
07/29 02:14, 72F
推
05/07 02:19,
5年前
, 73F
05/07 02:19, 73F
Soft_Job 近期熱門文章
PTT職涯區 即時熱門文章
17
40