[心得] Google TW SWE 面試心得分享

看板Soft_Job作者 (peterchen33)時間1年前 (2022/08/14 10:11), 1年前編輯推噓70(71115)
留言87則, 73人參與, 1年前最新討論串1/1
小弟是菜鳥工程師,一直以來從這個版上得到很多資訊。取之社會、用之社會。 現在正在某A牌半導體廠當RD,當初在美國讀書的時候就在這裡實習。雖然拿到了return offer,但因為疫情+自己犯蠢,違反了國際學生的工作規定,害自己丟了學生簽證只能離 開美國。還好公司幫我大力喬,讓我回台灣工作一年然後拿L1-B回美,現在正在辦綠卡。 因此我對老東家很感謝,也沒有跳槽的想法。但是好的工程師應該要持續精進,了解自己在 市場上的定位。因此我三不五時會投一些履歷出去,訓練自己面試的能力。 我現在的工作是曝光機(lithography)的自動化設計,主要撰寫LabVIEW:一種功能特殊 的圖像控制程式語言、C++用來開發圖像處理函式庫。視工作需求也會用到Python與E mbedded C。從赴美讀書以來就養成每天(幾乎啦)刷題的習慣,目前約1000題。 由於本身沒有美國或其他地方的居留權,所以申請的都是台灣的職位。年初的時候收到 Google還有其他數家公司的面試邀請,但只有Google有跑完整個面試流程,因此寫出來在 這裡跟各位分享。關於考題部分,因為有簽保密條款,所以不方便詳細透漏,還請見諒。 # HR contact #1 Google meet、30 min、中文 過履歷關之後,Google會指派一個HR來聯繫你,他會是你的對口人員,你之後的整個面試 流程都會由他來安排,有任何問題就直接找他(你原則上不會得到面試官的聯絡資訊)。 我的HR是一個上海site的小姐姐。簡單的自介之後,HR首先是從你的履歷和job application幫你選擇面試的方向。以我自己而例,HR給了我general SWE track和 embedded system track兩個選擇:前者考general coding;後者除了考coding(應該是C )外還會問一些firmware domain knowledge。 我選general SWE track,接著HR問我要寫什麼語言?基本上常見的語言都可以,但他建 議寫C++,因為台灣硬體部門多,寫C++的面試者在team match時比較容易被雀屏中選。然 而我選Python,畢竟人生苦短,戰士有選擇戰場的權利。HR也提到:如果面試到一半想換 個語言來寫,也是可以的。 敲定細節之後就排第一次phone interview的時間:給你一個表單,讓你選幾個有空的 time slot來排面試。總之就這樣進入正式的面試流程。 # Phone interview - coding Google meet、45 min、不限語言(中、英) 這裡你會收到兩個連結,第一是google meet、第二是interview board,就是一個特化用 來寫程式的文件檔,沒有偵錯跟執行的功能,完全就是紙上談兵。由此可見,Google的 coding interview要的不是求職者寫出完美無bug的程式,而是考驗你是否能夠把想法用 程式碼的形式表達出來,並確保面試官能夠理解,而面試官本身也要理解求職者的思路, 而非只求結果正確。這種面試的形式對兩邊來說都很有挑戰性。 溝通上的話,如果沒有限定講英文的話就是隨便,只要兩造能夠通就行,要說台語也可以 。這一輪面試中,雖然面試官也是台灣人,為了刷存在感我還是全程講英文啦。 考題的部分,因為有簽保密條款所以不方便透漏細節。第一題用排序法就可以簡單的解出 來,很經典的leetcode問題。 面試官說好,那follow-up。我用兩個priority queue解出來的,時間複雜度O(nlog(n))。 不知道有沒有更好的解法。面試官說還不錯,這樣就行了。最後發問時間,聊了一下,面 試官簡單的介紹了自己的職位,是Chrome OS部門的工程師。 # HR contact #2 Google meet、30 min、中文 然後過了大概一個月吧,上次那位上海小姐姐又來聯絡我,說我phone interview表現不 錯,進入下一階段onsite。這裡會有四關:3*coding & 1*behavorial,並且尊重我的安 排:可以分四天做,也可以一天全部面完。大部分人是分兩天來面。 有朋友面的是embedded track,只有三關tech/coding interview,沒有behavorial,不 確定原因為何。 # Onsite interview #1 - coding Google meet、45 min、中文 Onsite第一關,是一個Chrome OS部門的工程師,台灣人。 題目是給你一個graph,問你說拿掉其中一個node會有甚麼變化,那follow-up就是問你如 果multiple query的話要怎麼改善時間複雜度。這種multiple query的follow-up幾乎可以 用在每一種題型中,可以算是定番了。 這題比較特別的是,面試官只有畫出graph,用來解釋題義,並沒有定義input datatype的 格式、還有整個程式碼的架構,所以這個部份我要自己假設一個出來,這部分花了一點時 間。題目本身應該是easy-medium的難度而已,但我寫出來的時間複雜度是O(n),不確定 是不是最佳解。但面試官似乎沒有什麼意見。 # Onsite interview #2 - behavioral Google meet、45 min、中文 顧名思義就是問你各種情境題,讓你回答這樣。題庫在網路上面都很多了,而且變化不大 ,在此不多贅述。 我認為最需要注意的是,這裡面試官期待的是你講出工作中實際遇到的情境,而不是什麼 驚天地泣鬼神的故事。例如問你說有沒有遇過其他同事跟你意見不同的時候?你怎麼處理 ?你就講說例如你要做一個專案,你認為一定要至少5個device才能達成性能需求,但你 同事認為只要3個就夠,那你們就怎麼樣去喬這樣,總之就是要講這種無聊但實際的經驗。 好加在面試官也是工程師,所以可以跟你進行一些技術性的討論。 我一開始沒有理解到面試官的需求,所以一直不自覺的把話題引導到我的人生觀阿,待人 處事的態度之類的,然後就會被面試官打斷,說講你實際發生過的經歷就好,不用扯到太 抽象的層面。他知道像這樣的討論會很枯燥,很難進行,但他必須要聽到實際的故事細節 才能對面試者做評價,沒辦法,請我理解。 從視訊背景可以看的出來面試官也在WFH,所以我們彼此分享了一下家中工作室的布置, 我也介紹了一下自己現在的工作內容,對方說你做lithography喔,酷喔。 # Onsite interview #3 - coding Google meet、45 min、英文 Onsite第二關,面試官是一個來自國外的大姊,目前在台北工作。 第一題很簡單,就是給我一個array,問我滿足某條件的subarray在哪裡。follow-up不免 俗地問multiple query,做起來滿簡單的,沒什麼問題。 但接下來還有一個follow-up就是,如果我可以改掉array中某些element的值,那答案會 變怎樣?這裡我稍微打結了一下,跟面試官廢話了一會,打轉了一圈才勉強想出那個關鍵 字:sliding window,面試官說好,這時時間剩大概只剩10分鐘,面試官叫我就寫個大概 就好,不用寫出bug free code也沒關係,我就照辦了。 感想是,第一題跟第二題都很簡單,但是花了點時間在定義問題、確認邊界條件、寫出架 構和解釋程式碼的正確性,這也是為什麼寫到第三題時,已經剩不多時間了。在打程式比 賽的時候,完成時間只跟個人能力有關:你越強就寫得越快;面試則並非如此。 面試官很親切,有開鏡頭跟我視訊對話,全程也保持笑容,在我思考問題的時候也沒有甚 麼催促,最後也很詳細地解答我的問題。最重要的是,問題的難度由淺入深,安排得很恰 當,不會一開始就搞不清楚題義而無法進行。雖然我的表現未臻完美,但對我而言是個非 常好的面試體驗。 # Onsite interview #4 - coding Google meet、45 min、英文 這次面試官是台灣人,但因應要求所以全程用英文講。 第一題:一個array of int,在哪個位置會有最佳解?這裡我很簡單的用stack解。面試 官接著問我follow-up:如果有範圍限制呢?我就把stack改成deque並且分析了兩種資料 結構的實作差異、以及在操作上的時間複雜度。 到這裡為止都還滿順利的,總共只用掉了20幾分鐘,算是超乎預期。面試官說不然我們再 來玩一題如何?我說好阿,來吧!然後面試官花了點時間找了下一題給我做。這一題有點 嚇著了我: 總之就是一種撲克牌的規則:給你一組牌,要怎麼打才會有最高的分數。後面有一個 follow-up就是如果可以抽換牌面的話要換哪幾張。這題麻煩的地方是:在你loop到每一 張牌的時候,你沒有辦法去做一個greedy algo來求得整體的最佳解。由於時間的關係,面 試官叫我寫出第一題的大概思路就好。 感想是加考的那一題真的有挑戰性,尤其是那個follow-up應該有hard難度。如果沒有面試 官正確的引導,很容易會浪費掉很多時間。還好不是一開始就考我這題,不然我的表現應 該會有點慘。 # HR contact #3 然後過了大概快一個月,HR寄信給我說onsite表現不錯,但是最近人事重整,需要再等更 多的時間才能給結果,不知道是不是某種安慰信的概念。目前的進度就卡在這邊。 有這樣的結果,也算是對自己過往努力的一種肯定。反正我這邊就是繼續做好現在工作, 享受生活這樣。幾點心得分享: * 我運氣不錯,沒有被考到太刁鑽問題。除了最後一關那題有hard之外,其他頂多medium 。無論是申請國外學校、面試找工作、搞定身分問題、還有往後數十年的職涯中,運氣都 是最重要的。因此,一時的成敗都算不上什麼。意氣風發的時候要心懷感激,更不能因此 嘲笑失落的人。 * 承上,刷題的時候,確保自己對medium等級的題型有把握度就好了,hard就不用太強求 。反倒是要加強自己溝通的能力:要能夠定義問題和程式架構、能夠解釋自己的思路、而 且要一邊寫一邊用英文表達。這在面試過程中非常重要,有時候甚至比有沒有寫出最佳解 更重要,但僅僅靠刷題是練不到的,必須要額外練習。 * 景氣真的豪慘阿,之前明明每間公司都招了那麼多人,然後薪水各個上看20萬鎂和300 萬台票,然後現在風雲變色,說不招就不招了。呼應第一點,果然運氣還是最重要的呢。 以上跟大家分享,希望各位不嫌棄,能拋磚引玉就更好了,謝謝。 -- "你說舊機械系館很美,我是看不出來它有多美。你說舊機有卓越的通風設計理念,我是 不相信啦,不然我們來跑CFD看看阿...這些文資會的一天到晚說舊機不能拆,如果有一天 地震垮掉了,你們覺得他們會趴在地上哭著說歷史消失了嗎?不會嘛,他們會再去找另外 一棟建築物,跟你說這個不能拆...前人蓋的東西阻礙後人的進步,叫做食古不化,所以 我說舊機應該通通拆掉!" 台大機械系教授 賴君亮 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 12.229.23.122 (美國) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1660443104.A.231.html

