Home 美國求職 [美國求職]#4 Amazon, Google面試,科技公司 常見的3個面試流程,面試官都考察什麼?

[美國求職]#4 Amazon, Google面試,科技公司 常見的3個面試流程,面試官都考察什麼?

by Jack
google面試
Reading Time: 7 minutes

文章最後更新於 2020年11月15日

Amazon, Google面試,在美國的面試到底是什麼樣子?都考察什麼能力?會不會考線上Coding?這一篇就是要來講講科技公司常見的3個面試流程,希望可以幫助你了解面試大概都會考些什麼。最後舉一些,我個人的失敗心酸血史,來幫助你進一步了解面試流程

美國求職攻略

希望陪你走過美國求職馬拉松,整理了我自己、朋友的經驗,幫助你在逆境中,找到好工作!

內容包含:簡歷、LinkedIn、相關準備資源、準備面試的方法,希望讓你在美國求職路上更順暢。

這是美國求職,最常見的4個面試流程,但不是每個公司,都一定完全有4個流程,有些可能就直接On-site,有些則會有OA, Phone Interview, On-site。

這篇是概括性的,去解釋整個面試流程,每一間公司的面試細節,建議去查Glassdoor或是一畝三分地,來了解目前的面試流程。

學習資源Master the Coding Interview: Data Structures + Algorithms面試導向的教學課程,先會教你如何寫tech resume,大概公司的面試流程,裡面涵蓋7個必須知道的資料結構、最常考的4個演算法。個人大推。

面試的4個階段

Phone Screen

形式:通常在進入面試流程以前,HR或是Head Hunter可能在求職網站看到你,或是你經由申請公司網站申請工作。他們會打一通電話給你,主要聊聊過去你的經歷,跟你想申請的職缺的細部內容。

如果過了,通常就會把你的簡歷送到Team Hiring Manager,他們會決定要不要進行下一步,跟你進行面試(OA、電話面試、電話面試、On-site)。

很多時候,可能Phone Screen完,沒有下文,也不要灰心!

過程:一通15 – 30分鐘電話。

內容聊過去經歷、未來追求的職涯發展Match想申請的Role

建議

  1. 把申請的Job description看清楚,並且把一些技能關鍵字圈起來。
  2. 把自己有Match申請職缺的技能,複習一下,口頭講解一次

延伸閱讀:[北美求職] #2 英文履歷的5個原則、履歷範本,美國科技公司注重什麼?

如果你需要我幫你改簡歷的話,也可以預約我的「簡歷諮詢服務」,有讀者因此拿到了Facebook Offer

Online Assessment

形式:有很多大公司的第一個流程,就是Online Assessment,是一個Coding問題,藉此來測試面試者的Coding能力

內容:通常是2 – 3個coding Questions,時間通常在60 – 90分鐘,並且會有系統的Test Case來測試你的code。

  1. 時間限制:在你點開公司寄給你的Link會開始倒數計時
  2. 注意有沒有語言限制:目前大多數公司,都開放各種語言

考察點

  1. 基本程式語言的掌握度:你最熟悉的語言(ex: Java, Python, SQL…)
  2. 解決問題的思路:能不能解決問題,並且通過Test Case
  3. Coding Style:看你會不會,用有意義的名稱命名
  4. 掌握Corner Case:很多的Test Cases都有Corner Case

建議

如果是常見的大公司(Google面試, Amazon面試),可以去一畝三分地、Glassdoor、Leetcode討論區,稍微了解一下最近的OA得出什麼類型的題目,可以提前先準備,等準備好了再打開連結。

  1. 提前做好功課
  2. 熟悉使用者介面:降低因為緊張,而一直找不到某些你需要的功能
  3. 深呼吸?(放輕鬆,你已經做足了功課,現在就是驗收的時刻,我每次都要跟自己這樣講XD)

電話面試

Google面試

許多大科技公司(Google面試, Amazon面試),經過了Phone Screen後,在On-site面試之前,會安排一場電話面試,通常會比On-site簡單很多,時間也落在45 – 60分鐘左右

內容:以Amazon, Google面試為例,這大概是一個45 – 60分鐘過程,會問1 – 2的Coding Question

