前言:
工作了大概一年多,雖說沒有一定要跳槽,不過抱持著試試看的心情去面試。
比較可惜大部分都不能丟新鮮人的缺了QQ
工作後陸陸續續有Linkedin的獵人頭來找
但我大多都沒什麼興趣,最後也就面了這兩家。
排版有點醜,請見諒QQ
背景:
Leetcode rating : 2400~2500
題數: 2000+
我很堅持一定會寫每日一題以及官神的Daily
偶爾了解一下進階資料結構跟演算法
分數說實在真的沒什麼用
比賽跟面試是差非常多的
附上Leetcode人權紀錄 
===============================================================
# Google
找人內推,丟了三個部門
Software Engineer, Google Home, Nest
Software Engineer, Backend, Google Nest
Software Engineer, Display, Pixel
不過據說SWE只能選一個,後來選Pixel那個
時間軸:
- 7/7 hr talk
- 7/27 phone interview
- 8/16 phone 告知 passed
- 8/18 hr talk
- 9/6 Onsite interview
- 10/17 感謝函
## HR talk
主要聊這個部門在做什麼,以及了解你的背景,刷題經驗等等
面試時會希望寫出readable, bugfree的code
以及問清楚限制,問清楚想法
然後會幫我安排一場mock,但後來我覺得太久我就跟HR說我想直接面試
## Phone Interview
面試官好像是台灣做silicon的小哥,考了一題array相關題
不過他好像對題目不熟,感覺很佛系的面試官
直接把題目貼上來,然後就說一起看看
問了一下題目意思,他會回答差不多就是你理解的這樣XD
整體是很輕鬆而且時間非常充裕的面試,寫了兩個Follow Up
第二個Follow up會需要recursive去解這個問題,後面剩下5分鐘
都有做到完整的測試
面試官說其實也可以也可以結束了,他也蠻看好我的(立flag)
最後就是聊了一些QA,面試官對我評價蠻不錯的
## HR talk
經過兩個禮拜,後來HR打電話跟我說準備技巧
基本上HR說就照著我phone的步調就行了
以及跟我說一下接下來的流程
有三關gerneral coding一關bq
coding保底一場美國人,兩場隨機
bq是主管面試的順便做fittalk
讓我感覺到BQ關基本上就是上了
## Onsite 第一場 (英文)
這一關是一個美國的華人,一看就是資深工程師
一開始他做了一個簡單的介紹之後就開始講題目
題目講得有點久,寫題節奏有點被打亂
後來要問限制的時候,感覺他不太想要我問
都說輸入都是合法的,可以趕快開始
這題算是array+sorting類型的
解題想法很快就想到了,不過在實作的時候index換算卡卡的
就停下來說剛剛講解法的時候沒想到這part我想一下
後來他就直接說口頭打斷我跟我說沒必要卡住,不過他在提示我的時候
我沒有很專注地聽,反而他講完我說我有一個簡單的作法
寫完之後剩下output然後時間就到了
自己覺得節奏有點被帶走了,然後可以不需要邊寫邊講腦袋很容易空白
時間到就進行15min的Q&A
## Onsite 第二場 (英文)
這一關也是一個美國的華人,資深工程師
題目敘述也不難,一開始我問了很多限制,在問限制的過程中,腦中會有一些解題想法
前面有列了很多example幫助想法,並在第一版code有進行dry run
但這個美國人好像很急,一直叫我趕快寫code
還好他有這樣說,因為這題真的算難,後面follow up卡住了一兩分鐘
跟面試官講述我的想法,但面試官說這不是正確的
其實這個時候應該要請教一下面試官才對,不用執著自己想出來會很浪費時間
不過當下時間有點緊急所以不知為何就沒有討論
後來就果斷用暴力法,寫的過程直接暴打一波code寫完
後續也有問我如果有環要怎麼解決
這題表面上是string實際上牽扯到graph的題目
## Onsite 第三場
這一關是台灣的小哥,一開始自我介紹感覺聊了快10分鐘才開始
他對我工作內容有興趣,因為剛好做類似的事
然後就直接出了一題簡單的tree題
秒解完後,發現這個時間複雜度不是最佳的
不過面試官說先dry run+test
講test花了快10分鐘
期間問了跟刷題不太有關的偏向實務,比如怎麼造case
會怎麼設計testcase,花了不少時間在這
後來follow up的優化卡了許久
也跟面試官要了提示,但好像沒有get到
後來發現那個優化非常非常的簡單...
事後才想到
後續進行15min Q&A
===============================================================
# Nvidia
其實本來只打算面G,不過Linkedin被一位大大敲了,剛好就來面面看
投遞Senior Software Engineer, DFX CAD
整體面試時間也是非常的長
總共面了7關
## timeline
- 9/18 內推
- 9/22 phone interview
- 10/12 phone interview 告知passed
- 10/27 phone interview x2
- 11/8 onsite interview x2
- 11/28 onsite interview 告知passed
- 12/1 phone interview
- 12/15 phone interview
- 1/11 reference check + 體檢
- 2/3 offer letter
- Feedback
## phone interview (1)
資深工程師,一開始先做自我介紹
主要就是問我履歷問題,工作的內容
問我為何想要跳槽
這邊因為聊了快半小時,我就問了一下是不是不用考codeXD
所以就簡單的考了tree的inorder走訪,我把三種走訪方式都說了一遍
也問了一些基礎知識,比如說什麼情況不能還原出tree
後來也問了c++的一些基礎知識,copy constructor, move
整體回答完,時間很充裕就繼續聊
聊了許多關於公司的福利,工作的內容
自己擅長的技能是什麼
也問我為何不想出國等等
還說遇到大主管機率比遇到老黃還低XD
整體聊了一個半小時,當下覺得就會進到下一關XD
面試官有說表現的不錯的話可能會面個5-6關
表現不好就面一兩個
這個面試官給人感覺挺不錯的跟我聊了不少細節
## phone interview (2)
接下來連續兩場phone,但我有問了一下面試官這個到底是phone還是onsite
不過其實好像沒什麼分,考的東西差不多
一樣做了自我介紹做了簡單的QA
接著就用hackerrank考一下程式
第一題是考`c++`的物件導向實作
第二題是arr的相關題,從暴力法一路優化到最佳解
第三題是簡單的graph題,dfs一下就能解決了
透過這些測驗面試官大概就會知道我`c++`了解的程度
有一些比較clean的寫法auto deduce, lambda(面試官說了傳統作法可能要寫好多行)
整體時間掌握充裕
有問了一下`c++`支援程度,好像只到`c++11`而已
接著好像就是換我提問的環節
大概問了工作內容,感覺蠻有趣的,有用到一些演算法
## phone interview (3)
一樣自我介紹5~10min
接著進入coding
第一題題目意思看了很久,大概是array, dp類型
面試官有跟我討論比較乾淨的做法但是時間複雜度、空間複雜度差不多
第二題蠻有趣的greedy題
先分析了題目的規則、列了一些算式,然後大概佐證了一下這個假設
不過後來這個假設testcase不會過
接著就有發現的一些trick,但這邊很好笑的是我陣列計算錯誤
debug了一下下,面試官跟我都沒發現錯誤,想法dry run都是對的
後來成功找到錯誤submit也是全過的
面試官問了`c++17`有甚麼新語法,大概就是說了一下structure binding, optional
optional的error handle行為有稍微講錯
不過面試官說反正那上網查就有了好像沒有扣甚麼分
這兩場的feedback自己都覺得很正面
## onsite interview (1)
來到新竹的辦公室,廁所很乾淨
來的時候發現我跟面試官搭同個電梯(電腦螢幕開著面試者的履歷XD)
不過我當然是沒認出來
開場先做個自我介紹聊天
接著考了手寫的白板
一題大概是跟區間線段有關
另外一題是重疊有關的問題,hashtable就能搞定
這兩題很快寫完之後,面試官問你怎麼沒有去面谷歌?
整場幾乎都在Q&A,讓我印象很深刻
因為他問的問題都非常有趣XD
主要圍繞在我為何跳槽
比如nv的錢都是股票,如果來的時候股票雪崩怎麼辦
谷歌假如上了會不會就跳槽了XD等等
蠻喜歡這位面試官帶出一些有趣層面的思考
整體來說時間充裕還剩5分鐘
feedback是覺得蠻正面的
## onsite interview (2)
這關是主管,開場先擦擦黑板
主管手上拿著紙本履歷,大概就是帶過一下履歷
聊聊天之後
接著就考coding
第一題蠻有趣的主管說這是內部的實作
不過他不確定怎麼做的就來考我看我怎麼寫
是一道tree的題目,裡面的節點可以自己定義
想了一下,後來用了類似dp的方式解決了
第二題是第一題的follow up
寫完之後,時間還剩一半
主管就再考一題很典型的題目
這邊大概提出了三到四種解法,
不過線性解實作很tricky我沒深入理解,但我知道複雜度一樣的stl簡單作法
後來主管就直接在白板上解釋線性解的證明
整體來說feedback也不錯,然後主管說headcount好像剩一個
不過最終一波三折用了其他職位的缺給了我名額,進入後續
## phone interview (4)
這關我以為是工程師,後來才知道是主管XD
主要圍繞我的履歷,問我履歷上的問題
大概聊了30分鐘,問了我為何想跳槽
我問了他,這邊的工作環境跟工時如何
我自認為我前公司大概60分,這邊可能90分(工時的部分)
## phone interview (5)
有趣的大主管,主要聊工作相關的話題
這個主管是大陸人很像官神的聲音...
問了人的頭髮有幾根怎麼計算?
這邊我有回答計算方式,不過我跟他說我忘記了表面積的計算公式
聊人格特質
比如說會不會有自己的idea
分配打雜的時候怎麼辦
工作做不出來怎麼辦
以及平常的工作模式
## Feedback
整體來說是一個很長的面試,中間一度以為沒機會,因為拖了很久
而且還有headcount的問題,後來的面試是發另外一個缺給我
還跟主管HR聊了一下,解開誤會,然後薪水很敢給XD