08/14 10:13, 1年前 , 1F
又是個強者....
08/14 10:13, 1F
不敢,還要繼續努力。 ※ 編輯: peterchen33 (12.229.23.122 美國), 08/14/2022 10:25:06 ※ 編輯: peterchen33 (166.196.75.8 美國), 08/14/2022 10:28:39

08/14 10:33, 1年前 , 2F
簽名檔文資會….唉
08/14 10:33, 2F

08/14 10:38, 1年前 , 3F
是個狠人
08/14 10:38, 3F

08/14 10:48, 1年前 , 4F
補推 感謝分享
08/14 10:48, 4F

08/14 11:24, 1年前 , 5F
推分享!
08/14 11:24, 5F

08/14 11:25, 1年前 , 6F
千題大佬就是猛
08/14 11:25, 6F

08/14 11:25, 1年前 , 7F
推 強者
08/14 11:25, 7F

08/14 11:41, 1年前 , 8F
強者 推
08/14 11:41, 8F

08/14 11:43, 1年前 , 9F
第二關如果是多次查詢的 LCA 可以做到查詢 log(N) XD
08/14 11:43, 9F

08/14 11:44, 1年前 , 10F
Sorry 按錯到噓,補推回來!
08/14 11:44, 10F

08/14 11:46, 1年前 , 11F
08/14 11:46, 11F