工具:公司常用CoderPad或是其他工具來做線上面試。

考察點

  1. 溝通能力:能不能釐清面試官所問的問題。
  2. 架構思路:釐清問題後,能不能清晰表達、並架構思路,解決問題
  3. 語言熟悉度:藉由Live Coding去了解面試者的語言掌握度
  4. 分析能力:能不能清楚的了解,自己設計的解法,時間複雜度、空間複雜度
  5. 時間掌握能力:能不能在有效的時間內,釐清問題、想出解法、闡述解法、debug、分析複雜度

建議

  1. 找個通訊良好、網路良好的地方(我就曾經有過通訊不好,都聽不太到面試官的聲音)
  2. 提早15分鐘,就找個安靜的地方,測試電腦
  3. 準備紙筆,可以記錄面試者問的問題,進而提問
  4. Think Out Loud:當你在解題的時候,一定要大聲地把解法講出來,面試官也會考察你的溝通能力。
  5. 熟悉線上共同編輯界面:公司常用CoderPad或是其他工具來做線上面試。

On-site

當你通過了Phone Screen或Phone Interview,你會收到公司On-site的邀請,通常會是4 – 5組的工程師面試,大部份時候,最後一輪,會是Hiring Manager面試。

面試結束後,每個面試官都要寫下一份報告,去評估你的coding能力、溝通能力,解決問題的思路,最後會在整個面試結束後,開會做決定。

對於你而言,這是一個很好的機會去了解一個公司的文化,跟你未來同事互動的狀態,當你想成是一個雙向的互相了解的關係,可以從考試的狀態,變成雙向了解的狀態。

時間:通常會是一整天(ex: 9am – 4 pm)

建議

  1. 做功課:一定要瀏覽最近的面試經驗
  2. 休息:前一天一定要睡飽
  3. 時間:提前準備2 – 4週
  4. 練習:在面試前,請假幾天,練習Coding(如果正在工作的話)
  5. 穿著:穿Business Casual
  6. 提早:提早30 – 40分鐘到公司

例子

以Google面試為例,這一天會有四場技術面試,早上2場,下午2場,中間會有午餐面試。

I will study and get ready and someday my chance will come.

Abraham Lincoln

延伸閱讀:[北美求職] #0 軟體工程師面試資源,必備15個網站、2本書、4個Projects

講座:LinkedIn提升找工作效率

面試經驗與失敗例子

Google面試

以下就來分享一些,我許多的失敗例子,供你們參考,目的希望可以讓你更加熟悉每個公司的面試流程,跟大概會考些什麼。

我想透過我個人的辛酸血史,幫助你了解,各個公司考察的東西。我更多經歷的是中小型企業,中小型企業,我覺得問題相對更彈性,比較難預測,網路上資訊也相對少

規模時間公司名稱有考LeetcodeOffer
中型公司05/2018Cox | Software Engineer
中型公司09/2018Quantum Black | Junior Data Engineer
新創公司11/2018Tarifica | Software Engineer
新創公司04/2019Rodo | Software Engineer
中型公司04/2020Xandr | Senior Software Engineer
大科技公司05/2020Amazon| Software Engineer 2
中型公司06/2020MongoDB| Data Engineer
新創公司06/2020Click Therapeutics | Software Engineer
Amazon, Google面試表格

大科技公司(Amazon, Google面試)

Amazon| Software Engineer 2

這是我的Amazon面試經驗,非常的慘痛,希望給大家Insights,提昇大家的成功率!

OA

上一畝三分地,稍微瀏覽了最近的題目,沒想到我的兩題裡,有一題超爆難…….,有2個Test Cases沒過。

但幸運的拿到了On-Site面試。

Onsite:5輪 共5小時

  • System Design
  • Coding: Leetcode難題,解完後,問時間複雜度,跟follow up如何提升效率。
  • 純BQ
  • Coding:非Leetcode,偏Big Data 題。(掛….)
  • Object-Oriented Design:面試官人超好,非常熱情,設計一個類似Youtube的系統。

如果想準備System Design, Object-Oriented Design可以參考,我每個前輩、學長姐推薦的課程:

拒絕:我其中一輪coding慘,講不出個所以然。

中型公司

MongoDB| Data Engineer

