一亩三分地

 找回密码 注册账号

扫描二维码登录本站

微信公众号
扫码关注公众号
留学申请公众号
扫码关注留学申请公众号
查看: 3578|回复: 17
收起左侧

[找工就业] 面試準備心得分享(Offers from Uber ATG, Google, Facebook, LinkedIn, Slack)

    [复制链接] |只看干货
我的人缘0

升级   94.5%


分享帖子到朋友圈
tuanlung | 显示全部楼层 |阅读模式
本楼: 👍   100% (16)
 
 
0% (0)   👎
全局: 👍   100% (70)
 
 
0% (0)    👎

2018(10-12月)-EE硕士+3-5年 | 网上海投|BayArea 码农类General全职@UberGoogle, Facebook, LinkedIn, Slack, Zoox, Postmates

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?注册账号

x
想跟地裡的大家分享一下準備面試的經驗裡面有很多東西可能是老生常談了
但我想一些實戰的經驗能夠給一些正在準備面試且對於準備方式不夠堅定或是有點迷茫的小夥伴一點信心

先講一點我的背景, 還有這次面次的結果, 讓大家想一下有沒有參考價值再決定要不要讀下去:
我2014年從UCLA EE MS畢業, 搬到灣區在Synopsys做了幾年並拿到綠卡
後來舉家搬到紐約加入一間區塊鏈新創公司, 在那邊從IC慢慢做, 後來升了TLM又做了一小段時間(整個期間不到兩年, startup就是成長比較快但累)
在紐約生了孩子, 覺得大城市的好處都無法享受到, 所以決定搬回灣區

這次找工作主要目標是找比較穩定的大公司, 畢竟有新生兒, 會有好幾年都經不起折騰
最後拿到Uber ATG, Google, Facebook, linkedin, Slack, Zoox, Postmates的offer然後最後決定去Uber ATG

從我的描述應該可以看出來, 我剛畢業時並不擅長面試 (EE background轉職software engineer, 有點虛)
但這次感覺是抓到了一點訣竅, 所以想跟大家分享
當然, 面試是個玄學, 我可能完全搞錯了拿到這些offer的原因, 大家參考時請也注意到我的盲點

關於時間安排
這次準備面試, 我是利用了產假準備的(10週). 當然晚上還是要帶小孩的, 但白天就忍痛花錢請了個阿姨來家裡幫忙帶小孩
這種模式明顯是無法複製的, 但我認為如果我把準備時間拉長, 每天工作之餘花一到兩小時, 四到五個月後, 大概也能收穫類似的效果. 1point3acres

我在刷題與準備系統設計的時間比例上, 大概是3:1. 前期基本上都在刷題, 確定都拿到onsite interview之後才開始大量閱讀和練習系統設計
我在跟各公司的時間安排上盡量保持同步, 也就是分成五個階段: 1. 遞出申請 2. 與recruiter通電話 3. 電話面試 4. onsite interview 5. offer negotiation
這樣做有兩個主要的好處: 1. 方便compete offers, 能夠有更多的leverage去跟hiring manager談判 2. 我把所有onsite interviews集中在一周半的時間裡, 這樣就只需要飛到加州一次
整體來說, 在五個階段中, 第一階段花了一週, 第二階段花了一週, 第三階段花了3週, 第四階段花了約兩週, 第五階段花了兩週

關於簡歷
簡歷只有間單的一頁, 格式不花俏, 沒有一堆粗體或是底線
英文的部分我花錢請我前同事(一個technical writer)幫我來回修改過
內容的部分我是盡量讓每個project都包含可量化的成就
並且在最下面附上一些skills keywords讓recruiter方便過濾

關於申請
申請方面我是分成四個管道: 內推, 被recruiter聯繫, 求職網站投遞, 直接上公司網站申請
有內推的connection就盡量請朋友內推 - Facebook, LinkedIn, Slack, Pinterest就是這樣勾搭上的
被recruiter聯繫的有: Amazon, Google, Lyft
求職網站投遞包含了triplebyte, Hired.com, LinkedIn: Uber ATG 和 Postmates
直接上公司網站申請的意外有效: Zoox, Doordash, Coinbase, Square

