譯者 | 鄭麗媛
出品 | CSDN(ID:CSDNnews)
我叫 Kevin,從未做過軟件工程師或項(xiàng)目經(jīng)理,也沒有寫過或測(cè)試過任何一行代碼——而我技術(shù)生涯的起點(diǎn),始于招聘工作。
(資料圖片)
開始招聘工作后,我進(jìn)入職業(yè)指導(dǎo)和薪酬談判階段,直到現(xiàn)在的工作:為工程師創(chuàng)建內(nèi)容。與大多數(shù)工程師相比,我掌握的領(lǐng)域知識(shí)很少,但也順利通過了谷歌的系統(tǒng)設(shè)計(jì)面試。
想必很多人對(duì)此感到好奇,我可以告訴你:我之所以能通過面試,是因?yàn)樵趨⒓舆@次面試之前,我學(xué)習(xí)了很多關(guān)于系統(tǒng)設(shè)計(jì)面試的理論知識(shí)。通過這場(chǎng)面試,我還學(xué)到了一些技巧,下面我將逐一分享給你們,希望你們也能順利通過心儀公司的面試。
非程序員,如何學(xué)到很多關(guān)于系統(tǒng)設(shè)計(jì)面試的知識(shí)?
我在匿名模擬面試平臺(tái) interviewing.io 工作,工作內(nèi)容之一是與應(yīng)聘者討論面試過程。其中,許多人都抱怨系統(tǒng)設(shè)計(jì)面試,他們不知道該如何應(yīng)對(duì),也不知道要如何處理模棱兩可的問題。曾有一位用戶做出如下評(píng)價(jià):
“系統(tǒng)設(shè)計(jì)面試非常可怕。如果你已經(jīng)工作了 5+ 年,那么你就應(yīng)該有出色的可擴(kuò)展系統(tǒng)經(jīng)驗(yàn),可如果你沒在面試中表現(xiàn)出來,你將受到懲罰,即要么拿不到 Offer,要么薪資大打折扣。打一個(gè)比方,可能對(duì)方只是要求你抬起和移動(dòng)重物,但你必須要讓一頭大象飛起來才行。”
當(dāng)時(shí),最流行的系統(tǒng)設(shè)計(jì)資源非常相似,它們都沒有很好的解決方案來處理或揭開系統(tǒng)設(shè)計(jì)面試中的神秘面紗。因此,我們團(tuán)隊(duì)決定嘗試制作世界上最好的系統(tǒng)設(shè)計(jì)指南,并由我負(fù)責(zé)領(lǐng)導(dǎo)這個(gè)項(xiàng)目。
首先,我采訪了一些評(píng)價(jià)最高的系統(tǒng)設(shè)計(jì)面試官,然后基于采訪內(nèi)容開始編寫指南,期間我主要負(fù)責(zé)推進(jìn)、傾聽、項(xiàng)目管理、撰寫、編輯,并不斷重復(fù)這些工作。
經(jīng)過幾個(gè)月的努力,我們終于在 2023 年 3 月 2 日出版了《高級(jí)工程師系統(tǒng)設(shè)計(jì)面試指南》。很高興的是,它在 Hacker News 上的點(diǎn)擊率很高,如果你在谷歌上搜索“系統(tǒng)設(shè)計(jì)面試”,第一個(gè)搜索結(jié)果也是它。
為什么我決定自己嘗試參加一次系統(tǒng)設(shè)計(jì)面試?
這份指南發(fā)布后,我見到了不少撰稿人,其中一位突然跟我說:“我打賭,你一定能通過系統(tǒng)設(shè)計(jì)面試。”除了他,另外兩個(gè)人也很認(rèn)同。于是我接受了這個(gè)挑戰(zhàn),并決定不另外學(xué)習(xí),僅憑我在編寫指南時(shí)學(xué)到的知識(shí)去參加面試。
為此,我在 interviewing.io 上找到了一位來自谷歌的面試官,并預(yù)約了某周五上午的模擬系統(tǒng)設(shè)計(jì)面試。對(duì)方不知道我是誰,只知道我的工作年限是 4 年,并以為我即將去谷歌面試,所以需要提前模擬一下以作準(zhǔn)備。
我在這場(chǎng)系統(tǒng)設(shè)計(jì)面試中,值得參考的精選片段
我將帶領(lǐng)大家回顧面試中的幾個(gè)片段,這些片段涵蓋了我面試中的三個(gè)關(guān)鍵方面:一個(gè)非傳統(tǒng)的想法,一件我失敗得很徹底的事情,以及一個(gè)我引以為豪的時(shí)刻。
(1)一個(gè)非常規(guī)的想法
去年,我參加了哈佛大學(xué)法學(xué)院的高級(jí)談判講習(xí)班。他們花了很多時(shí)間深入探討了談判的具體細(xì)節(jié),即談判的輸贏往往就在于最初和最后的 3 分鐘。于是在這次系統(tǒng)設(shè)計(jì)面試中,我一直牢記這一點(diǎn),心想我必須迅速(最好在前 3 分鐘內(nèi))在面試官心中獲得一些認(rèn)可和社交證明。
通過了解在 FAANG 面試的不成文規(guī)定,我學(xué)會(huì)了一個(gè)不那么顯而易見的社交證明方法:要在“誰更不在乎”的競(jìng)爭中獲勝。也就是說,你要在面試過程中找到“我不在乎”的態(tài)度,不要在乎對(duì)方到底在不在乎你所說的話,保持你的節(jié)奏。
(2)一件我失敗得很徹底的事情
這件事簡而言之,就是我忘了可以在用戶設(shè)備上緩存數(shù)據(jù)。更重要的是,他們還問了我關(guān)于緩存的問題,但我卻耿耿于懷,我忽略了他們的追問,同時(shí)也忽略了他們的暗示。
我不知道他們追問的答案,但我也不敢說“我不知道”,我覺得如果我這么回答了,他們可能就要換人了。所以我沒有這么做,導(dǎo)致他們以為我真的知道,并繼續(xù)追問。
如果我能回到過去,我會(huì)像系統(tǒng)設(shè)計(jì)指南中所說的那樣:在你不確定但有想法的時(shí)候,直接說“不知道”:
告訴面試官:“我不知道,面試結(jié)束后我肯定會(huì)馬上查一下,但如果讓我給出最佳猜測(cè),我會(huì)說…[x],以下是原因[解釋/思考過程]。”
(3)一個(gè)我引以為豪的時(shí)刻
我真正自豪的時(shí)刻,是在面試官說了一些嚇人的話時(shí)保持冷靜。害怕的面試者看起來就像是局外人,所以讓自己看起來像個(gè)局內(nèi)人,就要保持冷靜。
有一個(gè)常見的系統(tǒng)設(shè)計(jì)面試問題是“設(shè)計(jì) Gmail”,這個(gè)問題有很多不同的維度,但沒有人能在面試時(shí)設(shè)計(jì)出 Gmail,這是不可能的。所以每當(dāng)別人問“如何設(shè)計(jì) Gmail”時(shí),那就是在嚇唬你。——前谷歌工程師
面試過程中,有關(guān)規(guī)模的話題出現(xiàn)了:面試官說,這個(gè)系統(tǒng)應(yīng)該能夠支持 8 億活躍用戶。當(dāng)時(shí)我的腦子里突然浮現(xiàn)出那位谷歌工程師說的話,于是我裝作很隨意的語氣,模棱兩可地回答了一句“好吧”。從用詞和表達(dá)方式來看,這個(gè)回答意味著“我不害怕這個(gè)提問”,但同時(shí)我的腦海里在瘋狂暗示自己“不要在乎對(duì)方在不在乎”,以此來保持鎮(zhèn)定自若。
面對(duì)管對(duì)這場(chǎng)面試的反饋
你會(huì)讓這個(gè)人晉級(jí)下一輪面試嗎?回答:會(huì)的。
我從系統(tǒng)設(shè)計(jì)面試中,學(xué)到了什么?
如果沒有堅(jiān)實(shí)的基礎(chǔ),魔術(shù)就失去了魔力。你可以擁有世界上所有的技巧,但如果你不了解原理那也是白搭。話雖如此,僅僅了解原理也是不夠的,你還要管理好自己的心理。大多數(shù)人主要的心理障礙,都是對(duì)“不知道”的不適感。
與工程問題不同,有關(guān)設(shè)計(jì)問題大多都出于“不知道”。沒有最佳解決方案,進(jìn)展無法量化,也沒有預(yù)先確定的結(jié)果。如果只是用模棱兩可的方式糊弄過去是不夠的,因?yàn)檫@些問題更多考驗(yàn)的是你茁壯成長的能力,好在這個(gè)能力可以通過實(shí)踐慢慢掌握。這是一種思考、溝通和解決問題的方式,因此你所學(xué)到的技能是可以遷移的,甚至還可以從看似毫不相干的實(shí)踐中遷移。
練習(xí)說“不知道”的三種方法
這三種方式,分別是:“未知”游戲、即興表演和冥想。試試其中一種,為期 10 天,如果之后你的系統(tǒng)設(shè)計(jì)面試技巧沒有提高,那我請(qǐng)你喝可樂。
第一種方式:“未知”游戲
這個(gè)游戲的方法是,注意誰知道你不知道的事情,然后跟著這條線索走。對(duì)我來說,那就是藝術(shù),于是我把它提出來并到處打聽。如果有人提到了我不知道的東西,那就得一分;如果他們解釋了我不知道的事情,那就得兩分;如果你認(rèn)為某人身上能得到足夠的分?jǐn)?shù):那就像對(duì)待老朋友一樣對(duì)待他們,看看接下來會(huì)發(fā)生什么。
例如有一天,我和一個(gè)陌生人在咖啡館開始聊天。半小時(shí)后,我在他家看到了但丁《神圣三部曲》的原版,其中講述了地獄、煉獄和天堂的故事。這本書已經(jīng)有幾百年的歷史了,篇幅之長令人驚訝。而在這次充滿 “未知”的經(jīng)歷——即興拜訪陌生人的家之前,我甚至都沒聽說過這件極其罕見的藝術(shù)品,但我卻有幸翻開了它的書頁(而且不是在博物館里!!)。
第二種方式:即興表演
如果你認(rèn)為上面這種沒有組織的談話對(duì)你而言就像地獄,那你可能更喜歡參加即興表演,比如扮小丑。小丑分兩種:地位高的(“知道”的)和地位低的(“不知道”的)。其中地位低的小丑會(huì)做一些不合邏輯的事情,例如讓他們坐下但他們卻跳起來,某種程度上屬于破壞規(guī)則的笨蛋跟班。所以在扮演小丑時(shí),你要告訴自己,你根本不知道發(fā)生了什么,并嘗試接受這一點(diǎn)。
第三種方法:冥想
如果你覺得和陌生人交談和扮小丑都很可怕,那就試試冥想吧。禪宗公案是一種特別令人費(fèi)解的冥想方式,一個(gè)是,“一只手鼓掌的聲音是什么?”,另一個(gè)問題是,“在你父母出生之前,你的本來面目是什么?”整體來說,禪宗公案充滿了悖論和不連貫的問題,無法用正常理性的日常思維方式來解決,但它可以教會(huì)你如何在模棱兩可中茁壯成長,非常適合很內(nèi)向的人。
結(jié)論
要想在系統(tǒng)設(shè)計(jì)面試中取得好成績,你需要做兩件事:首先,你需要學(xué)習(xí)理論知識(shí);其次,你需要練習(xí)說“不知道”,以便更好地處理模棱兩可的情況。
有了在模棱兩可中茁壯成長的能力,生活中就沒有什么是不可能的了。
原文鏈接:https://interviewing.io/blog/never-written-code-but-passed-google-system-design
?三天召集 2200+ 名黑客,齊向 AI “投毒”:“50 分鐘內(nèi)騙過 AI,第一名可獲英偉達(dá)高端 GPU!”
?前華為天才少年稚暉君創(chuàng)業(yè)6個(gè)月造出人形機(jī)器人,百億參數(shù)大模型加持、目標(biāo)成本20萬元以內(nèi)
?字節(jié)首個(gè)大模型獨(dú)立App亮相;Nature發(fā)文:LK99不是室溫超導(dǎo)體;Debian誕生30周年 | 極客頭條
關(guān)鍵詞:
版權(quán)與免責(zé)聲明:
1 本網(wǎng)注明“來源:×××”(非商業(yè)周刊網(wǎng))的作品,均轉(zhuǎn)載自其它媒體,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé),本網(wǎng)不承擔(dān)此類稿件侵權(quán)行為的連帶責(zé)任。
2 在本網(wǎng)的新聞頁面或BBS上進(jìn)行跟帖或發(fā)表言論者,文責(zé)自負(fù)。
3 相關(guān)信息并未經(jīng)過本網(wǎng)站證實(shí),不對(duì)您構(gòu)成任何投資建議,據(jù)此操作,風(fēng)險(xiǎn)自擔(dān)。
4 如涉及作品內(nèi)容、版權(quán)等其它問題,請(qǐng)?jiān)?0日內(nèi)同本網(wǎng)聯(lián)系。