08/14 12:20, 1年前 , 12F
強者推
08/14 12:20, 12F

08/14 12:22, 1年前 , 13F
感謝分享
08/14 12:22, 13F

08/14 12:33, 1年前 , 14F
感謝分享 推推
08/14 12:33, 14F

08/14 12:55, 1年前 , 15F
08/14 12:55, 15F

08/14 13:15, 1年前 , 16F
08/14 13:15, 16F

08/14 13:15, 1年前 , 17F
你這篇不怕被正在幫你辦綠卡的東家看到嗎@@
08/14 13:15, 17F
看到就看到唄。跳槽在這裡是司空見慣的事情,身邊同事都直接放話說如果不給WFH就要 跳去競爭對手那兒去了。就算沒有要跳槽,為了磨練自己也應該要不斷面試試水溫啊,不 是嗎?

08/14 13:36, 1年前 , 18F
08/14 13:36, 18F
※ 編輯: peterchen33 (166.196.75.8 美國), 08/14/2022 13:54:46

08/14 14:08, 1年前 , 19F
08/14 14:08, 19F

08/14 14:17, 1年前 , 20F
推 我phone tech 題目跟你一樣,解法也一樣,然後就沒 hc
08/14 14:17, 20F

08/14 14:17, 1年前 , 21F
了QQ
08/14 14:17, 21F