關於刷題
刷題的練習我把它分成兩個維度: 深度和廣度
在廣度方面, 我按演算法和數據結構類型把題目分類(其實OJ網站都已經分類好),  然後挑經典的練習
在深度方面, 我把這些經典題目在限時時間內嘗試做一遍, 如果時間內想不出解法, 就會去找論壇裡的解答. 網路上有一些github repo是這類leetcode解答, 但我看過之後覺得論壇裡的解答往往比較有啟發性, 也比較值得學習. Github repo裡的程度參差不齊, 如果同樣都得自己挖出金子, 我個人是比較願意在論壇裡自己找, 因為來源比較廣
這些經典題目如果特別技巧性的, 我會記錄下來, 在第一輪之後, 會再刷第二遍
找解答時, 我除了專注於解法之外, 也很在意可讀性
很多解答強調用很少的行數解決問題或是runtime打敗90%的提交, 這樣我個人認為都不是面試時應該考慮的
面試時並不會去跟其他candidate的解答做runtime benchmark, 但你寫的code邏輯容不容易懂, 直接影響了面試官願不願意日後跟你合作, 有些公司的面試官可能就是你的同事, 而這一點往往是大家最在意的
當然, 這是在你的big O time complexity在同一個數量級的前提下. From 1point 3acres bbs

最終我從開始準備到面試結束, 刷過的題目不超過120題, 其中大約20題是在面試前幾天來地裡看面經搜集的, 而那100題是我自己找的各類別中比較經典的題目

關於系統設計
老實說, 我系統設計應該是最弱的一環, 因為我的前兩份工作都沒有接觸到backend分佈式系統也沒做過SOA, 而最後面試起來也確實導致我大部分offer都只有拿到L4, 所以這個部分參考價值就比較低.

儘管先天不足, 我還是做了一點準備, 沒有直接放棄
我準備的途徑主要有三個, 一個是閱讀grokking-the-system-design-interview網站的材料, 第二個是系統設計課, 第三個是跟我老婆討論system design primer上面的題目
即使我做了很多練習, 在面試時也都能夠跟面試官進行比較良好的溝通, 但我想面試官還是能夠看得出來我實操的經驗不足
我猜給他們的感覺是: “這個candidate雖然好像沒有相關經驗, 但有一些背景知識, 給予一些幫助, 似乎能夠很快上手”, 所以可能給了weak hire