Phone Screen

跟內部HR聊聊,主要聊我的相關經驗,聽說MongoDB的Phone Screen關很重要,如果不契合,通常不會進入下個階段。

Phone Interview:1輪 共1小時

Leetcode中等難度,考Linked List 題目。

Onsite:5輪 共5小時

  • Coding:一個原創題目,跟MongoDB內部相關,常用的資料結構,解題很快就解出來。主要在問有沒有用過Python Unit Test的package,然後討論如何設計Unit Test(沒有設計Unit Test經驗,後半慘)
  • Data Engineer:主要聊Data Engineer Core Concept,Map Reduce,Kafka的原理,更多著重在分散式運算的原理。
  • System Design:設計一個Data Pipeline,給DS跟公司內部使用,如果Query很慢,要如何解決。
  • Behavior:聊聊我過去的經歷,跟遇到問題的反應,還有為什麼想來這個Team,跟未來想要專注的方向。
  • Data Engineer:考Airflow基礎設置、EMR基礎設置、Scala基礎語言,就像是問答題一樣。

拒絕:因為沒有Unit Test經驗,跟分散式運算原理,沒有打的很好。

Cox | Software Engineer

Phone Screen

一個Head Hunter在LinkedIn上找到我,並且問我有沒有興趣,我就說有,然後就莫名其妙地獲得了Onsite。

Onsite:1輪 共60分鐘

這是我在美國的第一個On-site Interview,我當天沒算好時間還遲到了半個小時,還好還沒到我,兩個面試官,一輪60分鐘。

問題

  • 簡歷:為什麼學士學歷不是CS,但決定要念CS
  • Python:問了一些基本Python問題,set, list, tuple, garbage collection
  • Django:問了基本設置,View, Model, Url如何設置

一開始就問我的簡歷,聊我的背景聊得太開心,結果就忘記考白板了,面試官還說,啊!我們時間沒有控制好,來不及考白版。

後來其中一個面試官送我出去時,他說他之前有在台灣工作四年,住在台大附近,並且說台大是間好學校,握握手。

隔天,Head Hunter就打給我很興奮的跟我說,我錄取了!我的第一個Offer!!

Quantum Black | Junior Data Engineer

一個麥肯錫買下來的科技新創公司,朋友錄取後,強烈推薦我申請看看,我就直接投了,HR就寄了OA給我。

OA:1輪 共90分鐘

  • SQL
  • Algorithm

用Hackerrank,90分鐘,三個問題,題目都不是常見的考題,面經也幾乎查不到,但難度不算太難。

Phone Interview 1:1輪 共60分鐘

電話面試,60分鐘,面試官主要是問我最喜歡的演算法是什麼,為什麼?我就回答了Python裡面內建sorting Algo,並且分析了時間、空間複雜度。

PS:我同學說,面試官相當喜歡我。(我心裡就想,啊!有機會拿offer嘛!!)

Phone Interview 2:1輪 共60分鐘

一個Principal Data Engineer給了我一個Data,並且設計了5 – 10問題,先是解釋了每個問題跟目標,然後中間給了我30分鐘去分析資料,然後完成這些問題。

中間就先斷線,我自己在電腦上跑一些分析。

然後30分鐘後,在撥電話給面試官,講解我怎麼分析,跟每個問題的答案。

心得

結果,他們目前在招Principal Data Engineer,所以就跟我說,等年底招Junior的時候,再跟我聯絡,欲哭無淚 QAQ,

Xandr | Senior Software Engineer

一個廣告投放公司,原本叫做App Nexus,後來被AT&T收購。廣告組裡的Data Team。一畝三分地,就僅僅一條面試經驗。

Phone Screen:1輪 共20分鐘

一個Head Hunter從LinkedIn inmail問我有沒有興趣。可見LinkedIn多重要!?!

延伸閱讀:[北美求職] #3 LinkedIn教學,提升找工作效率的3個技巧

Phone Interview:1輪 共1小時

Hiring Manager(Senior Software Engineer)面試一題Leetcode簡單題,按造解題步驟、講解思維,並且走過幾個Test case。

延伸閱讀:Xandr电面 面經