08/14 14:20, 1年前 , 22F
另外推溝通這一點,面試過程能明顯體會到,題意理解、edg
08/14 14:20, 22F

08/14 14:20, 1年前 , 23F
e case 跟解題思路都要能清楚地說明
08/14 14:20, 23F
辛苦了,我們有一句話是說,決定好面試官是誰時其實就決定了面試結果的八成。相信你 應該是很好的把題目解出來了,但有時候跟面試官不那麼對盤就很容易GG,運氣問題啦。 仔細看了一下,你應該是最近才電話面試完然後就碰到hire freeze吧?真的衰小了... 編輯: peterchen33 (166.196.75.8 美國), 08/14/2022 14:26:17

08/14 14:27, 1年前 , 24F
巨佬 推
08/14 14:27, 24F
※ 編輯: peterchen33 (166.196.75.8 美國), 08/14/2022 14:36:43

08/14 14:50, 1年前 , 25F
11
08/14 14:50, 25F

08/14 15:03, 1年前 , 26F
現在職場核心能力是刷題真的不為過
08/14 15:03, 26F

08/14 15:04, 1年前 , 27F
真的要認真好好刷題,上班還是要保持刷題習慣。
08/14 15:04, 27F

08/14 16:26, 1年前 , 28F
好漫長的流程 每個階段中間居然都隔了一個月
08/14 16:26, 28F

08/14 16:51, 1年前 , 29F
08/14 16:51, 29F

08/14 16:51, 1年前 , 30F
請問刷了一千題的情況下看到google question的感覺是什麼
08/14 16:51, 30F
就還是會滿緊張的,擔心自己寫不出來浪費大家時間這樣。但是多虧刷題訓練出來的神經 反射,大概知道題目要往哪個方向去解這樣。 別說面試了,就連打leetcode周賽也都常常會翻船,並且理解到自己跟競賽選手的遠大差 距。好處大概就是daily challenge的題目常常都是已經做過的,點一點答題記錄就可以 賺每日積分這樣。

08/14 16:55, 1年前 , 31F
08/14 16:55, 31F

08/14 17:02, 1年前 , 32F
GOOGLE搜了下ID 這什麼鬼神經歷 勵志哥
08/14 17:02, 32F
不好意思餒!我天身殘疾又不特別聰明,只好比別人更努力一些。這裡很多人有比我更厲 害的經驗,實在不敢當。
還有 24 則推文
還有 8 段內文
08/15 12:27, 1年前 , 57F
推 細節,心得都好詳細
08/15 12:27, 57F
※ 編輯: peterchen33 (12.229.23.122 美國), 08/15/2022 12:40:40

08/15 13:43, 1年前 , 58F
真強者
08/15 13:43, 58F