關於面試
每一輪面試的前兩天我都會來地裡找最新的面經, 然後練習
命中率大概30%
我算法面試全部都能解出來, 儘管有一些是在對方給提示之後
對於算法面試, 我建議大家按照這個流程走:
clarify問題本身, 確認input/output的類型和特點
跟面試官描述一個可行解, 並解釋它的時間空間複雜度, 然後講一下你在直覺上認為這是不是最佳解, 如果不是, 稍微講一下哪些地方可能可以優化 (即使你還不知道怎麼優化), 然後跟面試官說你現在想要花時間想一下能不能想出一個最佳解. 如果你題目理解錯了, 一般來說面試官會在這時候糾正你.  如果面試官同意讓你再想一想, 那就進入下一步
這時候一般你會花一點時間去想最佳解, 如果你不擅長一面講一面想, 你這時候稍微沈默一下是可以的, 因為你前面已經跟面試官解釋你在思考什麼部分了.
如果你花的時間有點長, 一般面試官會給你一點提示或是鼓勵你直接進入coding把可行解寫出來. 如果面試官比較不在狀態, 那你可能得自己把關一下時間, 你如果覺得時間快要不夠你寫出可行解的話, 你可以問面試官說你可不可以先寫可行解, 然後可能寫一寫會有靈感. 基本上就算最後真的有靈感也來不及做了, 這邊就只是一個讓你有機會進入coding的一個理由.
如果想出最佳解, 一樣大略解釋給面試官聽, 最好舉個小例子, 然後講一下時間空間複雜度.
不論你最後打算實現可行解還是最佳解, 記得要讓面試官同意你的解法再開始coding
開始實現, 一面寫一面解釋給面試官聽, 這不是說你寫一行講一行, 畢竟你前面已經花很多時間讓面試官有預期你要寫什麼了, 所以你可以假設大部分地方不用解釋. 而且你前面溝通如果做得好, 很多面試官會在你coding時犯小錯誤時直接提醒你. 你不用緊張這樣被扣分了, 就把面試官當成pair coding的同事就可以. 那什麼地方需要特別解釋呢?你寫到一些比較繁瑣或是複雜的部分, 就是那種你在codebase裡面也會加註解的code那你就解釋一下, 這樣可以省去打上comment. 另一種狀況就是你寫的有點亂, 但你想晚點回來refactor到function裡面, 你可以先說一下, 這樣不會給人你code readability很差的感覺. 而你也能繼續專注在你的logic而不是refactoring上面
實現結束之後, 不要說你寫完了, 也不要compile & run. 而是先試試用手演示general test case給面試官看. 這個部分要盡量畫圖或是在IDE上面keep track of variables, 讓面試官很輕鬆的可以跟上. 這個部分成功之後, 馬上告訴面試官你想試一下corner cases. 一樣用手演示.
如果你在過程中自己發現bug, 或是面試官急不可待地給了你一個反例, 不要急著去改code. 先好好看一下這個反例, 說出這個反例的什麼特徵造成這個bug, 然後跟面試官討論一下解決的辦法, 然後再動手改, 我自己做面試官時看過太多candidates急於改bug然後又寫錯, 這是一大忌
如果test演示都過了, 那你應該很有信心可以compile & run了, 那就試試吧, 如果又遇到bug, 扣分已不可避免, 但一樣心平氣和按照前面test發現bug來處理

至於system design, 我面得不是很好, 所以我就不誤導大家了

就面試整體來說, 我認為從來不需要表現完美, 除非市場真的嚴峻, 很多公司就是想要找能夠對公司有正面貢獻的工程師. 意思是, 你不用是超強的菁英, 但你絕對不能是帶給團隊負擔的人.  所以如果你給不出最佳解, 但是寫code邏輯很清晰, 溝通很良好, 很能接受面試官的意見, debug時條理清晰且不會病急亂投醫, 那你還是很可能得到weak hire.. 1point3acres

最後再強調兩件我認為最重要的事, 一個是有意識地友善溝通, 不是有講就好, 而是真正看著對方的眼睛, 聽對方說話, 確保自己聽懂, 也確認對方聽得懂你說什麼. 我也曾遇過態度很糟糕的面試官, 或是口音太重聽不懂對方說什麼的面試官, 但是我都用肢體語言想辦法讓對方engage.
我曾經遇過google的面試官坐下來給我一張紙, 上面有題目, 就讓我寫, 而且說中途不用解釋給他聽, 然後他就開始幹自己的事
但我還是盡量把我的想法講出來, 最後他把他緊急的事處理完之後也engage了
為什麼這個這麼重要呢?說一點玄的, 我自己做面試官跟其他面試官討論時, 常常會聽到那種“candidate沒把題最佳解想出來但是溝通很順暢“ , 還有“candidate聽到題目什麼也沒問就把最佳解完美寫出來很可能是看過這個題”的comment. 其實講白了點, 這都是面試官自己的主觀意識, 都是偏心與臆測, 但是他們也是你可能的未來同事, 所以他們“想不想要”跟你cowork是很重要的

