第9章 面試
科興科學園的早晨,陽光透過玻璃幕牆灑進三樓走廊。
林深提前四十分鐘到達,在前台登記後,拿到一張臨時訪客卡,被引導進了一間會議室。
裡面已經坐著七八個年輕人,有人低頭默念著什麼,有人反覆翻看簡歷,空氣里瀰漫著淡淡的緊張感。
他找了個靠窗的位置坐下,沒有看簡歷,也沒默念知識點,只是盯著窗外一隻在玻璃上反覆撞的飛蛾。
「你說它為什麼非要往那兒撞?」他突然對旁邊一個低頭背算法的男生說。
男生愣了一下,抬起頭:「啊?」
「明明旁邊就是開著的窗,」林深指了指走廊盡頭,「但它非要撞這塊擦得特別亮的玻璃。像不像有些人,明明有路,非要選最難的那條。」
男生張了張嘴,完全不知道該怎麼接話,他甚至覺得,這人是不是在嘲諷自己?
正組織了一堆語言反擊,卻見林深已經起身。
林深沿著走廊慢慢走著,2010年的騰訊科興園區,還沒有後來那些咖啡廳、健身房、睡眠艙,一切都顯得樸素而務實。牆上的標語倒是始終如一:「一切以用戶價值為依歸」。
茶水間總歸是沒變吧……
他走到走廊盡頭,果然看到一個小型茶水間。
沒有人,只有咖啡機和飲水機發出低低的嗡鳴。林深輕車熟路地找到儲備的固態果汁條,給自己泡了一杯,熬夜加班時他從不喝咖啡,乏了,就沖點果汁提神。
正依靠在水吧檯慢慢喝著,一男一女兩個人走了進來。
他們都掛著騰訊的工牌,沒看林深,只是自顧自地接了杯水聊著,男人語氣裡帶著明顯的煩躁。
「……臨時抽調我來當面試官,手頭的項目進度誰跟?」
「周老師說了,這批實習生要重點培養,以後都是要充實到一線團隊的。」
「培養?就靠這幾道筆試題能看出什麼?去年招的那個北大的,筆試滿分,進來連個簡單的內存泄漏都排查不出來。」
林深握著紙杯的手指微微收緊。
他聽出來了,這個聲音……是陳默。
他前世只在內部技術分享會上見過陳默幾次,那時陳默已是微信事業群的高級技術總監。而現在,三十出頭的陳默身形挺拔,頭髮還有些凌亂,說話時帶著明顯的、屬於一線工程師的直率煩躁。
「你這就有點偏激了,我看人家到娛樂事業群那邊,發展也挺好。說回這次筆試,陳老師你出的那道設計題也太難了,不如換個別的。」
「通訊題是我堅持要加的。」陳默對身旁的女同事說,手指無意識地敲著台面,「現在團隊最缺的就是懂底層通訊的人。那些只會寫UI的,招進來還得從頭教,這種實習生,我可沒時間帶。」
女同事搖搖頭,補充著說道:「40分的題,預計平均分不到15。你指望應屆生能設計出可用的IM架構?」
「難才有區分度。」陳默推了推眼鏡,「我要的不是背題的人,是真正會思考的。」
林深不著痕跡地放下紙杯,準備離開。
偷聽面試官討論畢竟不妥。
但就在他經過兩人身邊時,陳默突然轉頭:「你是……來面試的?」
聲音不高,但很清晰。
林深腳步頓住,坦然點頭:「是。抱歉,沒想偷聽你們談話,正打算走。」他說完,卻補了一句,「不過你們剛才說的內存泄漏,有時候不是不會查,是不敢查。萬一是自己寫的代碼泄漏了呢?那多尷尬。」
陳默和女同事同時愣住了。
這話說得太直白,甚至有點……挑釁?
但林深臉上卻掛著那種「我只是在陳述事實」的無辜表情。
「幾點的場次?」陳默問,目光在林深臉上多停留了一秒。
「十點。」
「第一個?」陳默將目光投向身邊的女同事。
女同事的名字,林深後來才知道,叫李薇。她翻開了手中的文件夾。裡面是今天面試者的資料,按時間順序排列。
她的目光在第一頁上停留了兩秒,然後抬起頭,打量了林深一眼,將文件夾遞給了陳默。
陳默接過,視線落在紙面上。
幾秒鐘的安靜。
然後他抬起頭,看向林深的眼神里多了些別的東西:「你就是林深啊?」
林深保持著平靜:「是我。」
陳默合上文件夾,但沒有立刻讓他離開,而是靠在水吧檯邊,像是隨口問道:「筆試192分,系統設計38。那道IM架構題,你寫了個『弱推送+定時拉取+智能喚醒』的方案——為什麼選這個思路?」
「陳老師,面試還沒開始!」李薇趕緊說道。
「沒事兒,讓他說說,還有時間。」陳默擺擺手,眼睛卻盯著林深。
問題來得突然,但林深早有準備。
「因為移動端的現實約束。」他語速平穩,「電池容量有限,網絡不穩定,系統進程管理嚴格。追求絕對實時性會導致耗電過高、體驗反而下降。所以我覺得,不如接受一定延遲,把資源用在保證重要消息必達上。」
陳默聽著,手指又習慣性地敲了敲台面:「但用戶可能想要即時性。」
「所以需要產品設計配合。」林深自然接話,「比如區分消息優先級,給用戶選擇權,解釋後台運行的意義。技術上做不到完美,就靠產品和體驗補足。」他突然笑了,「就像談戀愛,你不能24小時盯著對方,但可以約好『重要的事立刻打電話,小事發簡訊』,一個道理。」
李薇的眉毛挑了一下。
陳默則盯著林深看了兩秒,然後——也笑了:「比喻有點怪,但意思懂了。」
「技術和產品的平衡……」陳默若有所思地重複了一遍,然後忽然換了個方向,「通訊協議那道選擇題,你選了『分層設計,按場景選擇TCP或UDP』,批卷老師給了滿分。但如果讓你具體設計,你會怎麼分層?」
林深略作思考:「三層。第一層,關鍵狀態同步和重要消息,必須用TCP保證可靠投遞。第二層,實時音視頻流,用UDP加前向糾錯,容忍一定丟包。第三層,非關鍵的狀態更新,比如『正在輸入』這種,可以走UDP,丟了就丟了。」
他頓了頓,補充道:「其實還可以再細化——比如根據當前網絡質量動態調整策略。Wi-Fi下可以更激進,弱網下就保守些。不過這就涉及客戶端和服務的狀態同步了。」他突然眼睛一亮,「對了,這就像人走路,平路可以跑,石子路就得慢點,要是下雨天,那簡直得一步三看。」
茶水間裡安靜了幾秒。
李薇看了眼陳默,陳默則盯著林深,眼神里的審視漸漸被某種興趣取代。
「前向糾錯、動態策略……」他低聲重複著這兩個詞,「這些概念,你在哪兒學的?」
「研究過一些開源項目,也看過幾篇論文。」林深如實說,「不過都還只是理論,沒實際做過。」
這是實話。前世他做過,但現在這個時間點的林深不應該有相關經驗。
陳默點了點頭,沒再追問。他看了眼手錶:「九點四十了。你先回等待室吧,十點準時開始。」
「好的。」
林深禮貌點頭,轉身離開茶水間。
走回等待區的路上,他能感覺到背後有兩道目光一直跟隨著。不是審視,更像是……確認了什麼。
回到座位,窗外的陽光又升高了一些,在走廊地面投下更明亮的光斑。
等待區裡的其他面試者還在緊張準備,有人小聲背誦著算法複雜度,有人在紙上畫著系統架構圖。林深靠進椅背,閉上眼睛,讓剛才的男生有些難受。
而林深,卻在復盤和陳默的簡短交流,雖然只有幾分鐘,但信息量很大。
第一,陳默記住了他的筆試答案,而且印象很深。
第二,陳默對「技術與產品平衡」這個思路感興趣——這很「微信」,很「張小龍」。
第三,那些超前的概念,比如前向糾錯、動態策略引起了注意,但沒有引起懷疑。
很好。
九點五十分,前台小姐姐探頭:「林深同學?302會議室,可以進去了。」
他站起身,整理了一下襯衫領口。
走向會議室的路上,走廊兩側的工位區已經坐滿了人。屏幕代碼閃爍,鍵盤聲密集而規律,白板上畫著複雜的架構圖,這是2010年的騰訊,移動網際網路浪潮前夜的備戰狀態。
而在302會議室里,周博濤、陳默、李薇已經坐在長桌一側。
林深推開門。
「林深同學,請坐。」周博濤開口,聲音和電話面試時一樣沉穩。
「我叫周博濤,是今天面試的主考官,這位是陳默,我們團隊的技術骨幹;這位是李薇,HRBP。我們今天的面試大概一小時,會涵蓋技術、項目、產品思考幾個方面。」
「好的,各位老師好。」
周博濤翻開面前的文件夾,目光落在林深的簡歷上,率先開啟了面試:「林深同學,我們看過你的筆試答卷,特別是那道系統設計題。思路很清晰,基本功也紮實。
不過,紙上談兵和實際開發終究有距離。不如就從你簡歷上這個『基於Android平台的簡易天氣應用』開始,聊聊你在實際開發中遇到的最大挑戰,以及你怎麼解決的。」
技術面試的標準開局,考察項目經驗的真實性與解決問題的能力。
林深早有準備。他沒有選擇那個最複雜的技術難點,反而挑選了一個更具「故事性」和「學習過程」的問題。
「最大的挑戰,其實不在於技術實現,而在於對移動開發特性的初次深刻認識。」
林深頓了頓,組織語言,「當時我按照桌面端開發的習慣,在UI線程里直接進行網絡請求獲取天氣數據。在模擬器和我的測試機上運行很流暢,但當我將APK發給另一位使用低端機型的同學測試時,應用頻繁出現『應用無響應』的彈窗,甚至直接崩潰。」
陳默微微挑眉,似乎對這個切入點有些意外,也來了興趣。
「後來排查發現,」林深繼續道,「是網絡延遲和低端機型UI渲染能力不足疊加導致。我意識到,移動開發的環境是『惡劣』且多樣的,不能以開發者手中的設備為標準。
解決方案是引入異步任務處理網絡請求,並在數據返回前提供明確的加載狀態,甚至考慮根據設備性能動態簡化部分UI動畫。這件事讓我真正記住了『性能』和『體驗』在移動端不是加分項,而是及格線。」他忽然歪了歪頭,「就像請客吃飯,你不能只按自己的口味點菜,得問問客人能不能吃辣,有沒有忌口,雖然你可能會覺得,『這麼好吃的東西怎麼會有人不吃』?」
周博濤的嘴角似乎微不可察地咧了一下。
「嗯,從錯誤中學習,方向是對的。」周博濤點頭,接著追問,「如果現在讓你重構這個應用,你會首先優化哪一點?為什麼?」
「數據緩存和更新策略。」林深不假思索。
「天氣數據並非需要絕對實時,頻繁請求既耗電也耗流量。我會設計本地緩存機制,根據用戶定位和上次更新時間智能決定是否發起新請求,並在Wi-Fi環境下預緩存可能關心的城市數據。
這涉及到對業務邏輯(天氣數據的時效性)、用戶體驗(刷新等待時間)和技術實現(緩存有效性、存儲空間)的綜合權衡。」他想了想,又補了一句,「就像你媽總想給你塞吃的,但你其實不餓——得有個機制告訴她,『媽,我真飽了,等會兒再吃』。」
這次連李薇都忍不住看了他一眼。
回答條理清晰,並且自然地將技術點提升到了產品和技術結合思考的層面,只是那些比喻……有點過於生活化了。周博濤在筆記本上記錄了幾筆。
這時,陳默接過了話頭,語氣比剛才在茶水間時更顯正式和深入:「你剛才提到『根據網絡質量動態調整策略』,在你的筆試設計里也有體現。
假設我現在給你一個真實的場景:我們的服務監測到某區域大量用戶突然出現消息投遞延遲激增,但該區域運營商反饋網絡正常。作為負責通訊模塊的工程師,你排查問題的思路是什麼?」
林深提前四十分鐘到達,在前台登記後,拿到一張臨時訪客卡,被引導進了一間會議室。
裡面已經坐著七八個年輕人,有人低頭默念著什麼,有人反覆翻看簡歷,空氣里瀰漫著淡淡的緊張感。
他找了個靠窗的位置坐下,沒有看簡歷,也沒默念知識點,只是盯著窗外一隻在玻璃上反覆撞的飛蛾。
「你說它為什麼非要往那兒撞?」他突然對旁邊一個低頭背算法的男生說。
男生愣了一下,抬起頭:「啊?」
「明明旁邊就是開著的窗,」林深指了指走廊盡頭,「但它非要撞這塊擦得特別亮的玻璃。像不像有些人,明明有路,非要選最難的那條。」
男生張了張嘴,完全不知道該怎麼接話,他甚至覺得,這人是不是在嘲諷自己?
正組織了一堆語言反擊,卻見林深已經起身。
林深沿著走廊慢慢走著,2010年的騰訊科興園區,還沒有後來那些咖啡廳、健身房、睡眠艙,一切都顯得樸素而務實。牆上的標語倒是始終如一:「一切以用戶價值為依歸」。
茶水間總歸是沒變吧……
他走到走廊盡頭,果然看到一個小型茶水間。
沒有人,只有咖啡機和飲水機發出低低的嗡鳴。林深輕車熟路地找到儲備的固態果汁條,給自己泡了一杯,熬夜加班時他從不喝咖啡,乏了,就沖點果汁提神。
正依靠在水吧檯慢慢喝著,一男一女兩個人走了進來。
他們都掛著騰訊的工牌,沒看林深,只是自顧自地接了杯水聊著,男人語氣裡帶著明顯的煩躁。
「……臨時抽調我來當面試官,手頭的項目進度誰跟?」
「周老師說了,這批實習生要重點培養,以後都是要充實到一線團隊的。」
「培養?就靠這幾道筆試題能看出什麼?去年招的那個北大的,筆試滿分,進來連個簡單的內存泄漏都排查不出來。」
林深握著紙杯的手指微微收緊。
他聽出來了,這個聲音……是陳默。
他前世只在內部技術分享會上見過陳默幾次,那時陳默已是微信事業群的高級技術總監。而現在,三十出頭的陳默身形挺拔,頭髮還有些凌亂,說話時帶著明顯的、屬於一線工程師的直率煩躁。
「你這就有點偏激了,我看人家到娛樂事業群那邊,發展也挺好。說回這次筆試,陳老師你出的那道設計題也太難了,不如換個別的。」
「通訊題是我堅持要加的。」陳默對身旁的女同事說,手指無意識地敲著台面,「現在團隊最缺的就是懂底層通訊的人。那些只會寫UI的,招進來還得從頭教,這種實習生,我可沒時間帶。」
女同事搖搖頭,補充著說道:「40分的題,預計平均分不到15。你指望應屆生能設計出可用的IM架構?」
「難才有區分度。」陳默推了推眼鏡,「我要的不是背題的人,是真正會思考的。」
林深不著痕跡地放下紙杯,準備離開。
偷聽面試官討論畢竟不妥。
但就在他經過兩人身邊時,陳默突然轉頭:「你是……來面試的?」
聲音不高,但很清晰。
林深腳步頓住,坦然點頭:「是。抱歉,沒想偷聽你們談話,正打算走。」他說完,卻補了一句,「不過你們剛才說的內存泄漏,有時候不是不會查,是不敢查。萬一是自己寫的代碼泄漏了呢?那多尷尬。」
陳默和女同事同時愣住了。
這話說得太直白,甚至有點……挑釁?
但林深臉上卻掛著那種「我只是在陳述事實」的無辜表情。
「幾點的場次?」陳默問,目光在林深臉上多停留了一秒。
「十點。」
「第一個?」陳默將目光投向身邊的女同事。
女同事的名字,林深後來才知道,叫李薇。她翻開了手中的文件夾。裡面是今天面試者的資料,按時間順序排列。
她的目光在第一頁上停留了兩秒,然後抬起頭,打量了林深一眼,將文件夾遞給了陳默。
陳默接過,視線落在紙面上。
幾秒鐘的安靜。
然後他抬起頭,看向林深的眼神里多了些別的東西:「你就是林深啊?」
林深保持著平靜:「是我。」
陳默合上文件夾,但沒有立刻讓他離開,而是靠在水吧檯邊,像是隨口問道:「筆試192分,系統設計38。那道IM架構題,你寫了個『弱推送+定時拉取+智能喚醒』的方案——為什麼選這個思路?」
「陳老師,面試還沒開始!」李薇趕緊說道。
「沒事兒,讓他說說,還有時間。」陳默擺擺手,眼睛卻盯著林深。
問題來得突然,但林深早有準備。
「因為移動端的現實約束。」他語速平穩,「電池容量有限,網絡不穩定,系統進程管理嚴格。追求絕對實時性會導致耗電過高、體驗反而下降。所以我覺得,不如接受一定延遲,把資源用在保證重要消息必達上。」
陳默聽著,手指又習慣性地敲了敲台面:「但用戶可能想要即時性。」
「所以需要產品設計配合。」林深自然接話,「比如區分消息優先級,給用戶選擇權,解釋後台運行的意義。技術上做不到完美,就靠產品和體驗補足。」他突然笑了,「就像談戀愛,你不能24小時盯著對方,但可以約好『重要的事立刻打電話,小事發簡訊』,一個道理。」
李薇的眉毛挑了一下。
陳默則盯著林深看了兩秒,然後——也笑了:「比喻有點怪,但意思懂了。」
「技術和產品的平衡……」陳默若有所思地重複了一遍,然後忽然換了個方向,「通訊協議那道選擇題,你選了『分層設計,按場景選擇TCP或UDP』,批卷老師給了滿分。但如果讓你具體設計,你會怎麼分層?」
林深略作思考:「三層。第一層,關鍵狀態同步和重要消息,必須用TCP保證可靠投遞。第二層,實時音視頻流,用UDP加前向糾錯,容忍一定丟包。第三層,非關鍵的狀態更新,比如『正在輸入』這種,可以走UDP,丟了就丟了。」
他頓了頓,補充道:「其實還可以再細化——比如根據當前網絡質量動態調整策略。Wi-Fi下可以更激進,弱網下就保守些。不過這就涉及客戶端和服務的狀態同步了。」他突然眼睛一亮,「對了,這就像人走路,平路可以跑,石子路就得慢點,要是下雨天,那簡直得一步三看。」
茶水間裡安靜了幾秒。
李薇看了眼陳默,陳默則盯著林深,眼神里的審視漸漸被某種興趣取代。
「前向糾錯、動態策略……」他低聲重複著這兩個詞,「這些概念,你在哪兒學的?」
「研究過一些開源項目,也看過幾篇論文。」林深如實說,「不過都還只是理論,沒實際做過。」
這是實話。前世他做過,但現在這個時間點的林深不應該有相關經驗。
陳默點了點頭,沒再追問。他看了眼手錶:「九點四十了。你先回等待室吧,十點準時開始。」
「好的。」
林深禮貌點頭,轉身離開茶水間。
走回等待區的路上,他能感覺到背後有兩道目光一直跟隨著。不是審視,更像是……確認了什麼。
回到座位,窗外的陽光又升高了一些,在走廊地面投下更明亮的光斑。
等待區裡的其他面試者還在緊張準備,有人小聲背誦著算法複雜度,有人在紙上畫著系統架構圖。林深靠進椅背,閉上眼睛,讓剛才的男生有些難受。
而林深,卻在復盤和陳默的簡短交流,雖然只有幾分鐘,但信息量很大。
第一,陳默記住了他的筆試答案,而且印象很深。
第二,陳默對「技術與產品平衡」這個思路感興趣——這很「微信」,很「張小龍」。
第三,那些超前的概念,比如前向糾錯、動態策略引起了注意,但沒有引起懷疑。
很好。
九點五十分,前台小姐姐探頭:「林深同學?302會議室,可以進去了。」
他站起身,整理了一下襯衫領口。
走向會議室的路上,走廊兩側的工位區已經坐滿了人。屏幕代碼閃爍,鍵盤聲密集而規律,白板上畫著複雜的架構圖,這是2010年的騰訊,移動網際網路浪潮前夜的備戰狀態。
而在302會議室里,周博濤、陳默、李薇已經坐在長桌一側。
林深推開門。
「林深同學,請坐。」周博濤開口,聲音和電話面試時一樣沉穩。
「我叫周博濤,是今天面試的主考官,這位是陳默,我們團隊的技術骨幹;這位是李薇,HRBP。我們今天的面試大概一小時,會涵蓋技術、項目、產品思考幾個方面。」
「好的,各位老師好。」
周博濤翻開面前的文件夾,目光落在林深的簡歷上,率先開啟了面試:「林深同學,我們看過你的筆試答卷,特別是那道系統設計題。思路很清晰,基本功也紮實。
不過,紙上談兵和實際開發終究有距離。不如就從你簡歷上這個『基於Android平台的簡易天氣應用』開始,聊聊你在實際開發中遇到的最大挑戰,以及你怎麼解決的。」
技術面試的標準開局,考察項目經驗的真實性與解決問題的能力。
林深早有準備。他沒有選擇那個最複雜的技術難點,反而挑選了一個更具「故事性」和「學習過程」的問題。
「最大的挑戰,其實不在於技術實現,而在於對移動開發特性的初次深刻認識。」
林深頓了頓,組織語言,「當時我按照桌面端開發的習慣,在UI線程里直接進行網絡請求獲取天氣數據。在模擬器和我的測試機上運行很流暢,但當我將APK發給另一位使用低端機型的同學測試時,應用頻繁出現『應用無響應』的彈窗,甚至直接崩潰。」
陳默微微挑眉,似乎對這個切入點有些意外,也來了興趣。
「後來排查發現,」林深繼續道,「是網絡延遲和低端機型UI渲染能力不足疊加導致。我意識到,移動開發的環境是『惡劣』且多樣的,不能以開發者手中的設備為標準。
解決方案是引入異步任務處理網絡請求,並在數據返回前提供明確的加載狀態,甚至考慮根據設備性能動態簡化部分UI動畫。這件事讓我真正記住了『性能』和『體驗』在移動端不是加分項,而是及格線。」他忽然歪了歪頭,「就像請客吃飯,你不能只按自己的口味點菜,得問問客人能不能吃辣,有沒有忌口,雖然你可能會覺得,『這麼好吃的東西怎麼會有人不吃』?」
周博濤的嘴角似乎微不可察地咧了一下。
「嗯,從錯誤中學習,方向是對的。」周博濤點頭,接著追問,「如果現在讓你重構這個應用,你會首先優化哪一點?為什麼?」
「數據緩存和更新策略。」林深不假思索。
「天氣數據並非需要絕對實時,頻繁請求既耗電也耗流量。我會設計本地緩存機制,根據用戶定位和上次更新時間智能決定是否發起新請求,並在Wi-Fi環境下預緩存可能關心的城市數據。
這涉及到對業務邏輯(天氣數據的時效性)、用戶體驗(刷新等待時間)和技術實現(緩存有效性、存儲空間)的綜合權衡。」他想了想,又補了一句,「就像你媽總想給你塞吃的,但你其實不餓——得有個機制告訴她,『媽,我真飽了,等會兒再吃』。」
這次連李薇都忍不住看了他一眼。
回答條理清晰,並且自然地將技術點提升到了產品和技術結合思考的層面,只是那些比喻……有點過於生活化了。周博濤在筆記本上記錄了幾筆。
這時,陳默接過了話頭,語氣比剛才在茶水間時更顯正式和深入:「你剛才提到『根據網絡質量動態調整策略』,在你的筆試設計里也有體現。
假設我現在給你一個真實的場景:我們的服務監測到某區域大量用戶突然出現消息投遞延遲激增,但該區域運營商反饋網絡正常。作為負責通訊模塊的工程師,你排查問題的思路是什麼?」