從寫下第1行代碼到拿下谷歌百萬(wàn)年薪 ,我是如何在8個(gè)月內(nèi)做到的?
本文作者非計(jì)算機(jī)科班出身,在寫下第一行 Javascript 代碼后不到一年,他先后收獲了來(lái)自谷歌、Lyft、Yelp、云計(jì)算獨(dú)角獸 Rubrik、IBM 人工智能和 JP Morgan 的錄用通知書。他的求職經(jīng)歷可能會(huì)對(duì)你找工作有所幫助。
我希望我的故事能夠激勵(lì)當(dāng)今的軟件工程求職者,尤其是非傳統(tǒng)背景的求職者。
你可能會(huì)有疑問(wèn):“我也能做到這一點(diǎn)的可能性有多大?”因此,我會(huì)盡量把自己做決定和思考的過(guò)程講得更具體一些,并盡量聯(lián)系更多細(xì)節(jié)。
但我必須承認(rèn),我可能因?yàn)橐韵聨c(diǎn)得到特殊的優(yōu)待:白人、異性戀、男性,擁有美國(guó) Top20 大學(xué)的學(xué)士學(xué)位;在灣區(qū)工作了三年之后,我也建立了自己的人脈網(wǎng)絡(luò)。
每個(gè)求職者的經(jīng)歷都不一樣,但我希望我的經(jīng)歷中能讓你有所收獲。
決定冒險(xiǎn)一躍
2018 年 7 月 29 日,我做出了一個(gè)不太理智的決定。
當(dāng)時(shí)我有兩個(gè)選擇:1)為一家高速增長(zhǎng)的廣告技術(shù)公司擔(dān)任幕僚長(zhǎng)(Chief of Staff);或者 2)參加一個(gè)編程“訓(xùn)練營(yíng)”。幕僚長(zhǎng)這個(gè)角色很有“錢景”,而且?guī)缀蹩梢钥隙ㄊ峭ㄍ韫瓤燔嚨赖囊粡埛峭瑢こ5拈T票。相比之下訓(xùn)練營(yíng)看起來(lái)既昂貴又冒險(xiǎn)。
五周前的 6 月 24 日,我寫下了第一行 Javascript 代碼,那時(shí)我并沒(méi)有打算成為一名工程師。我已經(jīng)擁有一個(gè)經(jīng)濟(jì)學(xué)學(xué)位,并在非營(yíng)利組織擔(dān)任了三年非技術(shù)管理顧問(wèn),我只是想讓自己在灣區(qū)應(yīng)聘那些需要與工程師協(xié)作的工作崗位時(shí),能夠顯得更有吸引力。
實(shí)際上,成為一名工程師似乎是一個(gè)完全不切實(shí)際的想法。我曾聽(tīng)說(shuō),有人在不到一年的時(shí)間里借助訓(xùn)練營(yíng)或自學(xué)做到這一點(diǎn),但我很難相信自己也能做到。我認(rèn)識(shí)的大多數(shù)工程師都擁有四年制計(jì)算機(jī)科學(xué)學(xué)位,多年的工作經(jīng)驗(yàn),而且似乎會(huì)說(shuō)一門外語(yǔ)。我怎么可能在這么短的時(shí)間內(nèi)學(xué)會(huì)所有這些呢?此外,這樣做需要我放棄迄今為止在運(yùn)營(yíng)和戰(zhàn)略領(lǐng)域的職業(yè)生涯——這是一個(gè)成本極高而回報(bào)并不確定的選項(xiàng)。
反之,幕僚長(zhǎng)這個(gè)職位對(duì)我來(lái)說(shuō)就像是美夢(mèng)成真了。在公司即將進(jìn)行的收購(gòu)會(huì)議中,我將成為“會(huì)議室”里資歷最淺的成員,大約要年輕 10 歲。薪資談判比預(yù)期的要順利,看起來(lái)我可能會(huì)在幾年后接手自己的一個(gè)部門。
但是,我一旦開(kāi)始編寫代碼,就不想停下來(lái)。我喜歡技術(shù)上的挑戰(zhàn),為能在如此令人生畏的領(lǐng)域取得進(jìn)展而興奮不已,而且我尋思著,發(fā)展第二套專業(yè)技能,可能會(huì)讓我為另一個(gè)不同尋常的有影響力的職業(yè)生涯做好準(zhǔn)備。有一個(gè)來(lái)自內(nèi)心的聲音也在問(wèn)我自己,成為一名工程師,是否會(huì)像成為一名專業(yè)人士一樣,帶來(lái)個(gè)人的轉(zhuǎn)變:如果我能成功地學(xué)會(huì)編程,我還有什么學(xué)不會(huì)?這種態(tài)度,甚過(guò)其他任何事情,它將成為我這次冒險(xiǎn)的主旋律。
我先參加了一個(gè)在線課程,在連續(xù)三周、每周編寫大約 40 個(gè)小時(shí)的代碼后,我抱著試試看的態(tài)度申請(qǐng)了 Hack Reactor(一家編程訓(xùn)練營(yíng)),我聽(tīng)說(shuō)它是“訓(xùn)練營(yíng)中的哈佛”。就在我收到幕僚長(zhǎng)錄用通知的那個(gè)星期,我也僥幸通過(guò)了訓(xùn)練營(yíng)的入學(xué)考試。
經(jīng)過(guò) 72 小時(shí)的自我靈魂拷問(wèn),并且最后一次檢查了我的銀行賬戶。我估計(jì)在 Hack Reactor 訓(xùn)練結(jié)束后,剩下的錢還可以承受三個(gè)月的房租和食物的開(kāi)銷。剛好有足夠的時(shí)間找工作,我想。
所以,我選擇了訓(xùn)練營(yíng)。
我電話婉拒了為我提供幕僚長(zhǎng)職位的廣告科技公司,掛斷了電話后,心中一陣復(fù)雜的情緒襲來(lái)。我有些害怕:我為了實(shí)現(xiàn)一個(gè)不切實(shí)際的想法而放棄了一個(gè)千載難逢的機(jī)會(huì)!同時(shí),我又有些興奮:唯一擋在我和后悔之間的障礙就是冒險(xiǎn)!
很快,我的興奮戰(zhàn)勝了一切。現(xiàn)在不能回頭了——我已經(jīng)在冒險(xiǎn)的旅程上了。
學(xué)習(xí)編程
“你不必一開(kāi)始就很偉大,但你必須開(kāi)始學(xué)習(xí)如何變得偉大。”——Zig Ziglar
Hack Reactor 和其他“訓(xùn)練營(yíng)”的目標(biāo)都是在 3 個(gè)月內(nèi)完成傳統(tǒng)大學(xué)計(jì)算機(jī)學(xué)科在 4 年內(nèi)完成的大部分工作:讓學(xué)生為爭(zhēng)奪頂級(jí)軟件工程職位做好準(zhǔn)備。
這個(gè)目標(biāo)相當(dāng)遠(yuǎn)大,因此每分每秒的時(shí)間都很寶貴。在 3 個(gè)月的時(shí)間里,每天 12-14 小時(shí),每周 6 天,這個(gè)項(xiàng)目讓我們?cè)跁r(shí)間緊迫的情況下不斷地完成艱巨的任務(wù)。
每次作業(yè)開(kāi)始的時(shí)候,我的胃里都會(huì)出現(xiàn)一個(gè)令人作嘔的坑:“這個(gè)作業(yè)的截止日期看起來(lái)根本不可能做到——我甚至不知道從哪里開(kāi)始!”但不知為何,我(幾乎)總是在時(shí)間快到的時(shí)候拼湊出一個(gè)可行的解決方案。在做了足夠多的練習(xí)后,我開(kāi)始把胃里的那個(gè)坑和興奮感聯(lián)系起來(lái)——挑戰(zhàn)看起來(lái)越不可能,找到解決方案就越令人感到滿足。
Hack Reactor 不僅教授內(nèi)容,它還教授一種全新的毅力和成長(zhǎng)心態(tài),這個(gè)過(guò)程令人振奮。
我仍然懷疑自己能否在存款用完之前找到工作,于是我遵守最佳的學(xué)習(xí)和自理生活的習(xí)慣:為了保證能有充足的睡眠來(lái)支持艱苦的學(xué)習(xí),我嚴(yán)格遵守作息時(shí)間;為了抵抗壓力帶來(lái)的反復(fù)疼痛、提高幸福感、支持學(xué)習(xí),我每隔一天鍛煉一次;為了提高記憶力,讓每一天的學(xué)習(xí)都比前一天好一點(diǎn),我每天晚上都會(huì)復(fù)習(xí)課程的核心內(nèi)容,并反思進(jìn)行得好的和不順利的地方。最重要的是,為了在如此緊張的課程表中保持基本的幸福感,我每天早上上課前都會(huì)冥想整整一個(gè)小時(shí),通常會(huì)使用內(nèi)觀(vipassana,身體掃描的一種形式)和仁愛(ài)技巧。
最后一個(gè)習(xí)慣可能會(huì)讓一些人感到極端,但冥想改善幸福感,這背后的證據(jù)是很有說(shuō)服力的,尤其是變得慈愛(ài)。我無(wú)法夸大這種做法的價(jià)值,它幫助我擁抱學(xué)習(xí)的好奇心和樂(lè)趣,而不是對(duì)訓(xùn)練營(yíng)的挑戰(zhàn)和就業(yè)的不確定性感到焦慮。
我也因禍得福。一場(chǎng)旅行沖突讓我無(wú)法親自到現(xiàn)場(chǎng)報(bào)名,所以盡管我住在離舊金山大學(xué)校園步行 10 分鐘的地方,我還是不得不選擇遠(yuǎn)程課程。在無(wú)需通勤、食物容易獲取和安靜的公寓這樣的條件下,我能夠每天再保證 90 分鐘不受打擾的深度工作。
開(kāi)頭的六周包括在半完成的代碼庫(kù)上進(jìn)行為期兩天的結(jié)對(duì)編程沖刺。我們快速地重寫了 Javascript 的 Underscore 庫(kù),從頭構(gòu)建基本數(shù)據(jù)結(jié)構(gòu),學(xué)習(xí)面向?qū)ο蠛秃瘮?shù)式編程,計(jì)算時(shí)間和空間復(fù)雜度,并開(kāi)發(fā)了一個(gè)全棧的應(yīng)用程序,它所需的技術(shù)范圍涵蓋了客戶端、服務(wù)器、數(shù)據(jù)庫(kù)。我們 24 人的小團(tuán)隊(duì)在每天 10 多個(gè)小時(shí)的視頻會(huì)議上彼此開(kāi)著親密的玩笑,不斷成長(zhǎng)。
三周后,我擔(dān)心自己無(wú)法通過(guò)設(shè)置了一定門檻的課程中期評(píng)估,所以我給未來(lái)的自己寫了一封信,解釋我將如何通過(guò)評(píng)估。我提到了我現(xiàn)有的所有生活自理和學(xué)習(xí)習(xí)慣,我還記錄了更多的內(nèi)容,包括審查我沒(méi)有完全理解的代碼,直到我能夠在心里向一個(gè)想象中的 8 歲孩子解釋代碼的核心概念(費(fèi)曼技術(shù))。
又過(guò)了三周,我在 24 小時(shí)內(nèi)從零開(kāi)始構(gòu)建了第一個(gè)完整的全棧應(yīng)用程序,并出色地通過(guò)了考試。大學(xué)是一種很好的教育。而這是另一個(gè)層次。
在接下來(lái)的六周里,我參加了更多自由形式的小組項(xiàng)目。從 正向的異常行為(Positive deviance)中獲得了靈感,我找到了那些在求職中特別成功的訓(xùn)練營(yíng)校友,并與他們?nèi)〉昧寺?lián)系。在他們的指導(dǎo)下,我為艱巨的技術(shù)挑戰(zhàn)設(shè)定了嚴(yán)格的個(gè)人期限,選擇了就業(yè)市場(chǎng)上的“熱門”技能(比如利用 Docker 和 microservices 來(lái)進(jìn)行開(kāi)發(fā)工作),并在不同的項(xiàng)目中扮演不同的角色。我安排了一次請(qǐng)一位校友進(jìn)行輔導(dǎo)的會(huì)議,并成功地在兩天內(nèi)實(shí)現(xiàn)了一項(xiàng)原本需要他兩周時(shí)間才能完成的功能。
Hack Reactor 會(huì)從每次的訓(xùn)練營(yíng)中雇傭一些畢業(yè)生作為臨時(shí)的兼職助教來(lái)支持全職員工。畢業(yè)后,我承擔(dān)了一個(gè)每周工作 35 小時(shí)、持續(xù) 6 周的職位,幫助推出新課程,進(jìn)行獨(dú)立研究,結(jié)合我的發(fā)現(xiàn)給找工作的校友講課,并面試想進(jìn) Hack Reactor 的候選人。
我爭(zhēng)取到了一個(gè) 6 周的職位,而不是通常的 12 周,這樣我就能接觸到新課程,同時(shí)避免使找工作和全天候?qū)W習(xí)推遲太多。我很感激能在工作中學(xué)習(xí)(尤其是教學(xué)能提高我自己的學(xué)習(xí)能力),微薄的薪水給了我額外兩個(gè)月的生活費(fèi)——這讓我松了一口氣!
確保拿下軟件工程師工作!
給我 offer 的那些公司
12 月 7 日,也就是我寫完第一行代碼的 165 天后,我在 Hack Reactor 的工作結(jié)束了,剩下的錢只夠支付四個(gè)月的房租和食物。Hack Reactor 警告其畢業(yè)生要為六個(gè)月的求職做好預(yù)算。時(shí)間所剩不多!
我寫下了我的目標(biāo)。雖然雄心勃勃,但成功的希望渺茫。我想要:
- Hack Reactor 畢業(yè)生中薪酬排名前 25 位,希望年薪超過(guò) 12 萬(wàn)美元;
- 最陡的學(xué)習(xí)曲線;理想職位,既擁有自主權(quán),又能接觸到經(jīng)驗(yàn)豐富的導(dǎo)師;
- 一個(gè)技術(shù)強(qiáng)大但以人為本的團(tuán)隊(duì)和公司文化;
- 有趣而有意義的工作;
- 后端崗位,或者至少是全棧,相對(duì)來(lái)說(shuō)訓(xùn)練營(yíng)畢業(yè)生中獲得前端工作的人要多不少。
我從未想過(guò)我會(huì)得到我想要的一切,甚至更多。但求職將會(huì)如一輛跌宕起伏的過(guò)山車一般。
Hack Reactor 讓我在很短的時(shí)間內(nèi)打下了很好的基礎(chǔ),但我即使不需要幾個(gè)月,也會(huì)需要好幾周的全天候?qū)W習(xí),才能在頂尖公司面試成功。
我也將不得不面對(duì)無(wú)情的、不斷的拒絕,沒(méi)有成功的把握。面試編程訓(xùn)練營(yíng)還不是求職市場(chǎng)的主流方向,而且盡管有證據(jù)表明,訓(xùn)練營(yíng)畢業(yè)生在面試中的表現(xiàn)與那些擁有四年制計(jì)算機(jī)科學(xué)學(xué)位的人一樣好,但要獲得面試機(jī)會(huì)仍將是一場(chǎng)艱苦的戰(zhàn)斗。而軟件工程面試中涉及的包羅萬(wàn)象的話題,意味著我永遠(yuǎn)無(wú)法完全做好準(zhǔn)備。
當(dāng)一切都結(jié)束時(shí),我已經(jīng)申請(qǐng)了 44 家公司,獲得了 41 次面試推薦,收到了 14 次編碼邀請(qǐng)或技術(shù)電話面試。截止到 2019 年 2 月 15 日,也就是我寫完第一行代碼的 245 天后,這些面試轉(zhuǎn)化成了 8 次現(xiàn)場(chǎng)面試和 7 次錄用通知。
在我編寫第一行代碼后僅 8 個(gè)月,16% 的求職申請(qǐng)都轉(zhuǎn)換為了 offer
開(kāi)始尋找,從失敗中學(xué)習(xí)
“學(xué)習(xí)不是偶然獲得的,必須充滿熱情地去追求,勤奮地去關(guān)注。”——Abigail Adams
找工作的頭幾個(gè)星期是最難熬的。整個(gè) 12 月,我只收到了少數(shù)幾個(gè)編碼邀請(qǐng),只有 1 次來(lái)自 IBM 人工智能的面試。
我頭兩次帶回家的編碼挑戰(zhàn)得到的反饋并不鼓舞人心。后來(lái)我被告知,我的代碼“既不準(zhǔn)確,性能也不夠好”。我的第三次編碼挑戰(zhàn)持續(xù)了數(shù)個(gè)小時(shí)并且讓人膽戰(zhàn)心驚,我在只剩下最后幾秒鐘的時(shí)候通過(guò)了所有測(cè)試,但未能在時(shí)間截止前點(diǎn)擊提交!
我告訴自己這是一場(chǎng)數(shù)字游戲,每天早上經(jīng)過(guò)一個(gè)小時(shí)的仁愛(ài)冥想后,我都會(huì)花一分鐘來(lái)提醒自己兩件事:
- 首先,雖然我的目標(biāo)給了我方向,但是過(guò)度關(guān)注目標(biāo)只會(huì)讓我對(duì)我現(xiàn)在擁有的和我想要達(dá)到的目標(biāo)之間的差距感到不滿。我想要的是習(xí)慣而不是目標(biāo)。
- 其次,我認(rèn)為,無(wú)論工作是什么,這段旅程的真正收獲是個(gè)人的轉(zhuǎn)變,而不是專業(yè)的轉(zhuǎn)變。我很幸運(yùn),有幾個(gè)月的時(shí)間全職學(xué)習(xí)如何去學(xué)習(xí),我愛(ài)上了它!
我知道早期的失敗可能是日后成功的種子,但它們需要特別的關(guān)照。我確保對(duì)每一次失敗的編碼挑戰(zhàn)和面試都進(jìn)行事后分析,然后在文本編輯器中重新把問(wèn)題做一遍,直到徹底解決。一個(gè)要求在 20 分鐘內(nèi)快速解決的題目,我最終花了 3 天又 9 個(gè)小時(shí)!
我記下了很多新概念以及解決問(wèn)題后領(lǐng)悟到的知識(shí)點(diǎn),把它們當(dāng)作我寶貴的“心智模型”的集合,我希望這個(gè)集合能夠增長(zhǎng)到足以匹配任何面試題目。我會(huì)按照一定的時(shí)間間隔不斷復(fù)習(xí)這些概念,以最有效的方式把它們變?yōu)殚L(zhǎng)期記憶。
對(duì)于涉及到新代碼語(yǔ)法的那些問(wèn)題,我會(huì)在限定時(shí)間的情況下重新做一遍,以確保在面試中準(zhǔn)確地回想起來(lái)。
這些習(xí)慣不僅增強(qiáng)了記憶力,還建立了令人安心的信心。在錢花光之前,我不知道是否能找到工作,但令人滿意的是,即使是最壞的結(jié)局(面試失敗),我也會(huì)變得更好。
我養(yǎng)成了一個(gè)穩(wěn)定的習(xí)慣,每天 8 小時(shí),每周 5 天以上:學(xué)習(xí)和 / 或面試,診斷失敗 / 成功,反思,重復(fù)。
我不斷修改完善我的學(xué)習(xí)計(jì)劃,首先,我對(duì)可能遇到的每一種不同類型的面試(數(shù)據(jù)結(jié)構(gòu) / 算法、前端 DOM 操作、系統(tǒng)設(shè)計(jì)等)中,什么才是出色的表現(xiàn)有所了解。然后我會(huì)估計(jì)在接下來(lái)的面試中遇到每種類型的面試的可能性,并將其與我對(duì)自己的表現(xiàn)的自我評(píng)估進(jìn)行權(quán)衡,以決定下一步學(xué)習(xí)什么。
為了確保只使用最好的資源,我自己維護(hù)了一份由同行推薦的資源列表,它們按主題進(jìn)行組織。當(dāng)需要研究某個(gè)主題時(shí),我會(huì)用谷歌做個(gè)快速搜索,向列表補(bǔ)充搜到的新內(nèi)容,然后概覽每個(gè)資源,選取其中最好的一兩個(gè),然后再深入研究它們。我會(huì)在前一天做高優(yōu)先級(jí)的事情,這樣第二天,我就可以從早晨的冥想直接進(jìn)入 2-3 小時(shí)不間斷的深度工作。
我每天還花 2-3 個(gè)小時(shí)對(duì)有吸引力的公司構(gòu)建起流程,生成推薦表,并提交應(yīng)聘申請(qǐng)。在完成一份申請(qǐng)時(shí),我花的時(shí)間比我想要的還長(zhǎng),而且我的首選項(xiàng)數(shù)量有限,所以通過(guò)以下方法,我盡最大的努力提高申請(qǐng)到面試的轉(zhuǎn)化率:
- 在我的簡(jiǎn)歷中強(qiáng)調(diào)結(jié)果而不是項(xiàng)目上下文或采取的行動(dòng),
- 研究通過(guò)電子郵件和領(lǐng)英,哪個(gè)方式和信息能最快產(chǎn)生推薦,
- 在電子表格中跟蹤整個(gè)流程,然后
- 跟進(jìn)所有的應(yīng)聘對(duì)話。
我將大多數(shù)申請(qǐng)視為一項(xiàng)實(shí)驗(yàn),它們用于提高時(shí)間投資的回報(bào)。習(xí)慣在這里也得到了回報(bào)——穩(wěn)步地將公司納入我的流程,意味著,當(dāng)我收到拒信時(shí),我可以立刻展望下一個(gè)機(jī)會(huì)。
我也盡我最大的努力來(lái)安排我各個(gè)申請(qǐng)的時(shí)間順序,這樣我就可以先面試不太理想的公司,同時(shí)推進(jìn)速度較慢的公司的流程(比如谷歌)。
事實(shí)證明,在我坎坷的起步階段,IBM 的面試是一個(gè)亮點(diǎn),但即便如此,在不確定性中堅(jiān)持下去,也是一段有用的經(jīng)歷。它包括一次電話面試和另外三次“現(xiàn)場(chǎng)”面試。
每次面試開(kāi)始的時(shí)候,我都會(huì)經(jīng)歷那個(gè)胃里起個(gè)坑的熟悉的感覺(jué),心里想:我不知道該怎么做。
每次我都深吸一口氣,提醒自己:之前每一次把這種不舒服的感覺(jué)變成一種有效的解決方案都很有趣,所以想象一下,把這個(gè)風(fēng)險(xiǎn)更高的工作解決掉的話會(huì)多么有趣!
在前兩次面試之后,我想知道我的興奮感和學(xué)習(xí)取向是否具有傳染性——我的面試官當(dāng)然知道我沒(méi)有馬上得出答案,但他們似乎很享受我在接近答案時(shí),談話中的激情和能量是如何上升的。
離開(kāi) IBM 時(shí),我受到了鼓舞,盡管我可能并不總是能快速完成面試,但我總是樂(lè)于在壓力下分享一種成長(zhǎng)心態(tài)。我確信這種心態(tài)幫助我得到了 7/8 的現(xiàn)場(chǎng)面試。
幸運(yùn)的是,在 12 月的失敗中播下的種子,終于在 1 月開(kāi)花結(jié)果了。
建立動(dòng)力和早期成功
“你最艱難的時(shí)刻往往會(huì)帶你走向生命中最偉大的時(shí)刻。繼續(xù)前進(jìn)。”——Roy T. Bennet
1 月份的第一周,IBM 打來(lái)電話,提供了一份非正式的錄用通知,正式的 offer 不久就會(huì)給到。我開(kāi)始考慮,我是否能利用這個(gè)非正式 offer 作為一個(gè)籌碼。我把這個(gè)消息告訴了谷歌的招聘人員,他的反應(yīng)是讓我加速通過(guò)電話面試,直接到現(xiàn)場(chǎng)面試。
突然間,我開(kāi)始吸引招聘人員的注意了。我立即通知了所有正在走面試流程的公司,告訴他們我得到了一份 offer。在新年伊始這樣做之后,我的面試流程立刻加速了。
接下來(lái)的一周,我在摩根大通的現(xiàn)場(chǎng)接受了全部四次技術(shù)面試,這是我第一次感到自信,大部分面試都是在空閑時(shí)間里完成的。去年 12 月我所做的一切,顯然得到了回報(bào),我為此欣喜若狂。
我的谷歌現(xiàn)場(chǎng)面試是幾天后。難度上體現(xiàn)出來(lái)的差異令人震驚。在我的第二次面試中,我表現(xiàn)得很糟糕,面試涉及到異步 JavaScript。
午餐休息時(shí),我在洗手間里花了一點(diǎn)時(shí)間進(jìn)行了一次微冥想。我想我?guī)缀鯖](méi)有機(jī)會(huì)得到這份工作了,所以現(xiàn)在的目標(biāo)變成了從我這次的失敗中學(xué)到盡可能多的東西。
我知道我會(huì)在晚上做事后分析。與此同時(shí),我向自己發(fā)起挑戰(zhàn),想看看在這樣一個(gè)高風(fēng)險(xiǎn)的環(huán)境中,我能培養(yǎng)出多少感恩與平靜。畢竟,我能在谷歌面試,這該有多興奮?
這個(gè)主意似乎幫助我擺脫了困境,整個(gè)下午我都好起來(lái)了。當(dāng)我離開(kāi)的時(shí)候,我甚至懷抱一線希望,希望谷歌仍然可能會(huì)給我提供一份工作。
根據(jù)我的事后分析習(xí)慣,我回到家,找到了一些在線資源,幫助我從頭開(kāi)始構(gòu)建一個(gè) JavaScript 異步系統(tǒng)。第二天,我接到了 3 個(gè)電話面試,其中又是各種起起伏伏。
我在與一家安全初創(chuàng)公司的電話交談中表現(xiàn)出色。我在與一家小型能源初創(chuàng)公司接觸中感覺(jué)糟糕。我與云存儲(chǔ)獨(dú)角獸 Rubrik 通電話過(guò)程中,碰到了同樣的提問(wèn)。
Rubrik 也問(wèn)了一個(gè)關(guān)于 JavaScript 異步的問(wèn)題,比我前一天在谷歌面試中沒(méi)回答上的那個(gè)問(wèn)題更難。因?yàn)楣雀枘谴巫鲞^(guò)事后分析,所以這次我能夠當(dāng)場(chǎng)創(chuàng)新,在規(guī)定時(shí)間快到的時(shí)候沖向了終點(diǎn)。
面試官說(shuō)我可能是該公司面試過(guò)的第一個(gè)訓(xùn)練營(yíng)畢業(yè)生——他們通常只招名牌大學(xué)的學(xué)生——他不敢相信我去年夏天才寫下了我的第一行代碼。我在房間里開(kāi)心地跳了一會(huì)兒舞。
接下來(lái)的一周,摩根大通打電話給我,給出了 11 萬(wàn)美元年薪的錄用通知,沒(méi)有股票或獎(jiǎng)金。我不認(rèn)為這是一個(gè)理想的 offer,我還沒(méi)有達(dá)到 12 萬(wàn)美元 / 年的目標(biāo),但我很高興收到了我的第一個(gè)正式錄用通知。有人要付錢讓我寫代碼!
我開(kāi)始每天處理幾個(gè)電話面試官、招聘人員和顧問(wèn)打來(lái)的電話,而且這個(gè)過(guò)程中不可預(yù)測(cè)的跌沓起伏也還在繼續(xù)。谷歌打電話給我,說(shuō)現(xiàn)場(chǎng)面試好壞參半,但是我可以先進(jìn)行招聘委員會(huì)面試;優(yōu)步提供了一個(gè)現(xiàn)場(chǎng)面試機(jī)會(huì);我自認(rèn)為在亞馬遜電話面試中表現(xiàn)得很好,但最后并沒(méi)有得到現(xiàn)場(chǎng)面試的機(jī)會(huì);我自以為搞砸了 Yelp 的電話面試,但最終得到了現(xiàn)場(chǎng)面試的機(jī)會(huì)。
隨著現(xiàn)場(chǎng)面試來(lái)了又去,我不得不在招聘人員面前注意自己的話。這家安全初創(chuàng)公司表示,他們擔(dān)心自己無(wú)法跟上 IBM 和摩根大通等大公司的待遇,并詢問(wèn)這些公司為我提供了多少薪水。
我差點(diǎn)就要上鉤了,但頓了一下,按照 Hack Reactor 的教導(dǎo),我轉(zhuǎn)移了這個(gè)關(guān)于薪水的問(wèn)題。“我覺(jué)得我們應(yīng)該換種方式——你可以告訴我你們提供的薪水范圍嗎?如果在可接受范圍內(nèi),我會(huì)告訴你的。”我說(shuō)。“當(dāng)然可以,我們的起價(jià)是 12.5 萬(wàn)美元。”
12.5 美元。這超出了我的目標(biāo)!
我把目光移開(kāi),希望通過(guò)假裝思考來(lái)掩飾我的激動(dòng)。我轉(zhuǎn)過(guò)身,平靜地說(shuō):“如果這是你們的起價(jià),我想我們可以談?wù)劇?rdquo;他回答道:“oh,那太好了,我很欣慰我們還能繼續(xù)討論!”我也很欣慰,我想。
幾天后,該公司正式發(fā)出了錄用通知:以當(dāng)前估值計(jì)算,12.5 萬(wàn)美元外加每年 6000 美元的股票期權(quán)。但是薪資并不是最重要的!這個(gè) offer 對(duì)我來(lái)說(shuō)更理想的是,它提供的是一個(gè)后端崗位,而且導(dǎo)師機(jī)制看起來(lái)非常棒。公司有大約 40 名工程師組成的團(tuán)隊(duì),成員至少有兩年的工作經(jīng)驗(yàn),他們大多來(lái)自麻省理工學(xué)院、斯坦福大學(xué)或伯克利分校等頂尖學(xué)府。這就是我想要的一切!
但這些錄用通知才剛剛開(kāi)始。
談判并選擇一家公司
“有效的談判者會(huì)忽略對(duì)方的陳述立場(chǎng),深入探究他們潛在的動(dòng)機(jī)……他們極度好奇。”——Chris Voss
兩天后,Rubrik 打電話給我,把我嚇了一跳。他們也想讓我成為他們第一個(gè)來(lái)自訓(xùn)練營(yíng)的雇員。Rubrik 的估值已經(jīng)達(dá)到 33 億美元——這是一個(gè)炙手可熱的新獨(dú)角獸,也是經(jīng)驗(yàn)豐富的軟件工程師夢(mèng)寐以求的工作場(chǎng)所。我和招聘人員一起笑了,為這么一家競(jìng)爭(zhēng)如此激烈的公司需要我而欣喜若狂,然后興奮地掛了電話,我?guī)缀鯖](méi)有意識(shí)到自己錯(cuò)過(guò)了谷歌的一個(gè)電話。
我屏住呼吸撥了回去。招聘人員直截了當(dāng)?shù)卣f(shuō):“我剛從招聘委員會(huì)出來(lái),想馬上給你打電話。我們打算給你錄用通知——”
我控制不住自己。我大叫一聲,跳進(jìn)空蕩蕩的廚房。谷歌!軟件工程的黃金標(biāo)準(zhǔn)和最難對(duì)付的面試官已經(jīng)決定要我了!然后她提到了數(shù)字,事情就變得超現(xiàn)實(shí)了。合計(jì) 16.3 萬(wàn)美元:基本工資 12 萬(wàn)美元,最低獎(jiǎng)金 1.8 萬(wàn)美元,年(流動(dòng))股本 2.5 萬(wàn)美元。
16.3 萬(wàn)美元。
你瘋了嗎?我上一份報(bào)稅表才申報(bào)了 7.7 萬(wàn)美元,這是多么微不足道的一筆錢。
接下來(lái)整個(gè)下午,我都在家附近興奮地走來(lái)走去甚至手舞足蹈,我也打電話給我的家人分享了這個(gè)令人難以置信的好消息。
第二天早上,我又開(kāi)始埋頭苦干,學(xué)習(xí)談判而不是算法。一夜之間,指導(dǎo)我通過(guò)面試的招聘人員成了我談判中的對(duì)手。我感覺(jué)自己就像一只孤獨(dú)的綿羊,置身于狼群之中——這些都是專業(yè)人士,在持續(xù)幾分鐘的談話中,數(shù)字可以帶來(lái)數(shù)萬(wàn)美元的收益。
起初,我害怕給人留下貪婪的印象,但我的 Hack Reactor 職業(yè)教練態(tài)度堅(jiān)決。她說(shuō),這是意料之中的事,除了錢,這還體現(xiàn)了深思熟慮,在艱難的談話中充滿信心,為工作的頭幾周設(shè)定一個(gè)期望。
通過(guò)等待和拒絕我的第一份 offer,我最終得到的薪資增長(zhǎng)了將近 90%
接下來(lái)的幾天,我與招聘人員和顧問(wèn)們接二連三的電話,學(xué)習(xí)、準(zhǔn)備并對(duì)談判進(jìn)行事后評(píng)估。我寫了一頁(yè)紙,預(yù)測(cè)每一次談判的結(jié)果,并對(duì)談判進(jìn)展順利和不順利的地方進(jìn)行事后分析,就像我對(duì)失敗面試的反思一樣。
我學(xué)會(huì)喜歡上談判的過(guò)程。每一次談話都是一個(gè)令人著迷的謎題,從高層次的策略(比如我何時(shí)以及如何分享信息)到即時(shí)策略(比如我的語(yǔ)氣),都有層次。有這么多的應(yīng)戰(zhàn)機(jī)會(huì)尤其有趣——我有時(shí)會(huì)在一天內(nèi)與多個(gè)招聘人員交談,每個(gè)電話都是我嘗試新技能、從錯(cuò)誤中學(xué)習(xí)的另一個(gè)機(jī)會(huì)。
在大學(xué)期間,我讀過(guò)哈佛談判項(xiàng)目中的《Getting to the Yes and Getting Past the No》,熟悉 BATNA 和雙贏解決方案等概念。但我的大部分靈感來(lái)自 Chris Voss 的《永不妥協(xié)》(Never Split the Difference),我在谷歌發(fā)出錄用通知后立即重讀了這本書。
我還搜索了另一位訓(xùn)練營(yíng)畢業(yè)生 Haseeb Qureshi 的博客文章,并定期與我的 Hack Reactor 職業(yè)教練聊天。在我之前,他曾為數(shù)百次談判提供過(guò)建議。
Rubrik 的第一個(gè)出價(jià)是 16.3 萬(wàn)美元,與谷歌提供的完全相同。然后 Yelp 打電話來(lái)給了我新的驚喜,他們把我的申請(qǐng)“升級(jí)”為非入門級(jí)職位,給我提供 16 萬(wàn)美元,外加 2 萬(wàn)美元的簽約獎(jiǎng)金,第一年的薪酬為 18 萬(wàn)美元。
18 萬(wàn)美元和非入門級(jí)職位?
在 Yelp 的面試中,我展示了我最好的表現(xiàn)——完成每一項(xiàng)挑戰(zhàn)時(shí)都還有剩余時(shí)間,無(wú)縫適配代碼以滿足新的限制,并使用粗略的計(jì)算對(duì)系統(tǒng)架構(gòu)發(fā)表評(píng)論,這似乎讓面試官感到驚訝。但這并沒(méi)有改變我沒(méi)有任何經(jīng)驗(yàn)的事實(shí)!谷歌和 Rubrik 立即表示,他們將準(zhǔn)備新的 offer 報(bào)價(jià)。
最后,求職達(dá)到了高潮。
Lyft 給我發(fā)了電子郵件,要求與我通電話。到目前為止,Lyft 是我這么多次面試中最喜歡的,但我不認(rèn)為我的現(xiàn)場(chǎng)表現(xiàn)足以讓我得到這份工作。從概念上講,我?guī)缀趿⒖叹徒鉀Q了一個(gè)面試問(wèn)題,但我的代碼始終無(wú)法工作。在另一個(gè)面試問(wèn)題中,我完成得比較遲,由于時(shí)間已到,我未能提交。在經(jīng)過(guò)多輪日常談判后,我終于回復(fù)了這封郵件:
“我現(xiàn)在要應(yīng)付幾個(gè)不同的電話。你介意用電子郵件告訴我這個(gè)消息嗎?我猜會(huì)是拒絕,在這種情況下,我希望每次面試都能得到 1-2 句話的反饋。除此之外,感謝您抽出時(shí)間來(lái)指導(dǎo)我完成這個(gè)過(guò)程!”
她的回答只有一句話:“這不是拒絕:)”
什么!沒(méi)有公司會(huì)拒絕我嗎?我不敢相信我的首選又回到了談判桌上。第二天我們談了一些數(shù)字:總計(jì) 21 萬(wàn)美元。
21 萬(wàn)美元。
想到那是 Lyft,先不說(shuō)錢,我真的想在那里工作!我在 Lyft 的幾個(gè)朋友都是我最喜歡的人——很難說(shuō)他們是更聰明還是更善良——而我的面試官似乎也是如此。
我通知每一家公司最新的錄用通知已經(jīng)做出,并以一周為限,希望他們能盡快給出最終 offer。我在不斷的談判中疲憊不堪,我覺(jué)得最后期限是一種很專業(yè)的方式,它給每個(gè)給我爭(zhēng)取候選人資格的人所付出的時(shí)間做了一個(gè)限制范圍,Voss 暗示,最后期限可以成為我的優(yōu)勢(shì)。
谷歌曾準(zhǔn)備以 18.9 萬(wàn)美元的薪酬讓我放棄 Yelp,但在聽(tīng)到 Lyft 提供的薪酬之后,表示會(huì)再更新一個(gè) offer。Rubrik 同意通過(guò)電話協(xié)商。Yelp 和前面那家安全初創(chuàng)公司表示,他們無(wú)法再進(jìn)一步談判了,我也不再繼續(xù)跟進(jìn)摩根大通和 IBM。我唯一的另一個(gè)現(xiàn)場(chǎng)面試——優(yōu)步,最終沒(méi)有給我錄用通知。
后來(lái),Lyft 團(tuán)隊(duì)邀請(qǐng)我共進(jìn)午餐,我為此興奮不已。谷歌、Yelp 和那家安全初創(chuàng)公司的團(tuán)隊(duì)我都很喜歡,但 Lyft 有 9 個(gè)人愿意抽出時(shí)間和我共進(jìn)午餐,他們笑得就像我已經(jīng)是他們團(tuán)隊(duì)的一員一樣。他們想把公司 2019 年的首要任務(wù)交給我,一位高級(jí)工程師告訴我,他很樂(lè)意做我的導(dǎo)師。Lyft 距離 IPO 還有幾個(gè)月的時(shí)間。
我在這里將擁有一切:導(dǎo)師、在高增長(zhǎng)環(huán)境中的機(jī)會(huì)、以人為本的文化、令人興奮的工作,以及現(xiàn)在高得驚人的薪酬。
Rubrik 最后沒(méi)有及時(shí)提出新的報(bào)價(jià),而谷歌的出價(jià)為 23.3 萬(wàn)美元,加上 401(k) 計(jì)劃和慈善比賽項(xiàng)目(我認(rèn)為這和現(xiàn)金一樣好,因?yàn)槲屹嶅X就是為了給予,今年我將捐出我稅前收入的 25%),之前是 21.6 萬(wàn)美元。這個(gè)團(tuán)隊(duì)的文化契合度也很好,谷歌在把初級(jí)工程師培養(yǎng)成頂尖人才方面是世界一流的。
我為這個(gè)決定糾結(jié)了好幾天,在谷歌和 Lyft 之間搖擺不定,但我逐漸相信,撇開(kāi)薪酬不談,Lyft 是一個(gè)我不能錯(cuò)過(guò)的機(jī)會(huì)。我最終商定了 22.6 萬(wàn)美元的總薪酬方案:13.5 萬(wàn)美元的底薪,7.1 萬(wàn)美元的上市前估值,以及 2 萬(wàn)美元的簽約獎(jiǎng)金。在我寫完第一行代碼 245 天之后的 2 月 25 日,星期一,我說(shuō)出了結(jié)束這一切的兩個(gè)詞:“我接受這個(gè) offer。”
六個(gè)月后的現(xiàn)在,我在 Lyft 工作得非常開(kāi)心。令我高興的是,我早前的考慮完全正確。我的團(tuán)隊(duì)很支持我,我的工作很吸引人,我的報(bào)酬也很豐厚,但成為一名工程師的無(wú)價(jià)回報(bào)是我愛(ài)上了學(xué)習(xí),現(xiàn)在我已經(jīng)不打算離開(kāi)它了。
你也在尋求軟件工程師職位嗎?
我整理了我用來(lái)準(zhǔn)備面試的最重要的資源,我還為那些決定把未來(lái)收入的 10% 或更多用于慈善事業(yè)的求職者提供培訓(xùn),這些課程在 http://www.swejobsearch.com/resources/ 都可以訪問(wèn)到。
注:我用筆名寫作是為了在我的個(gè)人生活和作為一名求職教練的成長(zhǎng)之間保持一點(diǎn)距離。
我在本文中分享了具體的薪酬信息,原因有兩個(gè)。首先,我希望這篇文章對(duì)非傳統(tǒng)背景的求職者盡可能有用,他們中的許多人可能不太熟悉這些數(shù)字。第二,分享工資是一種對(duì)抗薪酬不平等的方式,這種不平等會(huì)傷害到每個(gè)人,尤其是少數(shù)群體。
與薪酬不平等作斗爭(zhēng)也符合 Lyft 的使命和文化,Lyft 非常致力于與薪酬不平等作斗爭(zhēng)。Lyft 每年都要進(jìn)行第三方薪酬股權(quán)審計(jì),而在沒(méi)有發(fā)現(xiàn)系統(tǒng)性薪酬差距的情況下,Lyft 在去年成為硅谷的另一種“獨(dú)角獸”。精確的工資信息已經(jīng)出現(xiàn)在 paysa、level 和 blind 等網(wǎng)站上,所以這里分享的細(xì)節(jié)并不是新鮮事。