另一件事, 就是不要放棄, 即使面試官是個種族歧視混蛋且你待會準備跟hr抱怨他, 你也不要放棄
我自己在公司裡做面試官的經驗告訴我, 如果有三個candidates拿到這樣的score cards:
A: 100, 0, 80, 80, 80 -> one more round, or no hire
B: 70, 70, 60, 80, 80 -> weak hire
C: 80, 80, 80, 80, 0 -> no hire
所以如果確定拿不到100分, 也得先爭取個60分. 因為red flag是很難很難挽回的. 1point3acres
-baidu 1point3acres
關於薪水談判
這我不能說是非常擅長, 所以我就只講兩點
進入到談薪水階段, 即使你不缺錢, 你也應該把這當作一個數字遊戲, 目標就是要把你的package maximize. 這是數字遊戲, 跟你和未來manager的關係沒關連 (level 則是很有關),  跟你是怎麼樣的追求也沒關.
Competing offer是你真正的leverage, 但即使你沒有competing offer也應該試著用你能想到的理由negotiate, 因為很多manager出價時已經把講價空間保留了, 就等你開口

後記
我還很junior, 上面談的東西很多都太武斷了, 我未來回來看必定會覺得很羞愧
但我相信有一些東西還是有參考價值的, 希望地裏夥伴一如既往不吝指正.

评分

参与人数 48大米 +179 收起 理由
rockli + 5 给你点个赞!
余宇Sabrina + 2 欢迎分享你知道的情况,会给更多积分奖励!
Ecimo + 1 给你点个赞!
t__c___ + 2 很有用的信息!
jjwisest + 1 给你点个赞!
tiffany345 + 1 赞一个
follow_ur_brain + 3 谢谢你的分享!
diffmani + 1 赞一个
littlebambiben + 2 给你点个赞!
shipeiyang + 1 赞一个

查看全部评分


上一篇:求问Akuna的personality assessment
下一篇:研一简历 求批改建议

本帖被以下淘专辑推荐:

我的人缘0

升级   94.5%

 楼主| tuanlung 2020-11-2 10:09:03 | 显示全部楼层
本楼: 👍   100% (3)
 
 
0% (0)   👎
全局: 👍   100% (70)
 
 
0% (0)    👎
ItIsTime 发表于 2020-11-2 09:06
真的很厉害
不过一开始以为lz是生娃的那一位。。。惊呆了

謝謝, 不過忍不住想替我老婆說一句
我老婆剛生完沒多久, 也是利用她的產假準備面試然後拿了一手offer最後選擇去了Airbnb
我是個凡人所以我覺得我的方式比較能夠複製, 我老婆的方法, 我個人覺得自己是學不來
等她有空, 我可能請她上來地裡分享吧
回复

使用道具 举报

我的人缘0

升级   94.5%

 楼主| tuanlung 2020-11-1 14:15:17 | 显示全部楼层
本楼: 👍   100% (2)
 
 
0% (0)   👎
全局: 👍   100% (70)
 
 
0% (0)    👎
ChrisTineL. 发表于 2020-11-1 07:53. 1point3acres
楼主愿意share120题的题号吗?跟前辈请教。

你好, 我不敢妄稱前輩, 目前只能算是混口飯吃而已

很可惜我找不到當初整理的excel了 (現在都轉移到google sheet上面但是舊資料都流失了)

但我找到這個list, 我覺得跟我當初練習的100題目挺接近的 (另外那20題純粹是個別公司的面經, 都在地裏我就不一個一個挖出來了, 因為估計題目也換了)
https://www.lintcode.com/ladder/2/


评分

参与人数 2大米 +2 收起 理由
dylen + 1 赞一个
ChrisTineL. + 1 感谢回复和分享!

查看全部评分

回复

使用道具 举报

我的人缘0

升级   94.5%

 楼主| tuanlung 2020-11-1 14:10:40 | 显示全部楼层
本楼: 👍   100% (2)
 
 
0% (0)   👎
全局: 👍   100% (70)
 
 
0% (0)    👎
ohuohuo 发表于 2020-11-1 05:02
”刷過的題目不超過120題, “。。大牛级别了吧

哈, 真心不是大牛, 我以前也曾經試著刷很多題(剛畢業時), 但是只顧了廣度沒有顧到深度
而且會有一種看到題目就想起很多類似的題目, 反而不能頭腦清晰地面對眼前的題目
而且刷得多卻不深的話, 因為沒有反覆加強對的解法, 在腦中的印象就包含了那些走錯的路, 每個的神經連結路徑都差不多強烈, 反而很困擾
如果我反覆練習一些經典, 並且深化那些最好的解法, 就能夠應用到很多題目上
回复

