2022 實習面試心得

這個暑假原本是打算海投,希望可以認真去一個大公司實習看看,所以基本上只要有開暑期實習缺,內容算可以接受我都想要 Apply,不過有開暑期實習的公司其實算少,大部分都是希望你來一整年,因此只有投到三家。

背景

  • 交大資工學碩,目前碩一
  • 沒打競程,但大一有修過系上開的競程二、競程一,大概知道在幹麻…吧
  • 在學期間在一間公司寫垃圾網站
  • 某個暑假去一間小公司實習寫網站
  • 在系上計算機中心當幾個月的助教
  • 修作業系統設計與實作拿滿分,然後當助教
  • 大二機率被當
  • Leetcode 72/131/28
  • 面過 Google 正職但被拒

準備

大概就是刷題
這次跟實驗室的夥伴每天都寫 Leetcode 的 Daily
然後偶爾一起挑戰難一點的題目
其實氣氛不錯
而且因為很早投,公司又很晚理我
我就有滿多時間可以刷題的 XD
不過跟大多數人比起來很是刷的偏少啦

Google

Timeline

  • 10/6 按 apply
  • 10/14 收到填基本資料的表
  • 11/19 通知 pending at Resume Screening Stage
  • 11/23 請大佬幫忙內推
  • 11/30 HR 說過了 Resume Screen 要來面試
  • 12/1 通知面試時間
  • 12/8 Technical Phone Interviews (2 rounds)
  • 12/19 HR 說還不錯,要參加 Internal Review
  • 1/7 Team Match
  • 1/11 Call with Recruiter

前期

這次真的是讓我五味雜陳
原本以為上次面到很後面了
履歷關應該會很快就過去
結果一直都沒回音
一有消息還是說我卡住
我就在想畢竟我經歷真的跟別人比是滿爛的

結果後來有人願意幫我內推
但內推完之後他說可以用內推連結申請三個職位
但是我沒辦法申請原本的實習職位因為還在申請中
所以我只好寄信給 HR 問他怎麼辦
結果一個禮拜之後他說沒關係,你進到下一階段了
搞得我不知道內推到底有沒有推到 XD

Technical Phone Interviews 1

上海人,問了一題地圖題
其實一看到就大概有方向了,但沒有秒解
我還是先給了一個最爛最直觀的解法
然後接著說,我覺得這樣很慢,大概可以用甚麼方向優化
接著在描述我覺得可以優化的東西的時候就想到正解
就是一個類似 DP 的方法,反正這種地圖題大概就是每一格記一些數字然後用你四周的格子更新自己
面試官覺得我複雜度各方便都 OK
但是問我說可不可以想到有個方法可以讓計算量變少一半
我想了一下之後完全沒想法,然後跟他說我想不到,但是我覺得就算有的話其實複雜度一樣
他就說沒錯,他只是覺得這樣可以少寫一些 code,對我來說比較方便,但沒有也完全沒關係(結果我事後完全在網路上找不到他說的方法,我猜有可能是他自己搞錯了XD)
然後我就照著之前的經驗就邊寫邊講,他就說,沒關係,你寫完再一次講就好了
寫完之後又再給了一個 Follow up
反正就類似的再多記一些東西,可能腦筋要轉一下才想的到
我做出來之後,他說我有個 Bug 叫我看一下
阿我左看右看都沒發現,他就說不然他直接跟我講好了,其實沒有很重要
結果他說的 Bug 其實我有 Handle 好但他可能沒注意到 XD
然後他就說抱歉阿是他的錯他的問題之類的,怪尷尬的哈哈

結束之後還有點時間,他就問我一個比較應用的問題,我有點意料之外
問題是你覺得某某網站背後是怎麼運作的,背後發生甚麼事情,甚麼都可以講
我就講了一大堆,他好像覺得還不錯,問說還有沒有更多的
我就講更一大堆 XD

最後 QA 時間我問他是做甚麼項目的
他大概介紹一下他是做公司內部的系統
我就問他說,那你覺得做內部的系統跟外面的產品會有甚麼不一樣的地方
他就說好處是比較沒有時間壓力
壞處是也許不能在外面跟別人說,欸某某某是我做的之類的 XD
總之他講得滿開心的,我也覺得很有趣

休息

一結束我馬上跟我朋友說我剛剛的狀況
跟他們說我遇到地圖題,當時害怕極了
因為地圖題真的是很少練習,而且我沒有很喜歡在那邊處理邊界、+1 -1之類的東西
最後還寫了 80 幾行,真的很怕實作出事
我就說,希望等等來個 DP 之類的,會就會,不會就不會

