跳至主要內容
YIP NEWS
生活 美食生活

面試官說基礎不牢,而你家廚房裡的基礎,從來是那鍋湯

一位求職者在得物一面被問倒的九個技術問題,被我們翻譯成廚房裡備料、火候與那鍋忘了怎麼燉的湯的滋味故事。

YIP NEWS 編輯室 閱讀約 6 分鐘

那位同學在牛客網上發面經的時候,語氣裡還帶著一點懊惱。得物的一面,二十幾分鐘就結束了,面試官說基礎不牢固,他自己總結是太緊張,大腦一片空白,「最好一次性說完,得物的面試官在你停頓後就開始下一個問題了,沒有找補的機會」。

這句話我讀了很久。停頓就換下一題,聽起來很冷,但你換個場景想,廚房裡其實也是這樣的。油鍋燒到冒煙的那一刻不會等你,蔥花下鍋的滋啦聲只有三秒,你猶豫一下,香氣就焦了。

深拷貝與淺拷貝,一碗湯分給兩個人的方式

面試第一題問的是深拷貝與淺拷貝。這個概念放到餐桌上,就是分湯。

淺拷貝像是你把湯舀到另一個碗裡,兩個碗看起來各自獨立,但底下那鍋是同一鍋。你在自己碗裡多加了鹽,回頭別人喝那鍋湯,還是原本的味道。可要是你手一抖,直接把鹽撒進了鍋裡,兩個人都得喝那個鹹。

深拷貝就麻煩多了,得重新開一鍋。同樣的雞骨、同樣的薑片、同樣的火,燉出來的湯味道幾乎一樣,但彼此再無牽扯。你家長輩做菜的時候早就懂這件事:要給隔壁送一碗,寧可多燉一小鍋,也不願意動全家晚餐那鍋的底。份量是份量,底是底。

這讓我想起之前寫過的面試官問火候的時候,你家的湯早就燉對了,技術問答和廚房功夫,骨子裡是同一種對「時機」的敬畏。

finally 一定會執行嗎,關火之後的高壓鍋

第二題問 finally 是不是一定會執行,系統出錯的時候呢。

廚房裡對應的畫面是高壓鍋。你把火關了,那股嘶嘶的洩氣聲不會立刻停,它有自己的節奏,壓力沒退完之前,聲音一直在。這是它的本分,像 finally 一樣,收尾的動作總要發生。

但要是整個廚房跳電了呢。火滅了,鍋涼了,那聲嘶嘶也會慢慢弱下去,最後變成一片安靜的、蒸汽凝結在鍋蓋上的水珠。系統層級的錯誤就像跳電,連收尾的力氣都被抽走了。你偶爾會在新聞裡看到誰家的壓力鍋沒洩氣就硬開,噴得天花板都是。那一瞬間你明白,收尾不是可有可無的禮貌,是安全的底線。

家常菜裡最動人的往往就是這些收尾。起鍋前那一圈香油、最後撒上的那一把蔥花。菜炒了四十分鐘,成敗卻常常在最後十秒。

執行緒池與爐子上那幾口鍋

面試中段問到阻塞佇列怎麼管理執行緒、執行緒池的工作原理。這一整塊,我覺得最像老家那種大竈。

竈上就那幾個爐眼。年夜飯的時候,高麗菜的水分還在鍋裡嘶嘶作響,紅燒肉在另一邊咕嘟咕嘟冒泡,湯鍋安安靜自在角落慢燉。爐眼是固定的,菜是排隊的。哪道菜先上、哪道菜等著、哪道菜實在排不下了得換小電鍋,主廚心裡有一張清單。

那份清單不太出聲,但整個廚房的秩序都靠它。這和我們之前聊過的出菜口從來不吵,好廚房靠的是那排掛單的票夾是同一個道理:好的系統和好的廚房,都把忙碌藏在秩序裡。

至於 HashMap 多執行緒並發會出什麼問題,放到餐桌上更直白。兩個人同時伸手到同一盤菜裡夾最後一塊排骨,筷子撞筷子的聲音你一定聽過。盤子只有一個,排骨只有一塊,誰都想先拿到,結果要嘛卡住,要嘛翻了整盤。家庭聚餐之所以發展出「轉盤要等長輩先夾」的規矩,就是老祖宗版本的控制機制。

場景題與那個想不起來的雪花算法

最後的場景題,面試官讓實現分號器。那位同學回答可以用雪花算法,面試官追問雪花算法的細節,他忘記了。

這一段最讓人心疼,也最像廚房。

你一定有過這種經驗。朋友問你這道紅燒肉怎麼做的,你脫口而出「就是先炒個糖色」,對方問糖色怎麼炒,你愣住了。冰糖幾顆、油多少、小火多久變琥珀色,你在家做過十次,肌肉都記得了,可是在被注視的那一刻,腦子裡只剩一片空白。手會的,嘴說不出來。

糖色這東西,冰糖下鍋先是安靜地融化,然後邊緣泛起淺淺的金,接著是琥珀,然後是棗紅。那個棗紅停留的時間極短,晚三秒就苦了。老師傅說糖色是「聽聲音、看氣泡、聞一股微微的焦糖香」,三件事同時判斷,你很難用一句話教會別人。基礎這種東西,就是你知道它在那裡,但要攤開來講,才知道自己哪一段其實是靠手感蒙混過去的。

二十幾分鐘的一餐飯,和慢燉的道理

面試只進行了二十幾分鐘,很多題只答出一兩條,結果是「已掛」。評論區裡有人安慰他好好複盤,有人說「對於不懂的一定要去多整理」。

複盤這個詞,廚房裡叫做回鍋。一鍋湯燉鹹了,晚一點兌水、加馬鈴薯,救得回來。一開始就鹹的那鍋,會教會你下一次鹽要分三次放。失敗的一餐飯從來不浪費,它只是換一種方式進到你的手藝裡。

而所謂基礎不牢固,在廚房裡的說法更溫柔一點:這鍋湯還沒燉到時候。大火能把水燒開,但雞湯要清、要甜、要有那種喝完嘴脣微微黏的膠質,靠的全是小火慢燉的那幾個小時。湯色從渾濁轉到金黃的過程沒有捷徑,時間不夠,味道就浮在表面,進不了骨頭裡。

基礎也是這樣。那些你答不出來的題目,其實就是還沒燉到時候的部分。急不得,但也躲不掉,火得一直開著。

留在你廚房裡的線索

那位同學的面經最後一句是「發面經攢人品」。這個說法我特別喜歡,把一次失敗攤開來給後面的人看,像家裡長輩把自己燒焦過的那鍋飯講給你聽,你笑著聽,心裡卻記住了。

如果你最近也正在準備什麼考試、面試、任何需要基礎紮實的關卡,這裡有三個從廚房借來的笨辦法。

第一,把會的東西說出聲音來。炒糖色的時候自己旁白一次,講不出來的地方就是基礎的洞。第二,停頓不可怕,可怕的是空白之後就放下筷子。湯還在爐上,回一句「這裡我需要想一下」,比慌張地亂撒鹽好。第三,別指望一次燉成。今天答不出的雪花算法,明天炒一次糖色,後天再講一次深拷貝,火候是一次一次疊上去的。

爐眼就那幾個,菜是一道一道熟的。這週找個晚上,燉一鍋需要兩個小時的湯,坐在廚房裡聞著它從冷水慢慢轉成金黃。你會想起那些答不出來的題目,也會想起,所有值得端上桌的東西,都是慢慢來的。