![]()
自李博杰稱DeepSeek面試官說他寫代碼的時候作弊一事過后,許多程序員都在網(wǎng)上表示,自己在面試DeepSeek的時候,都要經(jīng)歷兩輪非常嚴(yán)苛的代碼能力面試。
簡介為前阿里技術(shù)專家的視頻號博主,ID為“軍哥程序員”發(fā)視頻表示,DeepSeek確實(shí)要面試兩輪代碼,并且還表示,DeepSeek的面試官幾乎全程都在詢問代碼相關(guān)的問題,正常面試更是長達(dá)70分鐘。
過去十幾年,程序員面試早就形成了一套成熟的應(yīng)試套路。背題、刷題、共享面經(jīng),一條龍服務(wù),從幾塊錢的 PDF 到十幾萬的“包過內(nèi)推”,每一個價位都有對應(yīng)的產(chǎn)品。只要你花夠時間準(zhǔn)備,進(jìn)大廠的概率不低。
但DeepSeek這套面試,把這些套路全廢了。
你背的東西它不問,你刷的題它不出。它問的那些問題,你沒在線上真刀真槍做過,就是答不上來。
由此可以看出一件事,DeepSeek奉行的是“代碼即正義”。
01
DeepSeek的代碼即正義
軍哥程序員表示,面試官開了攝像頭,直奔主題,只讓他做了三四十秒的自我介紹,然后就立刻揪著簡歷上的項(xiàng)目開始連環(huán)追問。
DeepSeek的面試官問了軍哥程序員許多問題,每一道題,都是那種在一線干過的程序員才經(jīng)歷過的。
我挑幾個有代表性的問題,給你拆解一下DeepSeek招人的思路。
“你的會話記憶用的是message window還是token window,線上為什么這么選?”
大模型本身沒有記憶,你跟它聊了二十輪,它不會自動記得第一輪說了什么。要讓它“記住”之前的對話,得把歷史消息塞回給它。
message window就是按條數(shù)存,最近N條消息全塞回去;token window是按字?jǐn)?shù)存,在規(guī)定的字?jǐn)?shù)以內(nèi)可以保存,超過字?jǐn)?shù)就會截?cái)唷?/p>
![]()
聽起來簡單,但線上選哪個,取決于你的業(yè)務(wù)場景。如果你是客服對話,那你的輪數(shù)多但每輪短,用message window就夠了;如果是長文檔或者整個代碼庫分析,那么每輪的內(nèi)容會非常長,用token window效果更好。
這個問題沒有標(biāo)準(zhǔn)答案,面試官要聽的是你為什么這么選,選錯了會怎樣。
“Redis持久化的時候,會話過期策略怎么定的?”
用戶跟AI聊天,會話存在Redis里,可Redis是要花錢的,因此容量是有限的,不可能永遠(yuǎn)存。多久過期?用戶半小時沒說話就清掉,還是保留七天?如果用戶突然回來,發(fā)現(xiàn)之前聊的沒了,體驗(yàn)好不好?這些都是線上才會遇到的問題,寫demo的時候根本不用想。
這個問題是“有典故”的。程序員圈內(nèi)有個很搞笑的故事,某個運(yùn)維或開發(fā)在crontab里配了一條代碼,為了讓磁盤定期清理,所以每月30號凌晨清理一次日志。
可是2月沒有30號,所以2月的數(shù)據(jù)沒有清理,于是3月的某一天,由于日志量過大,導(dǎo)致磁盤被撐爆了。
“有沒有遇到過并發(fā)會話沖突?”
這也是個隨處可見的情況。你在手機(jī)APP上跟DeepSeek聊了一半,到公司打開電腦網(wǎng)頁版DeepSeek繼續(xù)聊。
兩邊登錄的是同一個賬號,都在往同一個會話里寫消息。手機(jī)這邊剛發(fā)了一句“幫我改一下這段代碼”,電腦那邊已經(jīng)在讀之前的對話歷史了。
兩邊的會話狀態(tài)都在寫Redis,會不會互相覆蓋?手機(jī)上最后發(fā)的那句話,電腦端能不能看到?如果用戶在兩邊同時發(fā)了消息,上下文怎么拼?會不會讀到臟數(shù)據(jù)?
“長期記憶用向量庫存儲,記憶越來越多,檢索越來越不精準(zhǔn),怎么優(yōu)化?”
這是最考功底的題目之一。向量庫存的是把文字轉(zhuǎn)成的一串?dāng)?shù)字,靠數(shù)學(xué)相似度來找最相關(guān)的記憶。剛上線幾千條記憶時檢索很準(zhǔn),等攢到幾十萬條,噪聲記憶開始干擾,真正相關(guān)的那條可能已經(jīng)被拋到很后面的位置了。
這道題是DeepSeek付費(fèi)大戶們經(jīng)常碰到的。你兩周前跟它聊過“我是做Java的,主要搞支付系統(tǒng)”,今天你問它“幫我寫個重試機(jī)制”。
理想情況下,DeepSeek應(yīng)該記得你是Java開發(fā)者,給你寫代碼的語言是Java。
但如果你跟它聊了幾百輪,聊過生活、聊過python。這個時候當(dāng)你再去管DeepSeek要代碼,它很可能給你吐出來的是python。
看出來了吧,這些問題有一個共同特點(diǎn),它們?nèi)縼碜跃€上實(shí)戰(zhàn),沒有一個能靠背書過關(guān)。
軍哥程序員回憶到,面試官問他線上故障排查的一個點(diǎn),他答得含糊,面試官連續(xù)追問了三個問題,一直追到具體改了哪塊邏輯、效果提升了多少百分比才結(jié)束。
軍哥程序員表示,如果你只是用LangChain寫了個demo,沒經(jīng)歷過線上項(xiàng)目的坑,那你“絕對撐不過二十分鐘”。
02
“八股文”行不通了
軍哥程序員在視頻中提到一件事,說八股文一點(diǎn)用都沒有。
什么是八股文?
“八股文”原本是明清科舉考試的固定文體,文章八個部分、固定格式、題目出自四書五經(jīng),不需要有自己的思想,格式套對就行。
以往程序員面試都是背題,因此業(yè)內(nèi)才會戲稱面試為“八股文”。
比如HashMap的工作原理、JVM內(nèi)存模型、synchronized和volatile的區(qū)別,諸如此類。題目出現(xiàn)次數(shù)多了,就有人專門整理成冊,叫“程序員面試寶典”,在圈子里地位堪比考研押題卷。
網(wǎng)上搜“Java面試八股文”,幾千篇文章清一色標(biāo)著“大廠面試必背”“背完這篇拿offer”,牛客、CSDN 上甚至有“八股緊急背誦”專欄,按公司熱度排序,標(biāo)明哪些題在大廠面試中出現(xiàn)的概率高。
一些計(jì)算機(jī)培訓(xùn)機(jī)構(gòu),除了培訓(xùn)學(xué)員的代碼水平外,也會專門開設(shè)課程培訓(xùn)面試技巧。在國內(nèi)的各大社交媒體,經(jīng)常有打著程序員名義的賬號,售賣各種面試指南。
面試時間就一個小時,面試官要快速判斷一個人的水平,最省力的辦法就是問有標(biāo)準(zhǔn)答案的問題。你會背說明你準(zhǔn)備了,你準(zhǔn)備了說明你重視。至于你真會不會干活,入職再說。
于是形成了一條心照不宣的產(chǎn)業(yè)鏈:有人整理八股文,有人背八股文,面試官也知道你在背。
更魔幻的是“面經(jīng)共享”,面完的人把題目發(fā)到網(wǎng)上,后來的人提前背好去面同一個崗位,同一套題所有人都用同一套方案來回答。
圈內(nèi)人管這叫“面試造火箭,入職擰螺絲”。
在這個背景下,再來看軍哥描述的DeepSeek面試,就知道它有多不一樣了。
還有一點(diǎn),程序員圈子里的一個潛規(guī)則,只有初級碼農(nóng)才面代碼。
任何一個程序員,無論他在學(xué)校的績點(diǎn)如何,他剛?cè)胄械臅r候,唯一能做的事,就是在框架里套現(xiàn)成代碼。
但是當(dāng)你積累了足夠的經(jīng)驗(yàn),你就能看懂里面的實(shí)現(xiàn)邏輯,遇到業(yè)務(wù)痛點(diǎn)還能自己改、做優(yōu)化。
到了后面,精力更重要的是考慮業(yè)務(wù)的整體、并發(fā)、線上bug這些事。
所以越是高級的人才,就越不會面試代碼。
DeepSeek不這么想,不管你是應(yīng)屆生還是華為天才少年,前兩輪就是純代碼面試。
![]()
這就叫代碼即正義。
這套打法的好處很直白。
第一,篩選機(jī)制極度公平。代碼寫得出來就是寫得出來,寫不出來就是寫不出來,沒法靠包裝簡歷過關(guān)。尤其是對于不善社交的程序員群體來說,這反而成了最友好的招聘方式,你只需要把代碼寫好,其他都不重要。
第二,團(tuán)隊(duì)基線高,過了代碼這道門檻,意味著進(jìn)來的人能力都在一條線以上,Code Review不用教基礎(chǔ),溝通不用翻譯概念,不會出現(xiàn)“資深工程師寫的代碼還不如實(shí)習(xí)生”的離譜情況。
不過DeepSeek自己心里也明白,代碼并不是一個人的全部。它只是把代碼放在了最前面,當(dāng)成了入場券。
軍哥程序員表示,三面不問代碼也不聊技術(shù),全是聊認(rèn)知和判斷,比如你怎么看Agent這個賽道?它最大的瓶頸在哪?如果讓你從零帶一條線,你第一步做什么?
這再一次證明了,DeepSeek也是過來人,知道市場是個怎樣的環(huán)境。所以無論高低貴賤,你都得會代碼。
03
三家面試,三種哲學(xué)
大廠對于招人的態(tài)度是截然不同的。
先說字節(jié)跳動。
字節(jié)AI算法崗的標(biāo)準(zhǔn)流程是筆試加三輪技術(shù)面加一輪HR面,總共五輪。
筆試三道LeetCode Medium,技術(shù)一面就上手撕代碼,要求速度和干凈程度極高,過不了代碼直接掛。一面還會深挖項(xiàng)目經(jīng)歷,然后出一到兩道算法題。
二面開始問模型結(jié)構(gòu),比如Decoder-only架構(gòu)、SFT/RLHF/DPO訓(xùn)練范式、LoRA原理,一個知識點(diǎn)能追到數(shù)學(xué)原理層。比如你提到RoPE(旋轉(zhuǎn)位置編碼),面試官會一路追問到旋轉(zhuǎn)矩陣的推導(dǎo)過程。
三面是交叉面,聊工程系統(tǒng),DeepSpeed ZeRO的并行策略、DP和DDP的區(qū)別、多卡訓(xùn)練的硬件利用率估算 。
你仔細(xì)看字節(jié)的這些題目,會發(fā)現(xiàn)一個特點(diǎn):它們都是可以提前準(zhǔn)備的。
這些知識點(diǎn)是固定的,網(wǎng)上有標(biāo)準(zhǔn)答案,你花時間背了就能答出來。字節(jié)的三面交叉面問的工程系統(tǒng)問題,本質(zhì)上也是大模型領(lǐng)域的“高級八股”,刷過牛客面經(jīng)的人都清楚。
字節(jié)的題你提前三個月刷LeetCode、背面經(jīng),是有可能蒙混過關(guān)的,答案有標(biāo)準(zhǔn),刷多了總能碰到原題,書讀百遍其義自現(xiàn)。
但DeepSeek的題,你沒做過線上項(xiàng)目就是答不上來,你沒法提前準(zhǔn)備“你線上故障排查改了哪塊邏輯、效果提升了多少百分比”這種問題,因?yàn)槟鞘悄阕约旱挠H身經(jīng)歷,背不了別人的。
打個比方:字節(jié)像考駕照,科目一科目二科目三,每個環(huán)節(jié)都有標(biāo)準(zhǔn)流程,練夠了就能過;DeepSeek考的是你遇到加塞、爆胎、追尾,這種真實(shí)路況你怎么處理。
![]()
再說騰訊。
騰訊AI算法崗的流程也是筆試加三輪技術(shù)面加HR面,核心崗加總監(jiān)終面,最多五輪。但騰訊的風(fēng)格跟字節(jié)完全不同。
騰訊最大的特點(diǎn)是層級遞進(jìn)。
一面的面試官是同組同事,考的是模型理解力,比如BERT、LoRA、位置編碼這些大模型基礎(chǔ)八股,加一道簡單算法題。
二面的面試官是直屬主管,開始聊底層優(yōu)化和項(xiàng)目匹配,比如微調(diào)經(jīng)驗(yàn)、DeepSpeed、增量預(yù)訓(xùn)練、業(yè)務(wù)場景結(jié)合。
三面的面試官是隔級主管,考的是系統(tǒng)設(shè)計(jì)和潛力判斷。HR 面聊價值觀和職業(yè)動機(jī)。如果有總監(jiān)終面,那聊的是戰(zhàn)略思維和長期適配性 。
騰訊的面試官職級逐輪升高,考察維度從“能不能干活”逐步過渡到“有沒有潛力”。
代碼權(quán)重在三家里最低,高級崗的算法題難度和占比都明顯下降。
三家的招人哲學(xué)是不同的,各有各的好,不能簡單的用一句“你代碼查的少,所以你們發(fā)展的不好”來概括。但是,如果你享受編程和AI的整個過程,那DeepSeek確實(shí)是一個不錯的選擇。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.