08/15 13:43, 1年前 , 59F
推詳細
08/15 13:43, 59F

08/15 14:39, 1年前 , 60F
推強者
08/15 14:39, 60F

08/15 14:48, 1年前 , 61F
推分享
08/15 14:48, 61F

08/15 15:17, 1年前 , 62F
理論上進team match前就知道level了吧 可以問問Hr
08/15 15:17, 62F
不確定level是怎麼訂的,會再請教一下。

08/15 15:31, 1年前 , 63F
推啊
08/15 15:31, 63F

08/15 17:56, 1年前 , 64F
強者推
08/15 17:56, 64F

08/15 18:09, 1年前 , 65F
最近也要準備面試,很棒的分享,謝謝你。
08/15 18:09, 65F

08/15 18:26, 1年前 , 66F
推推強者直屬學長><
08/15 18:26, 66F
學弟好。UMich Robotic比我厲害多了。恭喜畢業,也祝工作一切順利。

08/15 18:55, 1年前 , 67F
跪著推
08/15 18:55, 67F

08/15 19:33, 1年前 , 68F
好強啊
08/15 19:33, 68F

08/15 22:37, 1年前 , 69F
好強
08/15 22:37, 69F

08/15 23:44, 1年前 , 70F
推強者學長
08/15 23:44, 70F

08/16 05:16, 1年前 , 71F
推強者
08/16 05:16, 71F

08/16 09:50, 1年前 , 72F
推強者
08/16 09:50, 72F

08/16 09:51, 1年前 , 73F
PTT是不是只有我不在FANNG? 已哭
08/16 09:51, 73F
如果A = Apple的話那我也不在了阿。共勉之。

08/16 12:06, 1年前 , 74F
當然跳槽很正常 但為何不綠卡拿到後再po 不怕公司不幫你
08/16 12:06, 74F

08/16 12:06, 1年前 , 75F
辦了嗎XD 個人認為拿到綠卡比進台G爽多了
08/16 12:06, 75F
還好阿,辦綠卡有很多種方法,綠卡到手之後也有很多麻煩的地方。再說出來混過一段時 間,還真沒聽過員工想跳槽公司就不給辦綠卡的,可能我孤陋寡聞吧。

08/16 14:25, 1年前 , 76F
FTE是Google 正職員工的意思
08/16 14:25, 76F
長知識,謝謝。

08/16 23:23, 1年前 , 77F
08/16 23:23, 77F

08/16 23:51, 1年前 , 78F
同為舊機人推 XD
08/16 23:51, 78F
前輩好XD

08/17 00:01, 1年前 , 79F
德州農工學弟欸 歡迎來Google
08/17 00:01, 79F
前輩好!這話說的太早,還不確定有沒有這個榮幸呢。

08/17 07:36, 1年前 , 80F
08/17 07:36, 80F

08/18 11:57, 1年前 , 81F
推強者同學,phone interview 那關有可能是拿來分辨 L
08/18 11:57, 81F

08/18 11:57, 1年前 , 82F
3/L4,我年初面試上海 HR 是這樣跟我說的
08/18 11:57, 82F
原來如此,看來現在跟公司喬職等也太晚了。那就一切隨緣吧。 另外,跟各位先進說聲不好意思。跟HR討論了一下,決定還是在對面試過程的部分做一個 刪修,希望能夠在公司與面試者的利益之間做平衡。還是希望大家能夠順利度過難關,找 到心目中的理想工作。 ※ 編輯: peterchen33 (12.229.23.122 美國), 08/18/2022 15:55:06

08/20 11:14, 1年前 , 83F
好像上週review完了 如果有繼續招募 recruiter 會聯絡你
08/20 11:14, 83F

08/20 11:16, 1年前 , 84F
其實recrutier比較慘 他們才沒工作 XDD
08/20 11:16, 84F

08/20 17:11, 1年前 , 85F
感謝分享
08/20 17:11, 85F

08/20 20:06, 1年前 , 86F
祝好運~~~
08/20 20:06, 86F

08/22 00:48, 1年前 , 87F
推強者
08/22 00:48, 87F
文章代碼(AID): #1Y-5dW8n (Soft_Job)