Onsite:5輪 共5小時

  • Coding: 考Leetcode類似題,但是面試官完全自由發揮,我答的非常差,光是講演算法設計,都沒機會上code。(掛)
  • Coding & System Design: 考一個Leetcode簡易,很快地就解出來,Test Case全過。
  • Product Design: 白板設計他們的新系統,從釐清PM的要求,了解目前系統,要整合目前系統,並且設計新的系統的後端。
  • Hiring Manager: 上次已經聊過了,就繼續聊聊天XD
  • VP: 一樣也是開心的聊聊天
  • HR: 關心我一下,整理面試流程體驗,稍微講一下什麼時候會答覆我。

可能是第一輪整個炸掉,我很理所當然地收到了一個Reject。

小科技新創

Tarifica | Software Engineer

我畢業第一份Full Time工作,一個電信顧問新創,提供客戶,各國電信的資料與Benchmark分析。

Onsite:3輪,90分鐘

  • Manger:稍微解釋一下公司是做什麼的。
  • Software Engineer:給我了一張考試卷,考演算法、Python,大概15分鐘,兩面。
  • Data Scientist:隨便跟我聊天

有Offer:隔天Manger打給我,收到offer隔週上工。

Rodo | Software Engineer

我的第二份Full Time工作,一間Car Leasing Platform的新創公司,位在曼哈頓。

Onsite:3輪,60分鐘

主要問我系統設計,

  • 如何設計Data Pipeline?
  • 如何設計error alert?
  • SQL的基本問題

有Offer:後來CTO當下就問我說,我最快什麼時候可以上工,薪資問題,我就當下獲得了Offer!!!

Click Therapeutics | Software Engineer

一個做digital治療的新創公司,我覺得還滿酷的,一個Head Hunter推給我的。

Phone Interview:1輪 45分鐘

Senior Software Engineer面試,考一題類似Leetcode的題目

我就講解我的想法,開始coding,然後分析我的時間複雜度、空間複雜度,面試官要我實際跑我的code,來確認我的code可以完成問題。

過了一週,我就收到onsite通知。

Onsite:2輪 共120分鐘

  • Coding Session:電話面試,同個面試官,面一個Tree的題目,是一個Leetcode上沒有的題目。難度:中偏難
  • System Design:設計一個停車場app,從app到DB,到Cache,流量考量。

收到拒絕:我應該是在系統設計上,沒有答的很好。

面試準備常見問題

Q1: 如果要準備刷題,你會建議怎麼開始?

這個問題,會根據你目前的狀態而言,我分為以下5個階段

階段一:還在熟悉一種語言中

會建議挑一個你喜歡的,如果都還沒確定,可以從Python學起,我覺得是裡面門檻相對低。

Python:讓 Python 成為你的第二外語我來美國前的Python啟蒙課程,從最基礎的語法、結構、簡單的例子,帶你學會Python。我就在當兵的時候,邊上這個課,沒想到之後就靠Python吃飯。
Java:Java Programming Masterclass for Software Developers從最基礎的環境設置,編輯器,到Java語法,物件導向設計的教學。超過47萬學生上過的課。
C++:Beginning C++ Programming – From Beginner to Beyond也是從最基礎的環境設置,到基礎C++語法,字串,寫Functions,到最後STL(Standard Template Library),超過9萬的學生,上過的課。
基礎程式語言整理表

有我的專訪文章,我如何半路出家,從0學習程式。

延伸閱讀:非典型程式人:在太平洋彼岸 看見城式的光芒。程式、還是城市? 他在紐約 看見更多的可能性

階段二:已經熟悉一種語言,從0開始刷題,需要補足DS, Algo知識

這個階段,就是要了解面試時,該注意什麼,除了開始了解Leetcode問題,大概要了解有哪些種類。

我會建議上這個課:Master the Coding Interview: Data Structures + Algorithms

面試導向的教學,裡面涵蓋7個必須知道的資料結構、最常考的4個演算法,超過5萬學生上課的課程。下圖是課程的內容大綱,也是技術面試需要會的內容。

階段三:已經刷過幾題,已經有DS, Algo知識,了解Leetcode的介面

我會建議把Leetcode分成

  • Array
  • String
  • Trees
    • DFS
    • BFS
  • Graphs
  • Linked Lists
  • Recursion
  • Sorting&Searching
  • DP
  • Design