Technical Phone Interviews 2

上海人,上圖說明一切,不要烏鴉嘴欸
他講話很有條理,很像主播,快速的說,您好,歡迎來到谷哥面試,我是今天的面試官XXX
然後就開始了
題目做完之後他就說,那面試結束了
我想說,蛤,我錯過甚麼了嗎
結束之前他問我有甚麼問題,我當時整個處於驚訝之中,就說沒有
然後他就說那今天的面試就到這邊結束,非常感謝您今天參與,祝您有愉快的一天甚麼的
然後就下了
我整個很錯愕,雖然這場很順,面試官人也很好,但是完全不在意料之中

Internal Review

這個等超久的,我真的自己胡思亂想很多
一開始覺得兩個面試都很順利應該會過
但真的等太久了,就一直在想是不是哪裡有問題(尤其是那個 18 分鐘的)
後來等了一個月左右才說要 Project Match

Project Match

後來 HR 通知說有三個 Team 對我有興趣
讓我選一個最喜歡的
但有點尷尬,因為我最喜歡的是離家比較遠的(但也只是看文字敘述覺得比較喜歡而已)
離家近的比較還好
我考慮很久,也跟一些家人朋友討論之後
最後選擇最喜歡的、離家遠的
反正辛苦通勤也就 3 個月而已

總結

後來我有上網查一下,發現兩題 Leetcode 都有,但是第一題的 Follow up 應該是他自己加的
不過兩題都要 Leetcode Premium 才能看到,所以其實課金有用?
整體覺得確實比上次正職的時候題目簡單很多
自己也發揮得比較好

Amazon

Timeline

  • 10/6 按 apply
  • 12/6 收到 Online Assesstment
  • 12/15 HR 說 OA 過了,接下來要開始面試流程
  • 12/20 HR 詢問面試時間
  • 12/23 HR 說面試改到 1 月再進行
  • 1/4 HR 再次詢問面試時間
  • 1/6 HR 通知面試時間
  • 1/10 Back to Back Interview

Online Assessment

總共兩題
第一題很簡單大概 5 分鐘就寫出來了
第二題我一看就覺得是 KMP 之類的,我就想說完了
就,雖然我大概知道原理是甚麼,但是突然要實做出來真的有點困難
我做到最後一刻都還是 WA
我就在最後一個在註解打個 // KMP? 這樣,不知道有沒有用

結束之後有點不爽,覺得阿這樣是要鑑別甚麼
後來上網看這題要嘛用 KMP 要嘛用 Z algorithm
在一畝也看到有個人跟我遇到完全一樣的兩題
不過後來莫名其妙的 OA 就通過了

Interview 1

一開場先自我介紹,然後說明一下等等的流程
前面大概 20 分鐘先問了一些 BQ
包含 Leadership principle 的問題
他也有跟我說就是舉個符合情境的例子就好了

後面就開始考程式
第一個問題是一個字串處理的問題
我先給出 O(n^2) 的方法之後
就在用 Linked-List 優化成 O(n)
後來他說其實應該可以有比較方便一點的做法
我卡了一下,他給了一個小小的提示之後我想到用 Stack 來解會很方便
後來就用 C++ 實作了

第二題是大數乘法,其實看到的時候滿傻眼的
總之就想辦法把他寫出來,就這樣而已

最後就讓我問一些問題
我問了一些跟 Ring 或是他們內部的東西相關的問題
比如說產品大概在幹嘛
是作哪一些部分等等
其實算聊滿多的
整體下來覺得滿友善的,體驗很好

Interview 2

第二場的面試官一開始就說,喔剛剛那個人跟我同一個 Team,是我的主管 XD
自我介紹完之後,就跟我說會有三題,然後不會有 BQ

打開 Livecode 就看到三題都已經在上面了
第一題是一個特殊的 strcmp,就是輸入會是一個格式需要轉換的字串
我首先直接想說那我就先把兩個字串都轉換完,然後再用原本 strcmp 的方式就可以了
時間跟空間複雜度都是 O(n)
實作完之後,面試官問我可不可以在優化
我說時間應該是不太可能優化
但空間也許有辦法優化成 O(1)
然後我就開始做做看,中間發現一點問題,卡了一下,他就說沒關係我們先去下面的題目好了

