跳至主要內容
YIP NEWS
YIP NEWS

9月22日

面試官問了五十三分鐘的基礎,而你家廚房每天都在複習

生活爐 美食生活

度小滿AI全棧一面的一串技術問答,被我們翻譯成廚房裡的基礎功夫、快炒與慢燉,以及一頓飯要端上桌前的種種講究。

刊出 (台北時間) 閱讀約 6 分鐘

九月二十日,牛客網上出現一篇度小滿AI全棧一面的面經,滿滿一頁的問答,從瀏覽器輸入網址之後發生了什麼,一路問到Redis為什麼快、B+樹為什麼好、防抖與節流是什麼,最後還手撕了一道復原IP地址的演算法題。整場面試淨時長約五十三分鐘。留言區裡有人說同一天下午三點半面的同崗位至今沒有音訊,也有人說面試官一結束就急著掛了電話。

這些問題看起來冷冰冰,但你在廚房裡其實都遇過。只是廚房不考試,廚房只看結果端不端得上桌。

從按下爐火到湯滾起來,中間發生了什麼

面試喜歡問那種「從輸入網址到頁面展示,中間發生了什麼」的題目。這一長串看不見的過程,廚房裡有它的翻譯版:你按下爐子的旋鈕,咔噠一聲,瓦斯從管線裡竄出來,點火器嘶嘶作響,藍色的火苗舔上鍋底,鍋裡的油慢慢從流動的透明變成微微起紋的亮面,然後蔥花下去,嗆出一股辛香。

你看不見瓦斯在管子裡跑,就像你看不見封包在網路裡跑。但一鍋好湯的成立,靠的就是那些看不見的環節一個都沒出錯。火太小,湯清得像洗碗水;火太猛,蛋白質瞬間收縮,湯色混濁,浮沫一片。三次握手的那種確認,其實就是你站在爐邊問自己:水滾了沒?滾了。夠滾嗎?夠了。可以下料了嗎?可以。少問一次,肉就柴了。

索引失效,就像翻錯了食譜

面試官問MySQL為什麼用B+樹而不是哈希表。這種問題的答案藏在食譜的編排裡。一本好食譜不是按菜名字母排的,是按你走進廚房之後的順序排的:先講備料,再講火候,最後講調味。你找「紅燒肉怎麼做」,翻兩頁就到,因為編排的人知道你會怎麼找。索引做得好,就是替使用者的找法先想好了路徑。

索引失效的SQL,則像你明明把食譜按料理方式分好了類,卻偏要用「媽媽的味道」這種模糊詞去翻。書還是那本書,分類還是那套分類,但你繞過了它,一頁一頁硬翻,翻到手痠。廚房裡的浪費常常不是食材壞了,是找東西的方式錯了。冰箱深處那一罐去年就該拿出來的蠔油,就是一次全表掃描。

我們之前寫過廚房裡備料與一鍋湯的滋味故事,那時就聊過,基礎功夫這件事,從來藏在你以為理所當然的動作裡。

快取像冰箱,雪崩像停電

Redis為什麼快,快取雪崩、擊穿、穿透怎麼處理,這一串問題翻譯到廚房,全是冰箱的故事。

冰箱就是家裡的快取。你昨晚燉了一鍋滷肉,今天中午不用重滷,熱一下就能喫,這就是命中。快取的意義是讓最常被取用的東西,放在離手最近的地方。

雪崩是停電。一整臺冰箱同時罷工,所有的東西都得重買重煮,市場瞬間被塞爆。解法聽起來樸素:不要把所有東西放同一格,備用電源,或者至少,雞蛋不要一次全放進一個籃子。擊穿是那一鍋所有人都要的招牌滷肉突然被喫光了,隊伍全擠到後廚門口,你只能先發個號碼牌,讓一部分人等著補貨。穿透是有人一直來點一份你根本不賣的菜,每一次都白跑一趟後廚,聰明的做法是在門口就先貼一張「本店不做這道」。

這些道理,開了十年小喫店的老闆娘都能講,只是她不會用那些名詞。

防抖與節流,媽媽翻鍋的節奏

防抖與節流這組前端名詞,我第一次真正讀懂,是看媽媽煎魚。

魚下鍋之後,最怕的就是手癢。一直去翻它,皮就破了,肉就散了。老一輩的規矩是:等到底面定型,一次性翻面,翻完就別再動。這是節流,把密集的衝動限制成固定的節奏,一分鐘只允許一次。

防抖則是另一種脾氣。你調味時撒了一撮鹽,先別急著補第二撮,攪拌,等它化開,嚐一口,確認真的不夠再動手。只要你的手還在動,那個「再加一撮」的衝動就一直被往後延,直到你停下來為止。衝動之間的等待,是廚房裡最難教的一課,也是面試裡最常被追問的一課。

AI進了廚房,但鹽還是你自己放

這場面試最有意思的一段,是關於AI輔助開展的三連問:你怎麼用AI?AI的方案你直接採納多少?踩過什麼坑?

這像極了現在很多人拿食譜App做飯的樣子。App說三分鐘,你的火比它想的旺,蒜末在第兩分鐘就黑了。App說一小匙鹽,它不知道你的醬油比較鹹。用得多了你會發現,AI給的是一條安全的路,但鍋裡的聲音、油煙的氣味、湯面起伏的樣子,這些它聽不見也聞不到,只有站在爐前的你知道。

所以真正會做飯的人用食譜App,是把它當查料的助手,不是當掌勺的師傅。什麼時候該相信自己多一點,這個判斷,廚房和程式碼給出的答案是一樣的。

復原一個IP位址,就像復原一桌年夜飯

最後那道手撕題,LeetCode 93,復原IP地址。給一串數字,找出所有合法的切分方式。這道題的結構,像極了過年後冰箱裡的剩菜。

一整盆喫剩的佛跳牆、半盤白斬雞、一些烏參、一堆長年菜,同樣一堆材料,切法不同,就是不同的兩三天的餐桌。這樣切,今天是雞湯麵線,明天是燴參;那樣切,全部下去熬一鍋雜燴,一餐解決。每一種切分都要合法,雞不能拿去煮甜湯,年菜不能配出讓長輩皺眉的組合。你用退回的方式一種一種試,試不通就換下一種。

這種窮舉的耐心,家裡掌廚的人最熟。試味道本身就是一場回溯:太鹹了,加水;太淡了,補醬;還是不對,蓋上鍋蓋再想五分鐘。

一場面試,一頓飯

五十三分鐘,從自我介紹到演算法題,中途還被問了「flex: 1是哪三個屬性的縮寫」。這種細到像素的追問,跟問你「白飯的水要沒過手指哪一節」是同一種認真。

留言區裡那句「面試官迫不及待就掛了電話」,讀起來有點心酸。但做飯的人知道,菜端上桌之後,廚師不會站在旁邊看你喫。他回廚房收拾,下一道菜的備料已經開始了。能不能再來一趟,不取決於那通掛快的電話,取決於你這一輪火候裡學到了什麼。

秋招的季節跟入秋的市場一樣,早晚轉涼,攤子上卻還是滿的。菱角上市了,芋頭鬆了,麻油該進補了。面試完的那個傍晚,與其反覆回想哪一句答得不好,不如去市場挑一節蓮藕回來燉湯。排骨先汆,藕切厚塊,文火一個半小時,湯色會從清水變成淡淡的藕粉紅。

基礎功夫這種東西,面試官用問題考你,廚房用味道考你,而廚房每年都讓你重考一次,直到你真的會了為止。

這道菜的主題

標籤