我目前是這樣分類,按著去分類從easy開始刷題,然後練習medium。

階段三:已經刷過50-100題,想知道怎麼提升效率

如果已經刷了50到100題,大概熟悉了Leetcode題目,並且開始按分類刷題了!

就繼續按著分類刷下去,把每個主題刷熟,並且每次按主題「總結」收穫。

階段四:已經刷過150-200題一次,電話面試該怎麼準備?

我會建議找你的朋友、有面試經驗的朋友,或是已經在公司裡當面試官的朋友,進行Mock Interview。

並且面試前,要在一畝三分地、Leetcode上找面經,提前了解最近公司的面試走向

  1. Mock Interview
  2. 找面經
  3. 練習流程

這個階段,主要練習的是溝通、提問,跟練習將思路講解出來!

  • 聆聽題目
  • 覆述確認題目
  • 提問:
    • corner case
    • Algo使用
    • DS使用
  • 講解思路
  • 確認面試官同意
  • coding
  • 自己走過一次test case

階段五:已經刷過150-200題一次,已經電話面試過一兩次,想知道回饋

可以再跟有經驗的人Mock Interview,然後將上述的流程熟練。

這時候你可能也會需要練習BQ,也可以將常見的BQ,打在Google Sheet,提升自己的應對能力。

Q2: 如果要準備OOD,你會建議怎麼準備?

我在會建議這個課程:Grokking the Object Oriented Design Interview,比起學校的課程,他是為了面試設計的。

這也是我在面試大廠前,問學長姐,他們一致推薦的課程,我自己上完也覺得很有效,面試的時候,也真的面了類似的問題。

所以你可以從0開始,並且了解科技公司面試時,會問什麼問題,快的話,大概一整天可以速速補起來,建議可以花一個週末,或一週準備。

Q3: 如果要準備System Design,你會建議怎麼準備?

我在會建議這個課程:Grokking the System Design Interview,比起學校的課程,他是為了面試設計的。

這也是我在面試大廠前,問學長姐,他們一致推薦的課程,我自己上完也覺得很有效,面試的時候,也真的面了類似的問題。

所以你可以從0開始,並且了解科技公司面試時,會問什麼問題,快的話,大概一整天可以速速補起來,建議可以花一個週末,或一週準備。

Q4: 如何提升簡歷,通過簡歷關?

我會建議可以參考:[北美求職] #2 英文履歷的5個原則、履歷範本,美國科技公司注重什麼?

我把我的簡歷拆解成,五大區塊,目前我的簡歷也都有通過大廠的簡歷關,所以希望對你有幫助。

文章裡,也有我錄製「Resume&LinkedIn」講座的影片,可以讓你參考。

如果你需要我幫你改簡歷的話,也可以預約我的「簡歷諮詢服務」,有讀者因此拿到了Facebook Offer。

結論

藉由分享常見的大公司面試(Google面試, Amazon面試)流程,跟我個人許多失敗的經驗,希望可以幫助你,了解市場在考察什麼,當你了解面試都在考察什麼,將可以進一步幫助你準備面試

這也是為什麼「美國求職」系列,我是先寫面試流程,在寫怎麼準備面試。當了解了面試需要「考察」的內容,我覺得在準備面試過程中,也會更了解要怎麼準備

  1. 了解面試流程
  2. 準備面試

下一週,我會寫,如何準備技術面試、非技術面試,這個過程通常需要準備3 – 6個月不等

本週作業

作業一:瞭解你想申請公司的面試流程

聯絡3個你想申請公司,並且有面試過該公司經驗的朋友、或已經在裡面工作的朋友,了解面試流程。

  • 想申請的公司
  • 跟朋友聊聊天

跟有經驗的人學習,總是成長的最快。

紐約工程師Jack

作業二:學習用論壇,來找你申請公司的相關資訊

去Glassdoor或一畝三分地,查面試經驗,來了解公司都會問些什麼樣的問題。

鼓勵

最後,恭喜你,準備即將要到下個職涯階段,在北美找工作,比較像是一場馬拉松,可能需要提前準備,整個找工作過程也可能1 – 6個月不等。