第二題是 Linked-List 相關的題目,應該算滿經典的
我也是給了 O(n) 的作法,然後面試官提示可能可以用某些方法會更好寫
後來就發現可以用 Stack,總之就是比較好寫比較合理一點
實作完之後他又表示好像可以把空間也做優化,我也是卡了一下他就提議說先看下一題 XD

第三題是給一個 c 的 macro,就一行

1
#define xxxxxxxxx

然後問說,請問這個東西的功能是甚麼
阿總之就是指標地址轉來轉去的東西
我花了一點時間研究一下之後就得出正解

然後還剩下一點時間他就讓我選擇要去討論第一題還是第二題的東西
我選擇第一題,接下來就討論一下,最後他直接講了一個方向之後,我就算是有把解法想出來
不過還好沒有時間實作了 XD
畢竟我對於這種字串 +1 -1 這種操作沒有很在行

後面就一樣讓我問一些問題
我有問一個是要怎麼蒐集使用者的回饋之類的
他就想到一個之前的例子跟我介紹,我是覺得滿酷的

Yahoo

Timeline

  • 12/22 Apply 四個職位,同時收到志願序問券
  • 1/4 Search & Ads Team lead 來信詢問面試時間
  • 1/5 1st round interview - Tech Phone Screen
  • 1/17 邀請參加第二階段 Interview
  • 1/19 2nd round interview - Tech Phone Screen
  • 1/22 邀請參加 HR interview
  • 1/26 HR interview

1st round interview

面試官有兩個
我自我介紹完他們就跟我說,嗨,我們兩個也都交大的 XD
前面主要問一些有關我履歷上的經驗或是專案
他是我每一個 Experience 一個一個問在幹嘛那種
其實有點沒想到,我就都要一直回想
他們部門好像是有在做網站相關的
所以我有很多網站相關的經驗他們就問得比較細
但其實我那些東西都有點久遠了,所以沒辦法很具體地跟他們說我在幹嘛 XD
後面就了解一下我對 DB 阿 Restful 多熟之類的
都有滿具體的情境讓我去發想
整體下來我覺得感覺滿好的
覺得他們工作氛圍應該不錯吧
我覺得這樣反而還不錯
不然只有考演算法題的話就很難想像在那邊工作會是怎麼樣的狀況

後面就到一個線上編輯平台考一個 Coding 的測驗
他是請我實作 HashMap
說實話剛聽到問題有點緊張
我很怕我當下做不出來
畢竟我這輩子沒實際實作過這種東西 XD
我語言選了 C++ 然後就開始實作
結果做完之後他竟然想要真的執行看看
我想說 危
但還好我寫出來的沒什麼大 Bug
最後都可以順利執行

最後就讓我問一些問題
我就問關於他們的工作內容
以及實習生的工作內容之類的東西
我聽了覺得是滿不錯的
也覺得這樣面試的方式會讓人比較有感覺
但畢竟他們是請 Team lead 出來面試我
公司就需要付出相對高的成本

2nd round interview

兩個還三個面試官 + 一個 Hiring Manager
整體流程跟上次差不多,也是自我介紹、詢問背景、寫程式
同樣也是對於每個經驗或是專案問很詳細
Hiring Manager 對於我在系計中服務的經驗特別有興趣
因為他之前也有在中央加入類似的組織
也跟他聊了很多在系計中的經驗

程式的部分先請我用 C++ 寫一個簡單的 Class
然後來了一題 Uva 有寫過的題目
同樣是要可以編譯執行的
我快速完成之後拿到了第二題
第二題有點需要字串處理
我講了做法之後詢問是否可以用 Python 來寫
因為有一件事在 C++ 真的有點麻煩 XD
這題寫完程式的部分就結束了

最後一個小時的時間是 Hiring Manager 要跟我聊聊
其實聊了滿多的,也給我很多建議
內容大概有:

  • 為甚麼會來投這個實習?
  • 你之後的人生規劃
  • 還有投那些公司
  • 對於我未來選擇領域的建議
  • 對於經驗的詢問
  • 分享他的一些經驗

我個人覺得滿不錯的,感覺整個面試下來對於我最有幫助的就是這裡 XD

HR interview

與兩個 HR 面試
大概就是他們介紹一下這個實習會做甚麼事情
讓我問一下問題,跟確認一些我之前的經歷
有詢問一些 Behavior 的問題,我就用我之前社團的經驗跟他分享
最後有問我如果面這幾家都上會去那裡

說是最後一個面試了
接下來因為有過年
所以要等可能二三月的時候才會有正式的結果