大家好,小弟受惠於版上許多,最近求職收到L4 Google coding interviews第二輪三場
的面試回饋,recruiter說L4繼續走下去有risk不過也是有機會,若down level L3則是沒
太大問題。不過面完當下自覺機會不大,已經先接受其他offer答應說要先做一陣子,雖
然成績現在可以保留18個月,期間還是可以做team match不過目前我就先不move on了,
跟大家分享一下面試與刷題的心得。第一次發文若有任何不妥再麻煩提醒。
Week1 - Google Careers投遞無聲,過一個禮拜投遞狀態變not proceeding,直接涼涼。
Week3 - 不死心再投其他職缺,隔一兩天recruiter約meeting討論面試的時間與準備項目
,聽說通常是約一個月後,我也這照時間去安排。
Week7 - Mock interview,面試官臺灣人,人很好,會問你希望如何進行mock幫助你,我
請他當作正式面試來面,最後再跟我說哪邊可以改進,給了我很多建議。
Week8 - 第一場coding interview,臺灣人,中文進行,難度約med-hard,大約30分鐘寫
完最佳解,後續就在聊天,自覺是bug-free。隔天收到回覆說表現不錯,再約後續三場面
試時間,因為後續自己有其他面試,所以再約稍久一點之後。
Week11 - 連續三關
第二場,美國華裔,英文進行,難度約med,約30分鐘寫完最佳解,之後一題follow-up寫
完剛好時間就到了,沒來得及對follow-up的code進行dry run,後續回想code應該有2個
bugs。
第三場,印度人,英文進行,難度med,以往自己網路上mock時對於印度口音蠻不習慣的
,不過這次遇到的口音還好不怎麼重,理解沒問題但還是花了約20分鐘才把我自己的解法
讓面試官聽懂,但不是optimal,面試官要我再想想更好的作法。之後方向有提出來,但
有一個關鍵點沒想到如何解,到了30分鐘時,面試官假設有一個magic function輔助可以
如何解,最後寫出約90%後時間到了,這裡optimal的解法時間最差應仍是與第一個提出的
方法一樣,但平均會更少。
第四場,臺灣人,中文進行,難度med-hard,約35分鐘寫完最佳解,過程中有2處code寫
出來跟講的不太一樣被面試官糾正,一題follow-up,講完follow-up解法後時間到了沒寫
code,後續回想第一題code應該還有2個bugs沒發現到。
Week12 - recruiter回饋
第二場,L4 hire,Algo/Data structure使用恰當,雖然面試時面試官沒有提出要求,但
如果可以給多種solution與tradeoff會更好。
第三場,L4 no hire,L3 hire,分析問題、說明次佳解的解法、分析次佳與最佳解的時
間複雜度做不錯,扣分點在於最佳解關鍵點沒寫出來及有給hints。
第四場,L4 lean hire,分析問題、定義輸入與輸出做不錯,思路講得清楚,扣分點在於
有bugs以及有給hints。
面試總結,我想為了達到完美,除了勤刷題外,刷題跟面試有兩個點蠻不一樣的再提醒一
下:
一是盡量只靠description去寫code,像LeetCode寫慣了不太需要去思考輸入/輸出/型別
等,也常利用輸入的長度如n=1e6來判斷大概是O(n)的解法,但面試時就只有description
其他都要靠自己。
二是關於溝通部分,因為面試時還要跟面試官討論,來回也是不少時間,所以不論中英都
要能簡單且準確地表達意思,平常練題最好先用口語把解法講清楚後再寫code。
之後就是關於刷題的心得分享,小弟LeetCode題目1000+(E 300/ M 500 / H 200),週賽
100+場,rating仍在2050徘迴許久,容小弟野人獻曝給大家分享一些資訊。
關於刷題的方法,我想網路上資訊已經很齊全了,其中覺得最完整的是”0到100的軟體工
程師面試之路”以及”胖头龙的咸鱼刷题笔记-算法篇”這兩篇,從刷題的心法、刷哪些
題目、大神的講解甚至面試準備都有涵蓋,內容不少但每一陣子回去看都有新的收穫,時
間趕的話看0到100 day10那篇就好,跟著大神刷,表現頂呱呱。有些文章會推薦你去刷跟
自己rating相近的題目,可以用這個網址去找分數對應的題目。
https://zerotrac.github.io/leetcode_problem_rating/#/
關於刷題的複習,覺得當經典題都做完一輪後,複習重要性>>做新題,因為很多題目都能
沿用某些題的解法架構,另外像是不熟的解法也必須藉由反覆複習變得精通,不熟的題目
碰上面試的時間壓力基本上就可以當作沒做過了。雖然上面說題目刷到1000+但真正有效
的練習我想是在我開始建立複習表後,大概500-600題,其餘部分嚴格上來說做完就忘了
。這邊提供版友自己的Notion複習模板,可以記錄題目的類別、熟練度、做題的時間與下
一次預計複習的時間,方便後續複習,網址的右上角可以Duplicate這個模板。
https://lumpy-cut-a12.notion.site/a9cf0ada5ca64953b5273e10acdbde11?v=1aede3e9038940828ac4da7ed17cf15b&pvs=4
關於面試前的英文mock,我只有使用Pramp這個平台,跟世界各地的人面,很常碰到印度
人,基本上免費,註冊時會送你5個免費credits,每次interview消耗一個,但每一次結
束時雙方會互評作為面試者與面試官的表現,若對方評你是好的面試官會送你一個credit
,也就是基本上用一個給一個不太會消耗,甚至有時候面試中對方斷線還會多送你一個,
我越面越多最後這個credit變11個,不過這個平台面35次後就說沒新題目面了,只好再開
新帳XD。
最後則是個人心得,有時覺得自己陸陸續續刷題三年rating才是有些人的起點感到有些灰
心,但這次面完覺得小弟身為凡人要表現的好並不是那麼地遙不可及,如果更早知道這些
東西應該會有所幫助,而且回過頭來看對於自己的成長感到欣慰。我想正是因為知道過程
的辛苦,才會希望每個認真的人能夠含笑收穫,所以分享這些資訊給正在努力的人,小弟
之後有機會會再繼續挑戰。