[心得][美國] 幾年的面試者+面試官經驗
鑑於近年來LeetCode刷題被神化,被認為是面試必備
所以我想以5年多以來無論是當面試者還是當面試官的經驗
來分享一下如何準備面試
首先先分享一下我的經歷
我不是什麼強者,沒有參加過ACM競賽,Code jam頂多做兩題
美國碩士畢業後,LeetCode刷了250題左右,Google onsite後被HC拒了
去了另一家公司後,待了幾個月上個簡單的課之後就開始當面試官
才開始理解到面試官要的是什麼,之後FLAG裡除了FB沒面過外其他Offer都拿過了
以下從面試官的角度分析該怎麼準備
面試官不是專業的
面試官其實只是工程師稍微上點課知道什麼該問什麼不該問,還有態度該如何
除此之外和你一樣就只是個工程師,因為平常都在工作對刷題肯定比你陌生
所以大部分面試官其實都只關注幾點(應該說是被要求要注意哪些部分)
1. 有沒有問對的問題
其實主要是想要看面試者的互動能力,通常面試官會簡單的把題目敘述一下
這時候就是希望面試者可以主動重述題目,然後對題目的外在環境提出問題
例如: input的範圍限制?、data是online/offline?、output的格式?
這時候就是想測試面試者有沒有能力把一個問題轉化成一個可執行的計畫
2. 程式碼的可讀性/乾淨程度
理由很簡單,面試官都是假設以後要和你一起工作的,所以平常練習請把程式碼寫乾淨
變數命名合理一看就知道作用,一個function一個用途,不要擠太多不相關的邏輯
可讀性差通常在評分上是致命的,而且是大多面試官無法忍受的
3. 溝通、溝通、溝通
面試官都被要求把面試當作和一個不熟的人一起做個小專案
這時候溝通很重要,不要讓面試官一頭霧水不知道你現在的進度是哪裡
就算你知道題目怎麼做,你解題的流程可能也和面試官不同,或者是對實作的見解不同
溝通在評分上是"絕對致命",你悶頭自己把答案寫出來不代表很聰明
而是未來和你工作很辛苦
4. 測試!
這是刷題的後遺症,面試沒有一鍵測試這種功能
請自己在重述題目時順便想好哪些可以測試的input/output,並且包含edge cases
很多時候不是自己解題的想法錯了,而是實作中的bug
面試官也不會主動幫你走程式的流程來幫你驗證對不對,請自己證明自己寫的是對的
少了測試有時候你會聽到面試官說:「我想應該是對的吧」
這時候回頭肯定會在你的評分裡寫上少了測試
少測試的扣分可大可小,看題目的難易度
5. 有沒有解出來,有沒有optimal solution
其實這部分只要有個一般解,測試過了,基本分就拿到了
optimal solution基本上除非你是被考了很簡單的問題
不然只要你能和面試官討論怎麼優化,有哪些trade-off,就拿到基本加分了
實作不是一定必要,或是一定得寫完整,因為你的一般解已經展現實作功力了
以上是大公司FLAG/FAANG的基本面試要點
一些新創的奇怪面試又是另外一回事,也很難分享如何準備
另外System Design是一個比較難標準化的東西,所以我就不獻醜了
回到要不要刷題這個問題,我認為的是
- 刷題可以幫助你熟悉/複習演算法和資料結構,所以刷一下是需要的
- 題數不用多,如果你可以看到一個題目立刻知道怎麼解,那題就不用繼續寫了
- 刷題請給自己限時,1小時/45分鐘的面試通常只會給你45/30分鐘的做題時間
扣除掉各種溝通問問題的時間,我都是給自己每題20~30分鐘
- 如果你確定onsite要用板書,做題時請分配一些給自己用紙筆作答
- 自己先想好怎麼測試,不要過度依賴LeetCode的工具
- 語言不重要,除非你確定你要面試的公司只考特定語言
- 考前請人給你mock interview訓練臨場反應和溝通,這和刷題同等重要
以下刷題數僅供參考
因為我每次重新刷題都會開一個新session,所以有記錄我每次刷的題數
第一次跳槽90題,拿到Apple、VISA和新創(其實Apple不考算法題)
第二次跳槽110題,拿到LinkedIn和獨角獸新創
第三次跳槽140題,只面Google且拿到Offer
最後祝大家Offer拿好拿滿,希望這篇文章能幫助不知從何準備面試的人
--
推推
推推
推推
太感謝了 好文
推推
推推
謝謝分享,另外想請問能否分享要求給予題目提示的技巧呢
?
卡題的時候建議是不要直接說「我該怎麼做」之類的 毫無頭緒的情況下最差是先用暴力法做推理,99%的題目應該可以至少用暴力法解 推理之後再開始討論優化的問題,這時候就可以間接問「我該怎麼優化」
感謝分享
感謝經驗分享
推
推!感謝經驗分享
推
好文
謝謝分享!
推
這才是正確觀念,建議有在刷的好好看。不要光湊題數背答案
。
面試考leetcode也不是只考寫出來正確答案。
推好文
推推
推
推推
美國的ip 要求風格的國度 解題方式不同是溝通問題...
那還是背書cp值比較高
直接背優化的解
推,謝謝分享
觀念正確
推,Apple不考算法題(? 是看組嗎
還是說會考只是考得比較少之類的呢
Apple看組,因為各個部門獨立招人 肯定有算法題考比較多的組,我面的那次全是相關系統實作 面試前建議和HR詢問面試內容
※ 編輯: LordCHTsai (73.222.35.91 美國), 03/01/2021 15:33:45感謝分享,方便問大大是哪個領域的嗎~app, backend,ml?
fullstack,frontend(web)/api/backend全包
※ 編輯: LordCHTsai (73.222.35.91 美國), 03/01/2021 16:07:10大推!觀念很棒 :)
推推 感謝
前陣子面G,平均每關寫兩題,但被HC因為完全沒有執行4拒
絕了,習慣的培養很重要,面試不能當比賽在打
測試真的很重要而且很容易被忘記,見過不少面試者因為沒測試被打槍
請問系統設計有沒有什麼拿分的關鍵呢?
跟樓主一樣偏前端和全段方向,系統設計可以不要在後端db著
墨太多嗎?
系統設計我個人認為溝通大於一切 只要一開始能夠和面試官溝通,例如 - 設計要涵蓋架構裡的哪些部分,哪些可以假設有黑盒 - 什麼是MVP,面試官覺得哪些功能最重要,板書前就決定好P0 P1 之後照著討論好的計畫做清楚的板書(圖是不是標準UML之類的不重要) 剩下就看合不合面試官的喜好了
※ 編輯: LordCHTsai (73.222.35.91 美國), 03/02/2021 02:29:32推一下 測試很重要@[email protected]~ 我覺得應該說你實務做多了
就會知道測試很重要了@[email protected]~
正解 面FG時感受也是這樣 題目不難 重在溝通
推
推
感謝分享 推
謝謝分享
推一個
推
推
1那個真的很重要. 以前負責面試時就很愛出「不發問會
出問題的問題」XD 甚麼都不問只埋頭做的話會在review時
被質問為什麼會這樣. :P
推推
觀念正確好文
大推,正好需要
爆
[面試] 2021跳槽面試: Google/Linkedin/Oracle左思右想,身在科技業還是該承擔起分享面試經驗的責任 以下簡短介紹拿到面試途徑, 面試難易度評價及心得 跳槽職位介於SDE mid ~ senior level ------------------------------- Google (Offer)88
[心得] Google TW Software Engineer 面試心得本人目前在新加坡,最近剛收到offer,所以想來記錄一下心得 去年九月在linkedin收到hr面試邀請, 因為和hr說要準備一下,所以面試開始是在一個月後的十月 我自己比較喜歡寫c++,工作上用golang,刷題和面試都用c++ 1) Phone interview: medium79
[面試] 2020新鮮人面試(MixerBox/Nvidia/AWS/Sho自我介紹: 四大學碩 這篇文章大概分享我今年2月多到現在面試的結果跟心得 但有幾間公司還在等結果 因為疫情影響都沒什麼面試機會 原本想試看看新思的研替 結果連面試機會都沒有65
[心得] Google TW SWE 面試心得# Google TW SWE 面試心得 背景: 3yoe,做了兩年豬屎屋後受不了工作型態轉職Backend,目前約一年後端經驗 無奈薪水太低加上今年上半年各種外商擴招就開始面試 3月在LinkedIn 收到Google recruiter面試邀約,大多數recruiter都建議可以先準備一個54
Re: [請益] Google面試時都不能停下來想嗎?因為你搞錯面試的目的, coding面試是在了解一個面試者怎麼如何解題, 進而了解這個人適不適合當同事. 一般來說, 一個解題流程基本上大概是: (1) 釐清問題 (Input/Output, 特殊限制?)30
Re: [問卦] leetcode medium看完答案還是寫不出來看什麼題目吧 一些討論區的最佳解 簡化到失去可讀性 也失去題目的思維 要不看人題解 要不就是自己認真從頭到尾寫出來 對刷leetcode比較有用 依照本巨巨在矽谷面試別人的經驗 我準備的題目都是 馬上可以寫出暴力解 然後暴力解逐步優化 我個人最愛的就是01背包問題 因為暴力解超簡單 就一個東西只能放一次19
[心得] 面試心得之前有發過一篇,後來想說等Amazon面完再一起發 今天終於把Amazon面完了,分享一些心得給大家 背景: 四大CS學碩,目前在MTK做軟韌體 程式能力就一般,跟板上大神比差很多10
Re: [討論] 軟體工作真的有需要刷題嗎?最近才從刷題苦海中上岸 刷了五百多題後很幸運拿下faang其中一家的offer 我覺得對於我這樣剛畢業沒多久的人而言 有考白板題至少不會在面試時一定輸給多兩年三年經驗的人 (我只有實習跟side project 人家有正職經驗)7
Re: [請益] Google面試時都不能停下來想嗎?看了下推文 第一點 好像有些人覺得刷題==背題目 但其實這完全是不同兩件事 而背誦真的對面試沒什麼用 個人就有慘痛經驗 幾年前面FB 沒刷太多題 面試時完全被看破手腳4
Re: [討論] 刷題 Python or C++不太確定原原po找的是台灣公司還是美國公司 不過我可以分享一下我這一兩年灣區面試的心得 1. 該用何種程式語言 It depends. 一般來說新人或是general hire的面試不會特別要求你一定要用哪種語言 這種情況選你最熟悉但又有足夠的函式庫的語言通常不會錯