使用道具 举报

我的人缘0

升级   17.29%

ohuohuo 2020-11-1 05:02:44 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   92% (81)
 
 
7% (7)    👎
  ”刷過的題目不超過120題, “。。大牛级别了吧

评分

参与人数 1大米 +1 收起 理由
tuanlung + 1 给你点个赞!

查看全部评分

回复

使用道具 举报

我的人缘0

升级   91.5%

fish1994 2020-11-1 05:23:12 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (87)
 
 
0% (0)    👎
非常诚恳的一篇分享!

评分

参与人数 1大米 +1 收起 理由
tuanlung + 1 给你点个赞!

查看全部评分

回复

使用道具 举报

我的人缘0

升级   44%

本楼: 👍   100% (1)
 
 
0% (0)   👎
全局: 👍   100% (33)
 
 
0% (0)    👎
写的太棒了,对于明年要找full-time的我帮助很大,谢谢楼主!

评分

参与人数 1大米 +1 收起 理由
tuanlung + 1 给你点个赞!

查看全部评分

回复

使用道具 举报

我的人缘0

升级   93.5%

ChrisTineL. 2020-11-1 07:53:38 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   92% (692)
 
 
7% (59)    👎
楼主愿意share120题的题号吗?跟前辈请教。. 1point3acres

评分

参与人数 1大米 +1 收起 理由
henry_xjtu + 1 全刷了不香么

查看全部评分

回复

使用道具 举报

我的人缘0

升级   5%

本楼: 👍   100% (2)
 
 
0% (0)   👎
全局: 👍   99% (326)
 
 
0% (2)    👎

楼主说得好好,谢谢分享,好多地方我都深有体会…
我第一次实习面试被问 system design 的时候完全没有准备。get 不到面试官想问什么,只能努力去理解面试官的问题,对 hint 积极思考与回应,并且一直表达自己的想法。我猜我应该展现了一种「菜,但好学」的态度吧… 面完心都凉了,最后竟然过了
我做算法题的时候也是先说思路,对方同意了才开始写,边写边说必要的时候停下来解释一下,看看对方有没有跟上有没有问题,觉得 code 太丑就会说写完了有时间可以 refactor。有好几次面试官看时间还多都让我 refactor 了,最后还会夸 code 质量不错

评分

参与人数 1大米 +1 收起 理由
tuanlung + 1 很有用的信息!

查看全部评分

回复

使用道具 举报

我的人缘0

升级   94.5%

 楼主| tuanlung 2020-11-1 14:06:50 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (70)
 
 
0% (0)    👎
lzx2012 发表于 2020-11-1 09:08
楼主说得好好,谢谢分享,好多地方我都深有体会…
我第一次实习面试被问 system design 的时候完全没有准 ...

謝謝你的鼓勵, 地裡大家互相幫助, 處處溫情:)
我真希望我在學校面試實習機會時就像你一樣渾然天成, 相信你的職業道路能夠走得很順利!


评分

参与人数 1大米 +3 收起 理由
lzx2012 + 3 给你点个赞!

查看全部评分

回复

使用道具 举报

我的人缘0

升级   37%

ItIsTime 2020-11-2 09:06:30 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   99% (332)
 
 
0% (1)    👎
真的很厉害
不过一开始以为lz是生娃的那一位。。。惊呆了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

隐私提醒:
■拉群请前往同学同事飞友|拉群结伴版块,其他版块拉群,帖子会被自动删除
■论坛不能删帖,为防止被骚扰甚至人肉,不要公开留微信等联系方式,请以论坛私信方式发送。
■特定版块可以超级匿名:https://tools.1point3acres.com/thread
■其他版块匿名方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

手机版|||一亩三分地

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

Some icons made by Freepik from flaticon.com

快速回复 返回顶部 返回列表