也許過程中,會跌倒,會收到拒信,但沒關係,再爬起來,繼續奔跑,奔向夢想吧!我自己也是收過很多拒信,一次又一次的提升,我相信你也會找到你心儀的工作的!(共勉之 😀

累的時候,就聽聽歌,休息一下,再回來繼續練習、繼續奔跑,希望這個部落格,可以陪你走過追夢的一哩路!

Operate the Title before you have the title

紐約工程師Jack

這是一句我很喜歡的話,假設我想要投Senior Data Engineer。

我就會去搜尋,現在市場上,這個職位都需要什麼技能,反過來看,在我現在的工作上,可以怎麼使用、熟練,未來需要的技能。

進而準備我下一個階段需要的東西,如果你還在學校,在你搜尋你未來想要的工作,也了解需求技能,就可以在你的Project中,盡量加入這些技能。

給自己時間、準備,成長,相信你一定可以找到你喜歡的工作。

左圖,截圖於「成功,從聚焦一件事開始: 不流失專注力的減法原則」這是一本我最近讀的書,我覺得很呼應,我在準備求職的過程。

先想著下個階段目標,進而花時間準備,規劃成,每個月的目標、週目標、日目標。

I will study and get ready and someday my chance will come.

Abraham Lincoln

放鬆小品

我知道準備面試過程中,真的非常辛苦,而且這種高壓、沒有盡頭的感覺,會持續一段時間,來看個TechLead,我個人覺得他滿好笑的XD

如果你覺得這個部落格有幫助到你,歡迎你分享這篇文章給3個對他們有幫助的朋友。

紐約工程師Jack

支持、聯絡我的3個方式

方式一按讚 or 留言

Facebook 粉絲專頁 按讚,或在下面留下你的問題。

方式二請我喝杯咖啡

歡迎你請我喝杯咖啡,也讓我聽聽你的故事。

方式三幫我拍手 5 下鼓勵我

只要花 30 秒登入 FB 或 Google,不用花任何錢就能支持我,並且幫我拍手舞下,回饋將由 LikeCoin 基金會配發,支持我繼續寫更多優質文章,幫助更多人 😀

每次聽到讀者回饋,我都很開心自己寫的文章真的有幫助到人,也很喜歡聽聽不同朋友的故事,希望藉由文章,幫助到你!:D

北美求職攻略

You may also like

8 comments

苏铠均 July 11, 2020 - 7:53 pm

FAANG 现在美国科技的五大巨头公司,每个年轻人都想进去的公司!只能说热忱真的很重要,对工作的激情是演不出来的!

Reply
Jack July 11, 2020 - 8:14 pm

真的!而且需要準備面試的時間、精力,都不容小覷 😀

Reply
CHENYUCHUN July 12, 2020 - 3:28 am

要去五大巨頭公司面試
果然不輕鬆!!!!!
也是要做足很多功課

Reply
Jack July 12, 2020 - 9:01 am

真的,至少都要提前6 – 8個月前開始準備,
過程也滿高壓的,希望用我的失敗例子,可以幫助更多人 😀

Reply
HL July 13, 2020 - 7:04 pm

美國科技公司通常都是很多年輕人嚮往的目標,有這樣的好文分享,真的是造福大家了!

Reply
Jack July 13, 2020 - 7:17 pm

謝謝鼓勵 😀 希望能幫助在求職的人們

Reply
Michael August 24, 2020 - 2:51 pm

我大學讀的也是生物相關,後來決定轉行剛讀完CS碩士,對轉行找新工作也是一頭霧水,你的經驗談給了蠻大的幫助,至少讓我知道了該如何準備,再次感謝, 希望能有更多文章可以拜讀.

Reply
Jack August 24, 2020 - 3:26 pm

太感動了!聽到對你有幫助,真的很開心,
因為我自己也是這樣誤打誤撞,所以才想了這個「美國求職」系列。

希望,我之前來美國前,就能了解美國當地真實的求職狀態、流程。
進而幫助我準備,因為面試準備,至少要3 – 6個月。

好的!之後我會再努力生產,一些對於「美國求職」相關文章。

如果你有問題,也都能跟我討論 😀

Reply

Leave a Comment

error: Content is protected !!