日本高盛, Line, Google 面試心得分享 - offer
By Iris
at 2018-06-10T20:28
at 2018-06-10T20:28
Table of Contents
各位大大好,先說結論,因為另外兩間沒上,我只有一個選擇,最後加入 Line。
背景:
小弟我 112 資工系大學+碩士畢業,期間從無到有做過上線的 Android App 與整個 Bac
kend;碩一生碩二的暑假有到日本的 R 社實習兩個月;也自幹全端做過自己的上線 Web
Application;打過 Kaggle 幾場比賽。
雖然我大學是轉系生,但自問碩士畢業之際,對於前端、後端、App、Machine Learning
均有相當的實作經驗,實力上,應該不輸一般的畢業生。
於是,因為碩班暑假到 R 社實習的緣故,我拿到 Return Offer,在碩班一畢業之後就來
到 R 社工作一年半,在此時機,開始轉職,從轉職最初時 Leetcode 刷了 200題 以上,
到最後Google Japan Onsite Interview時 Leetcode 刷了329 題。
以下依據時間順序,分享這 3 間公司面試心得。
Goldman Sachs(高盛)
這間公司的機會一開始是在 2017 年 7 月有 Head Hunter 聯絡我。那時 Job Descipti
on 上寫得很模糊,大抵就是要找 Java 後端與時下前端都懂的 Gerneral Software Engi
nner,因為公司名氣大,我便願意嘗試。
與 Head Hunter 投了之後,無聲無息好幾個月,直到約 11 月 Head Hunter 才突然聯絡
我。他跟我說:因為 GS 內部人事系統變動,導致履歷未送達,最近才修正之類的,總之
,很快安排了 12 月第一次線上面試。
第一次線上面試時間一小時,跟香港那邊的印度工程師面試,我選擇使用的語言為 Java
。形式是線上共用一個線上可Compile的 IDE,然後他們會打電話過來,也就是一般的 Ph
one Interview。
第一題我記得是寫一個辨別 input 是不是 power of 10 的函數。第二題我忘了,但也是
Leetcode easy 等級。
完成兩題之後,大約還剩 20 分鐘,他說:第一次 phone interview 只要解決這兩題,
就算過關,但你要不要挑戰下一次 interview 難度的題目? 我說好,他就丟給我一題著
名的考題 Implement Hashmap。
然而,其中牽扯到 Java Generic 的部分,我其實不熟悉,所以在那邊卡了一陣子,20
分鐘內沒能解出來,但總之,第一次 Interview Pass。
接下來約了第二次的線上 Interview,我被高盛的工程師放鴿子(好像是香港印度工程師
生病)。接下來又補約一次線上 Interview,我「又」被放鴿子(我請了兩次的假都白費
了)。
終於,被放鴿子兩次後,下一次電話面試,總算有來人了。題目我一看:Implement Hash
map!看來他們面試官之間沒有溝通好,我因為有了準備,就能用 Generic 的語法解決了
。
通過兩次線上面試後,接下來就是去六本木 Office Onsite Interview。這個第三關是兩
小時,大抵就是看我的履歷,問我相關的問題。也當場給我紙,考了一題 Fibonacchi 數
列用 Recursion、While loop、Dynamic Programming(就是 Recursion 但是有把答案記
下來)來解,算是很簡單。
通過後來到第四關 3 小時的 Onsite Interview。前兩個小時,也是問一些履歷上的問題
,或是他們問問題。GS 的人特別會問很多關於 Support 情境的問題,就是說如果 Clien
t 使用系統突然出了問題,你這個工程師該如何解決?還有,也討論了很多關於開發流程
的 Pros & Cons。
到最後一小時,Hiring Manager 來了,是一個叫 Ben 的英國人。他跟我說:Congratula
tions! 你通過了。然後他跟香港那邊的一個部下叫做 Michael 跟我討論一些問題,問我
對金融理解不理解之類的。
經過這四關,尤其那個 Ben 已經跟我講我通過了,我本來以為不會再有關卡了,結果一
週後他們要加第五關,叫做 Bar Raiser。於是我跟香港那邊的一個人線上 Confernce Ca
ll 進行第五關,也是他問我一堆情境的問題,Support 的問題,如何 Debug,或是如何
設計系統讓它不會出錯之類的。
第五關過後,我的 Head Hunter 跟我說:沒問題!Positive Feedback。接著,我跟他等
了一個月!期間我的 Head Hunter 每日都追蹤進度,但總是得到什麼紐約在審核、在跑
流程之類的罐頭答案。
一個月後,他們又把我叫去六本木,進行第 6 次的面試,這一次面試的兩個人,我之前
都見過,他們說:想問我有沒有什麼問題?
我那時心裡覺得非常靠北,你們把我晾在那邊一個月,現在叫我過來問你們問題?我根本
沒什麼問題好問啊!不過我還是勉強生出一些問題,但我覺得我並不能得到滿意的答案。
例如我問說:我能看看之後我要做的系統的 Demo嗎?這樣我可能比較可以有概念。這樣
的問題,他們也拒絕 Demo,所以,我對於我假設加入,到底要做什麼系統,始終都很模
糊,自然也問不出什麼好問題。
在第六關之後,仍舊無聲無息,剛好那時 Line 的 Offer 正式來了,Google Japan 的拒
絕也到了,我就再也不理 GS 這邊。後來 Head Hunter 跟我說:Ben 覺得你還是太資淺
了,所以最終不給你 Offer。
我總結一下 GS Tokyo 的經驗,他們浪費我無數時間,包括放我鴿子,一直叫我過去 Off
ice 講一些廢話,然後香港那邊的 HR 從始至終不回我 Email,最後的拒絕也非常不尊重
人。對於這間公司,我只能說,Tech 的人要進去的話要三思,感覺他們對於 Tech 太不
尊重了,我給 0 分。
Line Tokyo
Line 也是透過 Head Hunter 依據我的興趣,幫我丟了一個職位在 Engineering Efficie
ncy,也就是 DevOps 相關的職位。
首先會有一個線上測驗,3 小時寫 5 題,是這 5 題。
1. implement a method to calculate the surface of a rectangle
2. implement the memcpy function from the C standard library
3. implement a method to find whether or not a given directed graph has a cycl
e of a given length
4. implement a least-recently-used cache as a data structure
5. implement a queue that tracks its minimum value as a data structure
基本上,除了第一題是送分之外,另外 4 題我估計是 leetcode easy ~ medium 的程度
,因為他有一些 Class 設計的題目(4 與 5),就不是那麼簡單,需要考慮一些東西。
我記得我就慢慢地花了 2 小時完成這 5題。另外,我聽同事說,最近這 5 題已經改掉了
,改得更簡單,另外小資訊分享,同事跟我說,Line 第一關的難度是:韓國新畢業生 >
韓國中途轉職 > 日本新畢業生 > 日本中途轉職,因為他說韓國那邊的軟體公司太少了,
新畢業生的選擇不多,導致競爭激烈,必須透過難的考題篩選人。
通過之後,他會寄來一份只能花 30 分鐘回答的線上題目卷,有 8 題。要我在第一次 On
site Interview 之前回答完。題目裡面大概是系統相關的,例如 Thread & Process的差
異;如果要你設計一個 Echo Talk Server,你會選用怎樣的兩種技術;一些基本資料結
構或 Sorting 的複雜度。
在第一次 Onsite Interview,兩個現在的我同事來跟我進行非常深入的技術探討。問題
比如說,Thread & Process 哪一個通常比較快?什麼時候用 Process 去跑會比較快?你
用過 Java Annotation 嗎?他的實作原理是怎麼樣?請解釋 Inversion of Control;為
什麼時下轉用 Spring Boot ,不用以前舊的 Spring Framework ?請解釋你自己做的 We
b Application的資料庫 Design,請比較 Nginx & Apache Web Server,然後也會把那 3
0 分鐘回答的線上題目卷拿來討論 ....
那次 Interview 花了 2 小時。通過之後,最後一次 Onsite Interview是與另外一個 Te
am 的 Manager,這一關就比較輕鬆,有問了一些適性問題,離如我的強項與弱項,但也
有討論一些技術問題,如 Container 的優點與缺點。
最後這關結束後,漂亮的人資姊姊就進來跟我解釋一些公司福利相關的事情,幾天後收到
Pre-Offer,接著他們會做 Backgroud Check,都沒問題之後,就發正式 Offer,而條件
都跟Pre-Offer上面寫的一樣。
Google Japan
我是一月底自己投 Google Japan 的這個職位 Geo, Software Enginner,沒想到,Googl
e 的 Recruiter 真的有在看履歷,所以大概一兩週後,Recruiter 聯絡我。
她說她查到我 2017 年有投 Google Japan New Graduate的職位,但是發現後來終止了,
想要問我確認是怎麼回事(因為綜所周知,投 Google 的職位有一個一年冷卻期)。
我跟他解釋說,去年我以為我還是 New Graduate,所以我投了那個職位,通過 Phone In
terview之後,被 Recruiter 確認說我已經在工作了,資格不符,所以那次申請就停在那
裡。
順便講一下去年 Phone Interview 的考題,45分鐘 Google Doc Programming。二維平面
上有很多的幫浦,現在有一條 y = ? 的 pipeline,請問 y = ? ,可以使所有幫浦到那
個 pipeline 的距離和最短?OK,答案是所有幫浦 y 的值的中位數。
再來,現在有 y = y1 & y = y2 兩條 pipeline,任一個幫浦的到 pipeline 的距離是看
他到哪一個 pipeline 比較近,就算那個距離。這樣的話,這兩條 pipeline 為何可以使
所有幫浦到 pipeline 的距離和最短?我記得因為我不知道那兩個群如何分,就用了一個
暴力的方式去找出兩個群,那個別群裡面的中位數就是那兩條 pipeline。
在進階題沒有解得很好的情況下,他最後問我要聽再進階嗎?再進階就是 y = ?, x = ?
這兩條 pipeline 為何可以使所有幫浦到 pipeline 的距離和最短?
不過我去年還是通過電話面試了,而且是在電話面試後一兩小時就收到通過的消息。
好,回到今年,Recruiter 跟我說,想通電話確認,通電話的時候,她竟然還問了我一些
技術的問題,例如就是一些 Sorting 的複雜度、AVL Tree的搜尋複雜度、請講出兩個Jav
a 有Implement Map Interface 的 Concrete Class。讓我嚇了一跳,但我還是有答出來
。
通完電話後,她說我去年的成績可以直接拿來用,不必再 Phone Interview,所以直接邀
請我去 Onsite Interview。
敲定日期後,我就開始在多刷一點題直到 329 題。然後 Google Japan 現在的面試會給
一台Chrome Book在那裡了,所以,自己可以選擇要用白板或是打在電腦上呈像出來。每
一輪是 45 分鐘,共 5 輪。
(以下的題目我就稍微講自己的解法就好,不然很多內容...)
當天第一輪的題目是日本人面試官來問的,在一個 Sorted Integer Array中,只有一個
數字出現一次,其他數字都出現兩次,請找出那個出現一次的數字。這題經過面試官的幫
忙,最終最佳解是 Space Complexity O(1), Time Complexity O(lgN),要用 Loop 來做
Binary Search。
第二輪題目是西方人面試官,有一個國王家族譜,假設國王死了,繼承順位是長子,除非
長子以下的後代全死光了,才會輪到年紀更小的兄弟。請設計一個 Class及資料結構,讓
我們可以很快速的找到下一個繼承人。
這題我用 Tree,每個 Node裡面有一個 PriorityQueue 的資料結構來實現。寫完後他要
我分析自己的資料結構及 Function 好壞。
這一題解完後,還有 10 分鐘,他出一題有一段很長的 Text,給予一個行寬,例如 10 c
haracters,請把這段 Text 依據行寬換行。每一個英文字不能被截掉,然後空白 space
出現在每一行的最後的話,就要拿掉。
這題我沒解完,但最後他說,你講一下你現在寫的 Code 大概有哪裡要注意還有 bug 會
在哪,我就跟他解釋一下。
第三輪一個非日本人面試官,進來先跟我閒聊了一下我做的 Project,又問我了一些 OOP
的概念,例如什麼時候用 public, protected, private,還有Inheritance。閒聊完畢後
,他問我寫一個可以處理大數加減的 Class。
我跟他講,一般可以用 BigInteger 這個 Class,而我要自己寫的話會用String來存數字
,處理的時候才用自己的處理。然後 Code 寫完之後,他就要我分析哪邊會最慢,如何優
化,我就說改用StringBuilder,做一些如果數字很小就用 Built-In type的integer去處
理就好之類的。
但這一關,我自己感覺跟面試官溝通沒有很順利,他好像有點不太能會意。
接下來中午吃飯休息時間,有另一個日本人工程師帶我去會議室旁邊的餐廳拿 Buffet,
然後我們回到會議室裡面來吃,又跟他聊了一個小時。
下午第一場,一個臉非常嚴肅的日本人面試官。他就是這篇 Amazon 學長
https://www.ptt.cc/bbs/Soft_Job/M.1486241833.A.6D3.html
提到的第二位面試官。然後他也問了一模一樣的問題。
1-1. 什麼是中位數?什麼狀況下會考慮使用中位數而非平均數?
1-2. 寫一個函式吃三個數字吐其中的中位數、並附上 unit test 測資
1-3. 你的函式執行一次最多會用到幾個 > 、 < 或 =
2. 設計一個負責收集 log 的系統;這個系統要能收集從多個伺服器傳來的 log 、
並讓工程師調出指定時段內的所有 log
在中位數這題,我一開始直接下去硬比,最多花3次比較。
不過,我還被多問了一個問題,就是有一個飛鏢遊戲,你投下去可能會得分 10, 5, 3, 1
,你玩了 N 輪,所有可能的分數為何?請寫一個 Function 處理。
最後一關,西方人,是 Leetcoe #766
https://leetcode.com/problems/toeplitz-matrix/description/,Easy等級。瞬間寫完
之後,他開始問我說如果資料量非常大,是 Streaming進來
的,你的Memory 只夠儲存一行的話,你該怎麼處理。
之後我跟他說,可能可以用MapReduce的概念,每一個 Node 只比較兩行之類的,最後在
整合起來。總之,之後我跟他都在討論如果 Memory 不夠裝下整個 Matrix的話,該怎麼
辦。
五關通過之後,我跟 Recruiter 講,因為我拿到 GS的 Offer(那時候還以為我拿到了)
,所以希望 Google 這邊盡快知道結果。Recruiter跟我講:OK!於是她開始跟我拿我
的資料,例如年薪、大學與碩士的成績單!,Google 內部推薦人以及外部推薦人,啊~
我忘了講的是,在我收到 Recruiter的信之後,我有詢問我在 Google Japan認識的學長
,他說願意幫我轉成內部 Referral,所以我後來的申請已經轉為內部 Referral。
過了兩週後,Recruiter 先線上跟我講等一下可以打電話給我嗎,然後就打電話來告訴我
Hiring Committee 還是把我拒絕了。申請至此結束,學長跟我說,我到蠻後面的 Hirin
g Committee 階段,但因為 Google Policy 不能給 Candidate Feedback,所以我也還是
不知道我哪裡可以做得更好。
結論:
我目前在 Line 待得覺得還不錯,相比於 R 社,Line的好處有自由上下班時間、Work Fr
om Home、每週日文課、更多的出差機會(我明天就要出差回台灣..),很多 Developer
meetup 可以充實自己、較高的薪水,可能 R 社的優勢就是好吃的餐點以及人情味吧。
不過兩家都是好公司,如果有版友對於日本就業有興趣的話,我現在都可以介紹這兩家的
機會,我也常常在 Facebook 上 Po 日本這邊台灣人圈子的生活上的一些心得感想,歡迎
追蹤或與我聯繫 https://bit.ly/2MdbWM0。
--
背景:
小弟我 112 資工系大學+碩士畢業,期間從無到有做過上線的 Android App 與整個 Bac
kend;碩一生碩二的暑假有到日本的 R 社實習兩個月;也自幹全端做過自己的上線 Web
Application;打過 Kaggle 幾場比賽。
雖然我大學是轉系生,但自問碩士畢業之際,對於前端、後端、App、Machine Learning
均有相當的實作經驗,實力上,應該不輸一般的畢業生。
於是,因為碩班暑假到 R 社實習的緣故,我拿到 Return Offer,在碩班一畢業之後就來
到 R 社工作一年半,在此時機,開始轉職,從轉職最初時 Leetcode 刷了 200題 以上,
到最後Google Japan Onsite Interview時 Leetcode 刷了329 題。
以下依據時間順序,分享這 3 間公司面試心得。
Goldman Sachs(高盛)
這間公司的機會一開始是在 2017 年 7 月有 Head Hunter 聯絡我。那時 Job Descipti
on 上寫得很模糊,大抵就是要找 Java 後端與時下前端都懂的 Gerneral Software Engi
nner,因為公司名氣大,我便願意嘗試。
與 Head Hunter 投了之後,無聲無息好幾個月,直到約 11 月 Head Hunter 才突然聯絡
我。他跟我說:因為 GS 內部人事系統變動,導致履歷未送達,最近才修正之類的,總之
,很快安排了 12 月第一次線上面試。
第一次線上面試時間一小時,跟香港那邊的印度工程師面試,我選擇使用的語言為 Java
。形式是線上共用一個線上可Compile的 IDE,然後他們會打電話過來,也就是一般的 Ph
one Interview。
第一題我記得是寫一個辨別 input 是不是 power of 10 的函數。第二題我忘了,但也是
Leetcode easy 等級。
完成兩題之後,大約還剩 20 分鐘,他說:第一次 phone interview 只要解決這兩題,
就算過關,但你要不要挑戰下一次 interview 難度的題目? 我說好,他就丟給我一題著
名的考題 Implement Hashmap。
然而,其中牽扯到 Java Generic 的部分,我其實不熟悉,所以在那邊卡了一陣子,20
分鐘內沒能解出來,但總之,第一次 Interview Pass。
接下來約了第二次的線上 Interview,我被高盛的工程師放鴿子(好像是香港印度工程師
生病)。接下來又補約一次線上 Interview,我「又」被放鴿子(我請了兩次的假都白費
了)。
終於,被放鴿子兩次後,下一次電話面試,總算有來人了。題目我一看:Implement Hash
map!看來他們面試官之間沒有溝通好,我因為有了準備,就能用 Generic 的語法解決了
。
通過兩次線上面試後,接下來就是去六本木 Office Onsite Interview。這個第三關是兩
小時,大抵就是看我的履歷,問我相關的問題。也當場給我紙,考了一題 Fibonacchi 數
列用 Recursion、While loop、Dynamic Programming(就是 Recursion 但是有把答案記
下來)來解,算是很簡單。
通過後來到第四關 3 小時的 Onsite Interview。前兩個小時,也是問一些履歷上的問題
,或是他們問問題。GS 的人特別會問很多關於 Support 情境的問題,就是說如果 Clien
t 使用系統突然出了問題,你這個工程師該如何解決?還有,也討論了很多關於開發流程
的 Pros & Cons。
到最後一小時,Hiring Manager 來了,是一個叫 Ben 的英國人。他跟我說:Congratula
tions! 你通過了。然後他跟香港那邊的一個部下叫做 Michael 跟我討論一些問題,問我
對金融理解不理解之類的。
經過這四關,尤其那個 Ben 已經跟我講我通過了,我本來以為不會再有關卡了,結果一
週後他們要加第五關,叫做 Bar Raiser。於是我跟香港那邊的一個人線上 Confernce Ca
ll 進行第五關,也是他問我一堆情境的問題,Support 的問題,如何 Debug,或是如何
設計系統讓它不會出錯之類的。
第五關過後,我的 Head Hunter 跟我說:沒問題!Positive Feedback。接著,我跟他等
了一個月!期間我的 Head Hunter 每日都追蹤進度,但總是得到什麼紐約在審核、在跑
流程之類的罐頭答案。
一個月後,他們又把我叫去六本木,進行第 6 次的面試,這一次面試的兩個人,我之前
都見過,他們說:想問我有沒有什麼問題?
我那時心裡覺得非常靠北,你們把我晾在那邊一個月,現在叫我過來問你們問題?我根本
沒什麼問題好問啊!不過我還是勉強生出一些問題,但我覺得我並不能得到滿意的答案。
例如我問說:我能看看之後我要做的系統的 Demo嗎?這樣我可能比較可以有概念。這樣
的問題,他們也拒絕 Demo,所以,我對於我假設加入,到底要做什麼系統,始終都很模
糊,自然也問不出什麼好問題。
在第六關之後,仍舊無聲無息,剛好那時 Line 的 Offer 正式來了,Google Japan 的拒
絕也到了,我就再也不理 GS 這邊。後來 Head Hunter 跟我說:Ben 覺得你還是太資淺
了,所以最終不給你 Offer。
我總結一下 GS Tokyo 的經驗,他們浪費我無數時間,包括放我鴿子,一直叫我過去 Off
ice 講一些廢話,然後香港那邊的 HR 從始至終不回我 Email,最後的拒絕也非常不尊重
人。對於這間公司,我只能說,Tech 的人要進去的話要三思,感覺他們對於 Tech 太不
尊重了,我給 0 分。
Line Tokyo
Line 也是透過 Head Hunter 依據我的興趣,幫我丟了一個職位在 Engineering Efficie
ncy,也就是 DevOps 相關的職位。
首先會有一個線上測驗,3 小時寫 5 題,是這 5 題。
1. implement a method to calculate the surface of a rectangle
2. implement the memcpy function from the C standard library
3. implement a method to find whether or not a given directed graph has a cycl
e of a given length
4. implement a least-recently-used cache as a data structure
5. implement a queue that tracks its minimum value as a data structure
基本上,除了第一題是送分之外,另外 4 題我估計是 leetcode easy ~ medium 的程度
,因為他有一些 Class 設計的題目(4 與 5),就不是那麼簡單,需要考慮一些東西。
我記得我就慢慢地花了 2 小時完成這 5題。另外,我聽同事說,最近這 5 題已經改掉了
,改得更簡單,另外小資訊分享,同事跟我說,Line 第一關的難度是:韓國新畢業生 >
韓國中途轉職 > 日本新畢業生 > 日本中途轉職,因為他說韓國那邊的軟體公司太少了,
新畢業生的選擇不多,導致競爭激烈,必須透過難的考題篩選人。
通過之後,他會寄來一份只能花 30 分鐘回答的線上題目卷,有 8 題。要我在第一次 On
site Interview 之前回答完。題目裡面大概是系統相關的,例如 Thread & Process的差
異;如果要你設計一個 Echo Talk Server,你會選用怎樣的兩種技術;一些基本資料結
構或 Sorting 的複雜度。
在第一次 Onsite Interview,兩個現在的我同事來跟我進行非常深入的技術探討。問題
比如說,Thread & Process 哪一個通常比較快?什麼時候用 Process 去跑會比較快?你
用過 Java Annotation 嗎?他的實作原理是怎麼樣?請解釋 Inversion of Control;為
什麼時下轉用 Spring Boot ,不用以前舊的 Spring Framework ?請解釋你自己做的 We
b Application的資料庫 Design,請比較 Nginx & Apache Web Server,然後也會把那 3
0 分鐘回答的線上題目卷拿來討論 ....
那次 Interview 花了 2 小時。通過之後,最後一次 Onsite Interview是與另外一個 Te
am 的 Manager,這一關就比較輕鬆,有問了一些適性問題,離如我的強項與弱項,但也
有討論一些技術問題,如 Container 的優點與缺點。
最後這關結束後,漂亮的人資姊姊就進來跟我解釋一些公司福利相關的事情,幾天後收到
Pre-Offer,接著他們會做 Backgroud Check,都沒問題之後,就發正式 Offer,而條件
都跟Pre-Offer上面寫的一樣。
Google Japan
我是一月底自己投 Google Japan 的這個職位 Geo, Software Enginner,沒想到,Googl
e 的 Recruiter 真的有在看履歷,所以大概一兩週後,Recruiter 聯絡我。
她說她查到我 2017 年有投 Google Japan New Graduate的職位,但是發現後來終止了,
想要問我確認是怎麼回事(因為綜所周知,投 Google 的職位有一個一年冷卻期)。
我跟他解釋說,去年我以為我還是 New Graduate,所以我投了那個職位,通過 Phone In
terview之後,被 Recruiter 確認說我已經在工作了,資格不符,所以那次申請就停在那
裡。
順便講一下去年 Phone Interview 的考題,45分鐘 Google Doc Programming。二維平面
上有很多的幫浦,現在有一條 y = ? 的 pipeline,請問 y = ? ,可以使所有幫浦到那
個 pipeline 的距離和最短?OK,答案是所有幫浦 y 的值的中位數。
再來,現在有 y = y1 & y = y2 兩條 pipeline,任一個幫浦的到 pipeline 的距離是看
他到哪一個 pipeline 比較近,就算那個距離。這樣的話,這兩條 pipeline 為何可以使
所有幫浦到 pipeline 的距離和最短?我記得因為我不知道那兩個群如何分,就用了一個
暴力的方式去找出兩個群,那個別群裡面的中位數就是那兩條 pipeline。
在進階題沒有解得很好的情況下,他最後問我要聽再進階嗎?再進階就是 y = ?, x = ?
這兩條 pipeline 為何可以使所有幫浦到 pipeline 的距離和最短?
不過我去年還是通過電話面試了,而且是在電話面試後一兩小時就收到通過的消息。
好,回到今年,Recruiter 跟我說,想通電話確認,通電話的時候,她竟然還問了我一些
技術的問題,例如就是一些 Sorting 的複雜度、AVL Tree的搜尋複雜度、請講出兩個Jav
a 有Implement Map Interface 的 Concrete Class。讓我嚇了一跳,但我還是有答出來
。
通完電話後,她說我去年的成績可以直接拿來用,不必再 Phone Interview,所以直接邀
請我去 Onsite Interview。
敲定日期後,我就開始在多刷一點題直到 329 題。然後 Google Japan 現在的面試會給
一台Chrome Book在那裡了,所以,自己可以選擇要用白板或是打在電腦上呈像出來。每
一輪是 45 分鐘,共 5 輪。
(以下的題目我就稍微講自己的解法就好,不然很多內容...)
當天第一輪的題目是日本人面試官來問的,在一個 Sorted Integer Array中,只有一個
數字出現一次,其他數字都出現兩次,請找出那個出現一次的數字。這題經過面試官的幫
忙,最終最佳解是 Space Complexity O(1), Time Complexity O(lgN),要用 Loop 來做
Binary Search。
第二輪題目是西方人面試官,有一個國王家族譜,假設國王死了,繼承順位是長子,除非
長子以下的後代全死光了,才會輪到年紀更小的兄弟。請設計一個 Class及資料結構,讓
我們可以很快速的找到下一個繼承人。
這題我用 Tree,每個 Node裡面有一個 PriorityQueue 的資料結構來實現。寫完後他要
我分析自己的資料結構及 Function 好壞。
這一題解完後,還有 10 分鐘,他出一題有一段很長的 Text,給予一個行寬,例如 10 c
haracters,請把這段 Text 依據行寬換行。每一個英文字不能被截掉,然後空白 space
出現在每一行的最後的話,就要拿掉。
這題我沒解完,但最後他說,你講一下你現在寫的 Code 大概有哪裡要注意還有 bug 會
在哪,我就跟他解釋一下。
第三輪一個非日本人面試官,進來先跟我閒聊了一下我做的 Project,又問我了一些 OOP
的概念,例如什麼時候用 public, protected, private,還有Inheritance。閒聊完畢後
,他問我寫一個可以處理大數加減的 Class。
我跟他講,一般可以用 BigInteger 這個 Class,而我要自己寫的話會用String來存數字
,處理的時候才用自己的處理。然後 Code 寫完之後,他就要我分析哪邊會最慢,如何優
化,我就說改用StringBuilder,做一些如果數字很小就用 Built-In type的integer去處
理就好之類的。
但這一關,我自己感覺跟面試官溝通沒有很順利,他好像有點不太能會意。
接下來中午吃飯休息時間,有另一個日本人工程師帶我去會議室旁邊的餐廳拿 Buffet,
然後我們回到會議室裡面來吃,又跟他聊了一個小時。
下午第一場,一個臉非常嚴肅的日本人面試官。他就是這篇 Amazon 學長
https://www.ptt.cc/bbs/Soft_Job/M.1486241833.A.6D3.html
提到的第二位面試官。然後他也問了一模一樣的問題。
1-1. 什麼是中位數?什麼狀況下會考慮使用中位數而非平均數?
1-2. 寫一個函式吃三個數字吐其中的中位數、並附上 unit test 測資
1-3. 你的函式執行一次最多會用到幾個 > 、 < 或 =
2. 設計一個負責收集 log 的系統;這個系統要能收集從多個伺服器傳來的 log 、
並讓工程師調出指定時段內的所有 log
在中位數這題,我一開始直接下去硬比,最多花3次比較。
不過,我還被多問了一個問題,就是有一個飛鏢遊戲,你投下去可能會得分 10, 5, 3, 1
,你玩了 N 輪,所有可能的分數為何?請寫一個 Function 處理。
最後一關,西方人,是 Leetcoe #766
https://leetcode.com/problems/toeplitz-matrix/description/,Easy等級。瞬間寫完
之後,他開始問我說如果資料量非常大,是 Streaming進來
的,你的Memory 只夠儲存一行的話,你該怎麼處理。
之後我跟他說,可能可以用MapReduce的概念,每一個 Node 只比較兩行之類的,最後在
整合起來。總之,之後我跟他都在討論如果 Memory 不夠裝下整個 Matrix的話,該怎麼
辦。
五關通過之後,我跟 Recruiter 講,因為我拿到 GS的 Offer(那時候還以為我拿到了)
,所以希望 Google 這邊盡快知道結果。Recruiter跟我講:OK!於是她開始跟我拿我
的資料,例如年薪、大學與碩士的成績單!,Google 內部推薦人以及外部推薦人,啊~
我忘了講的是,在我收到 Recruiter的信之後,我有詢問我在 Google Japan認識的學長
,他說願意幫我轉成內部 Referral,所以我後來的申請已經轉為內部 Referral。
過了兩週後,Recruiter 先線上跟我講等一下可以打電話給我嗎,然後就打電話來告訴我
Hiring Committee 還是把我拒絕了。申請至此結束,學長跟我說,我到蠻後面的 Hirin
g Committee 階段,但因為 Google Policy 不能給 Candidate Feedback,所以我也還是
不知道我哪裡可以做得更好。
結論:
我目前在 Line 待得覺得還不錯,相比於 R 社,Line的好處有自由上下班時間、Work Fr
om Home、每週日文課、更多的出差機會(我明天就要出差回台灣..),很多 Developer
meetup 可以充實自己、較高的薪水,可能 R 社的優勢就是好吃的餐點以及人情味吧。
不過兩家都是好公司,如果有版友對於日本就業有興趣的話,我現在都可以介紹這兩家的
機會,我也常常在 Facebook 上 Po 日本這邊台灣人圈子的生活上的一些心得感想,歡迎
追蹤或與我聯繫 https://bit.ly/2MdbWM0。
--
All Comments
By Joe
at 2018-06-13T01:10
at 2018-06-13T01:10
By Rae
at 2018-06-15T22:27
at 2018-06-15T22:27
By Isla
at 2018-06-17T07:27
at 2018-06-17T07:27
By Harry
at 2018-06-19T19:31
at 2018-06-19T19:31
By Dinah
at 2018-06-23T07:44
at 2018-06-23T07:44
By Mason
at 2018-06-25T14:25
at 2018-06-25T14:25
By Brianna
at 2018-06-26T19:13
at 2018-06-26T19:13
By Oliver
at 2018-06-30T10:48
at 2018-06-30T10:48
By Iris
at 2018-07-05T06:35
at 2018-07-05T06:35
By Valerie
at 2018-07-06T03:06
at 2018-07-06T03:06
By Noah
at 2018-07-06T12:26
at 2018-07-06T12:26
By Rae
at 2018-07-09T04:11
at 2018-07-09T04:11
By Jacob
at 2018-07-13T21:29
at 2018-07-13T21:29
By Rebecca
at 2018-07-15T11:29
at 2018-07-15T11:29
By Andrew
at 2018-07-18T12:05
at 2018-07-18T12:05
By Charlie
at 2018-07-19T00:38
at 2018-07-19T00:38
By Xanthe
at 2018-07-19T08:35
at 2018-07-19T08:35
By Puput
at 2018-07-20T11:18
at 2018-07-20T11:18
By Anthony
at 2018-07-21T14:42
at 2018-07-21T14:42
By Mia
at 2018-07-24T20:34
at 2018-07-24T20:34
By Gary
at 2018-07-28T20:40
at 2018-07-28T20:40
By Barb Cronin
at 2018-08-01T01:30
at 2018-08-01T01:30
By Suhail Hany
at 2018-08-01T05:17
at 2018-08-01T05:17
By Ethan
at 2018-08-01T15:11
at 2018-08-01T15:11
By Valerie
at 2018-08-04T17:18
at 2018-08-04T17:18
By Lucy
at 2018-08-06T19:39
at 2018-08-06T19:39
By Yuri
at 2018-08-07T10:02
at 2018-08-07T10:02
By Zora
at 2018-08-12T05:57
at 2018-08-12T05:57
By Margaret
at 2018-08-12T07:28
at 2018-08-12T07:28
By Belly
at 2018-08-12T11:11
at 2018-08-12T11:11
By Genevieve
at 2018-08-13T06:26
at 2018-08-13T06:26
By Puput
at 2018-08-17T11:20
at 2018-08-17T11:20
By Anonymous
at 2018-08-19T20:10
at 2018-08-19T20:10
By Carolina Franco
at 2018-08-22T08:24
at 2018-08-22T08:24
By Blanche
at 2018-08-23T06:45
at 2018-08-23T06:45
By Damian
at 2018-08-27T23:56
at 2018-08-27T23:56
By Annie
at 2018-08-31T15:41
at 2018-08-31T15:41
By Andy
at 2018-09-04T12:50
at 2018-09-04T12:50
By George
at 2018-09-07T08:38
at 2018-09-07T08:38
By Hamiltion
at 2018-09-08T10:31
at 2018-09-08T10:31
By Tracy
at 2018-09-11T18:48
at 2018-09-11T18:48
By Xanthe
at 2018-09-14T08:20
at 2018-09-14T08:20
By Emma
at 2018-09-16T02:09
at 2018-09-16T02:09
By Charlie
at 2018-09-16T06:32
at 2018-09-16T06:32
By Rachel
at 2018-09-19T19:44
at 2018-09-19T19:44
By Edward Lewis
at 2018-09-23T09:58
at 2018-09-23T09:58
By Michael
at 2018-09-28T01:06
at 2018-09-28T01:06
By Blanche
at 2018-09-28T08:11
at 2018-09-28T08:11
By Carol
at 2018-09-29T10:52
at 2018-09-29T10:52
By Hazel
at 2018-10-02T06:48
at 2018-10-02T06:48
By Dora
at 2018-10-02T13:04
at 2018-10-02T13:04
By Sarah
at 2018-10-05T09:59
at 2018-10-05T09:59
By Ophelia
at 2018-10-06T12:46
at 2018-10-06T12:46
By Olga
at 2018-10-10T09:52
at 2018-10-10T09:52
By Callum
at 2018-10-11T01:02
at 2018-10-11T01:02
By Candice
at 2018-10-13T04:35
at 2018-10-13T04:35
By Rae
at 2018-10-16T20:00
at 2018-10-16T20:00
By Erin
at 2018-10-20T01:40
at 2018-10-20T01:40
By Connor
at 2018-10-20T19:50
at 2018-10-20T19:50
By Hardy
at 2018-10-22T09:28
at 2018-10-22T09:28
By Aaliyah
at 2018-10-23T06:39
at 2018-10-23T06:39
Related Posts
徵台灣繁中Localization QA @ Cupertino
By Bethany
at 2018-06-10T14:42
at 2018-06-10T14:42
大陸深圳 研究單位 生醫
By Faithe
at 2018-06-10T12:31
at 2018-06-10T12:31
韓國工作簽E7經驗分享
By Lily
at 2018-06-08T14:50
at 2018-06-08T14:50
接受日本offer還是繼續在美國找
By Connor
at 2018-06-07T22:18
at 2018-06-07T22:18
澳門英皇娛樂集團徵 客戶關係專員
By Olive
at 2018-06-06T19:23
at 2018-06-06T19:23