之前發(fā)面經(jīng)貼的時(shí)候别渔,有幾個(gè)人問我什么時(shí)候出個(gè)找工經(jīng)驗(yàn)總結(jié),當(dāng)時(shí)忙著找工作和學(xué)業(yè),口頭上答應(yīng)敷衍下去钠糊。到了寒假,沉迷游戲壹哺,今天在火車上抄伍,終于有段時(shí)間可以靜下心來好好總結(jié)下秋招的經(jīng)歷。
先從實(shí)習(xí)開始管宵,我在去年秋季很幸運(yùn)地拿到了Uber的Software Engineer Intern截珍,大家實(shí)習(xí)最主要的目的就是拿到return full-time offer,我也不例外箩朴,但是最后結(jié)果岗喉,在Uber這么一個(gè)高return率的基調(diào)下,我沒有拿到最后的return offer炸庞。我當(dāng)時(shí)在選擇team的時(shí)候钱床,憑著滿腔熱血選了core infrastructure,但是我只是一個(gè)轉(zhuǎn)cs不到1年的菜雞埠居,當(dāng)時(shí)做出這么一個(gè)選擇又是有點(diǎn)沖動(dòng)的梭哈查牌,也有點(diǎn)個(gè)人的興趣方向在里面,想挑戰(zhàn)下自己滥壕。最后我被分配到Software Network組纸颜,這個(gè)組主要負(fù)責(zé)Uber自己的DNS resolver,load balancer绎橘,traffic routing和health check胁孙。個(gè)人感覺就是Uber所有的micro service deploy都需要經(jīng)過我們組,一個(gè)中間鍵称鳞。我的mentor是一個(gè)美國(guó)人涮较,unc phd,現(xiàn)senior software engineer胡岔,我的manager是一個(gè)abc法希,現(xiàn)tech leader manager。小組構(gòu)成由若干個(gè)senior software engineer和一個(gè)sde2的abc小姐姐靶瘸。在第一周三天的orientation后苫亦,mentor給了我十分簡(jiǎn)單的任務(wù),給uber自己的resolver的結(jié)果加個(gè)filter怨咪,三下兩下半天就搞定了屋剑,但是發(fā)現(xiàn)code review要等到下周才可以通過deploy,覺得我的組是一個(gè)十分看重代碼質(zhì)量的組诗眨,尤其對(duì)于一些細(xì)枝末節(jié)的效率還有函數(shù)封裝export唉匾,test coverage都是十分嚴(yán)格的,每次我的diff都有十幾個(gè)comments。然后我就開啟我的intern正式project巍膘,背景是這樣的厂财,我們組一直處理的對(duì)象都是real production service,目前我們沒有staging test environment峡懈,組里希望搭建一個(gè)自動(dòng)化測(cè)試并且不要影響production service璃饱,然后一個(gè)想法就是prototype a bridge連通production service和staging service,把特定的幾個(gè)production service的信息全都實(shí)時(shí)更新到staging的zookeeper里面去肪康,然后其他組員負(fù)責(zé)搭建幾個(gè)prober來用staging的zookeeper來模擬一個(gè)production environment荚恶。我感覺也不是很難,第二周的時(shí)候我就把一個(gè)命令行工具版本寫出來work了磷支,但是模塊化做的很差谒撼,接下來4周,mentor讓我把命令行轉(zhuǎn)成一個(gè)micro service雾狈,做好模塊化廓潜,在第六周尾聲的時(shí)候deploy了。這時(shí)候正好是intern的期中調(diào)查箍邮,這時(shí)候感覺我非常順利茉帅,mentor和manager給的評(píng)價(jià)也是非常高,return offer也是on the track锭弊。然后接下來因?yàn)樗麄儧]想到我會(huì)把project完成的這么快堪澎,接下來3周多我就負(fù)責(zé)哪里需要我去哪里,給組里一個(gè)臺(tái)灣小哥improve一個(gè)jerkins check tool味滞。因?yàn)槊恳粋€(gè)micro service要deploy樱蛤,都要填寫相關(guān)的配置,我們是用一個(gè)git repo來存放所有service的配置信息剑鞍,然后如果其他組需要更改昨凡,就只要提交一個(gè)diff讓我們審核,我們就寫了個(gè)python腳本做一個(gè)precheck蚁署。這幾周我的任務(wù)就是幾個(gè)組員覺得要加啥feature便脊,就給我個(gè)task,我就去完成光戈,前后做了五六個(gè)feature哪痰,但是都不是很難的那種。在改進(jìn)的過程中閱讀代碼發(fā)現(xiàn)有一塊有個(gè)很tricky的改進(jìn)方案久妆,然后我就順便提出并且改進(jìn)了晌杰,發(fā)現(xiàn)所需時(shí)間從2s變到了0.2s。就在我認(rèn)為return offer應(yīng)該十拿九穩(wěn)的時(shí)候筷弦,最后幾周讓我措手不及肋演。我的manager在第八周給了我一個(gè)他自己的任務(wù),他負(fù)責(zé)的project出現(xiàn)了一個(gè)問題,go routine太多爹殊,tech leader覺得我們有必要減少這么多go routine蜕乡。然后他就說讓我看看,他太忙了梗夸,如果我能做一些貢獻(xiàn)我就做异希,做不出來也沒關(guān)系。我當(dāng)時(shí)就先負(fù)責(zé)之前說到的那個(gè)python project了就沒對(duì)這個(gè)project上心绒瘦。在我忙完那個(gè)python project后,就開始做這個(gè)扣癣。一開始manager只是讓我負(fù)責(zé)更新load balancer的接口惰帽,因?yàn)間rpc要deprecate之前的api,要去改成最新的api方法父虑,我就花了好多時(shí)間閱讀這個(gè)project代碼和grpc的代碼该酗,最后就在倒數(shù)第二周改好了,花了很長(zhǎng)時(shí)間士嚎。到了最后一周的周一呜魄,8月6號(hào),manager和我聊天說莱衩,對(duì)不起爵嗅,我們不能給你return as a full-time,但是你想return as an intern么笨蚁,我就呵呵了睹晒,不必了。最后一周我正好也重感冒括细,我就沒怎么去我工位伪很,每天就找個(gè)隨便的地方劃劃水,過完了我在uber的最后一周奋单。
當(dāng)時(shí)好多朋友得知我沒有拿到return都為我打抱不平锉试,后來仔細(xì)想想我也有一定問題所在。
1. 有一次manager找我聊天览濒,問我結(jié)束后打算呆盖,我如實(shí)地和他說我會(huì)積極面試,爭(zhēng)取多拿幾個(gè)offer匾七,然后uber一直是我的top choice絮短。感覺我這回答也太真實(shí)了,以后堅(jiān)決不這么實(shí)誠(chéng)了昨忆。
2. 在我完成我的intern project和那個(gè)python project后丁频,我確實(shí)精神上懈怠了,工作效率慢了下來,和前半期比起來是不如的席里。
3. 最后那個(gè)完成了一半的project是我manager直接相關(guān)的project叔磷,可能是因?yàn)槲覜]有出色完成,他對(duì)我的評(píng)價(jià)就跌入谷底了奖磁。但是我組里的另一個(gè)manager大哥為我說話是改基,這是一個(gè)tier0的project,(uber里的project有個(gè)評(píng)級(jí)咖为,tier0是重要性最高的秕狰,在我實(shí)習(xí)期間剛通過政策tier0和tier1的負(fù)責(zé)人oncall給錢了)應(yīng)該由一個(gè)senior才能handle住,我一個(gè)intern實(shí)在是做不太來躁染。
4. 因?yàn)閡ber實(shí)習(xí)可以填50h鸣哀,我經(jīng)常9點(diǎn)到公司然后呆到7點(diǎn)等供應(yīng)晚飯吃完回家,然后還可以多拿點(diǎn)加班工資吞彤,可能會(huì)有點(diǎn)不太好的影響我衬。
5. uber決定return的還有一個(gè)bar raiser,在最后一周我和mentor聊天的時(shí)候饰恕,mentor說他是選擇了我return as a full-time挠羔。我和manager聊天的時(shí)候,他說他也選擇了我return as a full-time埋嵌。我問bar raiser為啥斃我呢破加,manager說他看我的所有diffs,最后的diffs還是有很多comments雹嗦,覺得我作為一個(gè)intern在職期間沒有進(jìn)步拌喉。(內(nèi)心斃狗)但是我也不知道m(xù)anager有沒有說真話,who knows俐银。
這次的實(shí)習(xí)經(jīng)歷雖然沒能拿到full-time offer尿背,但是我也十分感激這次經(jīng)歷,不光自己總結(jié)并且吸取了很多教訓(xùn)捶惜,希望自己在全職的時(shí)候能規(guī)避這些我的問題田藐。也是有了uber實(shí)習(xí)的經(jīng)歷在簡(jiǎn)歷里,我才可以拿面試拿那么順利吱七,正式?jīng)]有ddl那么趕的return low ball offer汽久,我可以出去面了一大堆公司并且拿到心中的大包。
感謝大家先看了這么多關(guān)于我的實(shí)習(xí)經(jīng)歷踊餐。然后我開始講下我的找全職經(jīng)歷景醇。
首先背景介紹:浙江大學(xué)數(shù)學(xué)本科,CMU MSBIC吝岭,依圖+Uber工作實(shí)習(xí)三痰,圣母大學(xué)科研實(shí)習(xí)吧寺,Leetcode AC 250道左右(大多是找實(shí)習(xí)的時(shí)候刷的)。因?yàn)槲以趯?shí)習(xí)期間一直以為return offer十拿九穩(wěn)散劫,就沒怎么認(rèn)真刷題稚机,而且加上自己也懶,最后結(jié)束找工季的時(shí)候Leetcode也就AC了300道出頭點(diǎn)获搏。
第一家公司是Pony.ai赖条,當(dāng)時(shí)是獵頭介紹去面試的,實(shí)習(xí)期間通過了電面常熙,然后8.2去的onsite纬乍,也是實(shí)習(xí)期間請(qǐng)假去的。題目都是地里出現(xiàn)過的那些還挺難的題裸卫,只不過好玩的是我還被面了一道概率論的題目蕾额,我概率密度公式當(dāng)時(shí)緊張推錯(cuò)了,然后憑借直覺蒙了個(gè)就對(duì)了彼城,得意洋洋hhh。感覺面試過程還不錯(cuò)退个,聊得都挺順利的募壕,面完后hr還問我想啥時(shí)候做決定,預(yù)期薪資多少语盈,我就以為穩(wěn)了舱馅,對(duì)她說,cmu有規(guī)定刀荒,全職offer ddl不能早于11.15代嗤,我會(huì)在11.15左右決定。然后他家就一直沒給我回復(fù)缠借。在CMU秋季校園招聘會(huì)的時(shí)候我還去了他家的booth干毅,hr小姐姐立馬就認(rèn)出了我,還說出了我的名字泼返,還對(duì)我說穩(wěn)的穩(wěn)的硝逢,到最后還是沒有給我一個(gè)結(jié)果。幽怨臉绅喉。
第二家公司是FB渠鸽,在實(shí)習(xí)期間通過了電面,然后我就把onsite約的很早柴罐,因?yàn)閾?dān)心fb的cmu head count少的很快徽缚,就約在了8.19貌似。我沒有那么勤奮的精神把fb所有l(wèi)c題目全都ac一遍革屠,我就隨便刷了幾道找了下手感就去了凿试。onsite三輪全是國(guó)人排宰,然后總共做了五道題,感覺自己雖然沒有背過完美答案红省,但是憑借實(shí)習(xí)刷題的印象還有感覺额各,都把解法寫出來了,并且過了幾個(gè)edge case都對(duì)的吧恃,就以為fb也是板上釘釘?shù)氖虑橄豪玻偷戎鴒ffer,然后就可以秀了痕寓。然而在9.6傲醉,正好uber沒有return一周月紀(jì)念日,一封拒信砸臉呻率。事后回顧可能是因?yàn)樽约憾际乾F(xiàn)場(chǎng)想的解法硬毕,代碼可能不是很clean,而且有可能有些很惡心的corner case沒對(duì)(fb最喜歡這些)礼仗。而且在最后一輪bq面的時(shí)候出的題吐咳,面試官讓我先講完recursion和iteration的解法,讓我寫iteration的代碼元践,我當(dāng)時(shí)突然就卡主了韭脊,為了完成代碼,我問能不能寫recursion的单旁,面試官同意了我就改成recursion的了沪羔,事后想起來這可能是個(gè)坑啊。
來講下我最后決定去的公司Snowflake象浑,在MSBIC有一個(gè)我很崇拜的上一屆的學(xué)長(zhǎng)去了這家公司蔫饰。我找他內(nèi)推拿到了面試,先是2輪連續(xù)兩天同一個(gè)時(shí)間的電面愉豺。據(jù)說如果第一輪太差第二輪會(huì)直接取消篓吁。通過后去onsite,我當(dāng)時(shí)有四輪蚪拦,最后一輪是和CTO面試聊天越除,后一天開始的onsite都改成了三輪因?yàn)镃TO身體不適,還有可能來onsite的new grad有點(diǎn)多吧hh外盯。面試是很常規(guī)的算法題+BQ題摘盆,難度在medium和hard之間。他家特別有誠(chéng)意饱苟。9月初的offer一直讓我到11.15做決定孩擂。十分感動(dòng)并接受了他。要去追星了箱熬。
Tigergraph类垦。找拿到offer的同學(xué)內(nèi)推狈邑。他家很爽快,應(yīng)該也是比較缺人求賢若渴的蚤认。我說我直接順路要去onsite米苹,可不可以直接onsite。然后就安排了7輪onsite面試砰琢。我到的時(shí)候辦公室都沒幾個(gè)人hhh蘸嘶。中午吃飯的是和員工們一起吃的,感覺他們都挺有趣的陪汽。面試問題也很有意思训唱,不像其他公司單純考算法。唯一讓我很不開心的就是最后一輪VP的面試顯得很不尊重人挚冤,感覺他比較看不起轉(zhuǎn)專業(yè)的人况增。
Nero。一家做機(jī)器人的startup训挡,面試的時(shí)候出了一道挺tricky的C++題目澳骤,但是因?yàn)槲也徽?huì)寫C++,寫的代碼僅限于看懂澜薄,完全不能跑为肮。然后電面就給我掛了,這家招聘還是很迷的表悬,認(rèn)識(shí)朋友都沒咋面題目就拿到offer了,應(yīng)該是他太強(qiáng)了丧靡,直接就想要他蟆沫。
Cisco Meraki。這家公司還是不錯(cuò)的温治,只不過我onsite選擇了SRE饭庞,導(dǎo)致我面試的時(shí)候問題非常的不常規(guī),考了我debug nginx熬荆,及時(shí)自我感覺system design發(fā)揮完美舟山,但是還是因?yàn)槟禽唍ginx被脆拒了。選對(duì)崗位很重要卤恳!
Quip累盗。一家和google docs對(duì)著干的被salesforce收購的公司,onsite的時(shí)候感覺整個(gè)公司的氛圍還是很不錯(cuò)的突琳。面試都是很常規(guī)的算法題若债,還有一面上機(jī)的auto complete。
Pinterest拆融。這是一家我想都沒想到會(huì)拿到offer的公司蠢琳,當(dāng)時(shí)一直覺得Pinterest是個(gè)小而精特別高冷的公司啊终,感謝當(dāng)時(shí)剛放出崗位的時(shí)候?qū)W長(zhǎng)就直接linkedin上找到我?guī)臀覂?nèi)推,我以為每年pinterest的head count會(huì)十分少傲须,就隨緣面試蓝牲,也沒有認(rèn)真準(zhǔn)備,沒有料到Pinterest今年準(zhǔn)備擴(kuò)張泰讽,招了很多new grad例衍,只不過最后我還是沒有選擇Pinterest,因?yàn)镻interest今年也compete不動(dòng)菇绵,但是包裹還是很大了肄渗。
Apple。Media組咬最,電面我直接被一道dp題給脆虐翎嫡,確實(shí)很難想,但是特別有意思永乌,被掛不冤惑申。SimCloud組。一家負(fù)責(zé)apple的分布式dc的調(diào)度的組翅雏,onsite學(xué)艸7輪系統(tǒng)設(shè)計(jì)和分布式設(shè)計(jì)圈驼,面到最后累的眼淚水都掉下來了,因?yàn)槲耶?dāng)時(shí)才上15640望几,導(dǎo)致很多分布式設(shè)計(jì)我都答不上來绩脆,被血拒不冤。Map組橄抹。一家SPG下的感覺是做和無人車有關(guān)的靴迫,本來感覺還挺有希望面進(jìn)的。但是最后我不知道為啥腦子抽筋楼誓,和面試官爭(zhēng)執(zhí)我的想法玉锌,而且我這人一急嗓門就大,其他幾輪表現(xiàn)還挺好的疟羹,最后被脆拒主守。總的來說蘋果是我感覺面試體驗(yàn)十分不錯(cuò)的一家公司榄融,可惜緣分沒有到参淫,我們以后江湖再會(huì)。
Jingchi±⒈現(xiàn)在改名Weride.ai黄刚。電面考了我一道國(guó)際象棋跳子,我用了個(gè)dfs強(qiáng)算然后就被脆拒了民效。
Petuum憔维。Eric Xing的創(chuàng)業(yè)公司涛救,我投的infra的崗位,但是不知道為啥給我安排的面試都是Machine Learning的面試业扒,導(dǎo)致前前后后約了三次检吆,鴿了好多次,最后我拿到好的offer就withdraw了他家程储。提到Petuum就不得不提到知乎的回答蹭沛,懂的都懂。
Dropbox章鲤。這家招的人太少了摊灭,而且return就占了很大一批,我校園面的時(shí)候就已經(jīng)很多onsite都被撤回了败徊,我就校園面隨緣面了下帚呼,也沒背面經(jīng),最后就被拒了煤杀,我們那批應(yīng)該就沒有move forward的把。
Rubrik沪哺。一家做cloud data management的獨(dú)角獸沈自,電面+三輪遠(yuǎn)程onsite面試,題目還是偏難的辜妓,最后遠(yuǎn)程onsite的時(shí)候狀態(tài)不是很好枯途,題目都是勉強(qiáng)45分鐘才做出來,被拒了籍滴,這家還是不錯(cuò)的酪夷,我的幾個(gè)好朋友都拿到了他家的offer最后十分感動(dòng)沒有選擇他,感覺Rubrik傷心太平洋异逐。
Indeed捶索。我本科在那實(shí)習(xí)的同學(xué)幫推的插掂。面試給了一股很舒服的感覺灰瞻,題目都不難,輕松解決辅甥,但是我同學(xué)經(jīng)常吐槽indeed哈哈哈。Indeed的食堂不錯(cuò),就是給的太少了彰居,而且不給compete牧抽。
Linkedin。也是一家我沒想到會(huì)拿到offer的公司夏块,他家處理的太慢了疏咐,而且根本無視其他公司的ddl纤掸,這一點(diǎn)讓我感覺到十分不舒服。onsite有一輪system design浑塞,感覺在十幾年工作經(jīng)驗(yàn)的大佬帶著下設(shè)計(jì)是十分舒服的體驗(yàn)借跪。算法題也有特別難的,但是相對(duì)也不要求完美解答酌壕,最后居然拿到了offer掏愁,只不過當(dāng)時(shí)我已經(jīng)簽了snowflake,而且我這人比較專一卵牍,就把linkedin給拒了果港,錯(cuò)失了灣區(qū)最好吃的食堂。而且我match的組是做分布式存儲(chǔ)的糊昙,我十分喜歡辛掠,但是沒辦法,沒在對(duì)的時(shí)間遇到對(duì)的人溅蛉。
Amazon公浪。2輪OA+一輪電面,而且就是30min講下oa的思路就拿到offer了船侧。給的太少不去了欠气。據(jù)說amazon的社招就會(huì)給很多,氣镜撩。
總的來說预柒,我一路學(xué)cs以來都很幸運(yùn),從依圖的實(shí)習(xí)offer到CMU的錄取再到Uber的實(shí)習(xí)offer袁梗,及時(shí)遇到?jīng)]拿到return這么一個(gè)挫折宜鸯,但是也找到了令我滿意的全職。一路走來只有感恩遮怜,感謝那些一路上給予我各種幫助的朋友們淋袖。
對(duì)于找工作,我只有幾點(diǎn)關(guān)鍵的經(jīng)驗(yàn)锯梁。一就是要積極找內(nèi)推即碗,積極地投崗位,投的越多拿到的面試才會(huì)越多陌凳,我們又不是大牛剥懒,hr不會(huì)主動(dòng)來找我們,就跟談戀愛一樣合敦。二就是刷題要積極總結(jié)經(jīng)驗(yàn)初橘,要做一個(gè)優(yōu)秀的機(jī)器學(xué)習(xí)算法,每一次的經(jīng)歷都會(huì)讓我們獲得進(jìn)步和成長(zhǎng)。我總歸刷題就300道左右保檐,全職也就刷了50多道耕蝉,但是感覺面試的時(shí)候萬變不離其中,大多都能現(xiàn)場(chǎng)做出來夜只。三就是一定要自信赔硫,和面試官侃侃而談,不要悶頭寫題目盐肃,要多和他交流思路爪膊。
新的一年即將到來,也希望看到我這篇文章的朋友新年快樂砸王,給你們拜個(gè)早年推盛,祝新的一年心想事成!