科技愛好者週刊#389:未來如何招聘程序員

阮一峯的網絡日誌2026年3月20日

這裏記錄每週值得分享的科技內容,週五發佈。

本雜誌 開源 [1] ,歡迎 投稿 [2] 。另有 《誰在招人》 [3] 服務,發佈程序員招聘信息。合作請 郵件聯繫 [4] [email protected] [5] )。

封面圖

唐山河頭老街景區的軌道車“大唐雲車”。( via [6]

未來如何招聘程序員

前些天,討論區有一個 帖子 [7] ,提出一個問題。

如果未來的代碼都是 AI 寫的,那麼我們 怎麼招聘程序員 [8] 呢?

程序員負責代碼,但代碼是 AI 寫的,不是程序員寫的,那麼應該怎麼面試他呢?

你仔細想想,這個問題比預想的難多了。

首先,考察他的代碼能力不重要(代碼不是他寫的),更重要的是考察他會不會 AI 。只要善於使用 AI,能夠產出合格的代碼,對公司來說就是合格的人選。

但是,什麼樣的面試問題,能夠考察出一個人是否掌握 AI?下面是我想出的一些問題:

請將一個複雜的項目需求,轉化成提示詞,要求是清晰、邏輯性強、切中要害。 描述一個你認爲需要使用 Skill 和 MCP 的場景,並闡述它們的工作原理和構建方法。 如何將一個大項目分解,設計出一個多 Agent 協同工作的機制。 ……

這些問題能識別出 AI 編程高手嗎?我完全沒有把握。

其次,除了 AI,還要考察什麼呢? 這也很不好想。

我應該還會問一些架構問題,你可以不寫代碼,但要懂怎麼組織代碼,架構出一個系統。但我也不確定這是必需的,因爲 AI 生成的大型系統遲早變成一個黑箱,可能對於架構知識的要求也不是很高。

另外,我還要看看他以前的項目 ,如果以前他用 AI 做過類似的東西,那麼應該問題不大。但這也不可靠,且不說完全類似的項目非常少,就看 AI 進化速度這麼快,兩年前的經驗早不適用了吧。

總之我發現,很難確定什麼面試問題是一定有效的,能夠可信地篩選出合格的應聘者。AI 顛覆了軟件開發,也連帶顛覆了程序員面試。大家有好的面試問題嗎?

有一點是確定的, 面試各種編程細節意義不大了 ,因爲你不需要記住語法細節了,直接問大模型就行。

科技動態

1、 訪達小子 [9]

蘋果公司最近發佈了 Macbook Neo,有人注意到,官方的 Tiktok 宣傳海報裏面出現了一個全新的吉祥物(下圖)。

上面海報的左上角有一個玩偶,以前沒見過。

這個玩偶明顯來自 Mac 電腦的訪達工具(Finder),所以被稱爲“訪達小子”(Lil Finder Guy)。

幾天後,蘋果公司又在一場直播裏面,使用了這個形象。

人們紛紛猜測,這到底是偶然的行爲,還是蘋果公司真的會推出它作爲吉祥物?

熱心的網友讓 AI 繪製了“訪達小子”的完整形象。

看上去很可愛,就跟 Labubu 似的,有可能大受歡迎。


2、 紅外線編碼 [10]

英國科學家發明了一種新的通信方式,通過熱輻射二極管,將數字信號以熱量形式傳遞。

肉眼看不見這種信號(因爲它是紅外線),也檢測不到無線電波,但是它的熱量以編碼方式散發,在紅外線熱成像儀上能識別(上圖)。

因此,這種方法接收信號需要熱成像儀,再傳入電腦的解碼器。這可能對某些工業和軍事場景很有用。


3、 機櫃種植 [11]

家裏有多餘的服務器機櫃,怎麼利用起來?

一個國外程序員想到機櫃裏面有電源,拉線和擱板都很方便,可以用來水培種植。

他買了一些 LED 燈帶,用來模擬日照,每一層還安裝了一個泵,用來自動進排水。

如果你想在家裏種一些暖房植物,或者需要長時間光照的植物,服務器機櫃確實是一個很好的方案。

文章

1、 我放棄了 Elasticsearch,轉而使用 Meilisearch [12] (英文)

Meilisearch [13] 是一種開源的搜索軟件,作者介紹怎麼用它替代 Elasticsearch。

2、 2016 年,我做過一次 AI 寫代碼創業 [14] (中文)

作者徐宥(Eric Xu)回憶他在2016年的 AI 創業,當時他想訓練一個大模型,需要25萬美元,但是找不到投資人。( @gengxiuli [15] 投稿)

3、 信息過載時代,我的漏斗式閱讀工作流 [16] (中文)

每天有太多東西值得看,作者介紹他的信息處理工作流,通過 AI 過濾出值得讀的內容。( @shawnxie94 [17] 投稿)

4、 編譯器的前端與後端 [18] (英文)

一篇科普文章,介紹編譯器(比如 LLVM)的前端和後端的概念。

5、 CSS 的 lh 單位 [19] (英文)

CSS 有一個字體大小屬性 lh ,表示行高。

6、 尋覓杜鵑花之王 [20] (中文)

大樹杜鵑是最高大的杜鵑,是一顆會開花的大樹(上圖),1919年由英國人在雲南發現。

後來,這個英國人死在雲南,就無人知道哪裏有這種杜鵑了,直到1982年才重新在高黎貢山找到。本文講述這種植物的故事。

工具

1、 APTUI [21]

一個 Linux 的終端應用,用於充當 Debian/Ubuntu 安裝管理器,管理 APT 軟件包。

2、 my.WordPress.net [22]

如果你想嘗試 WordPress,但沒有服務器,可以使用官方新推出的這個服務,打開上面網址就可以了。

它把所有 PHP 腳本編譯成 JS,在本地運行,不需要服務器,而且數據都在你的瀏覽器,下次打開這個網址,網站數據還在,參見 介紹文章 [23]

3、 GrobPaint [24]

一個跨平臺的圖像編輯器,特點就是非常輕量級,可以在瀏覽器運行,也可以編譯成二進制文件。

4、 Apple Matting [25]

一個 Mac 摳圖軟件,大小隻有 8MB。( @pangxiaobin [26] 投稿)

5、 HealthTick [27]

macOS 菜單欄久坐提醒工具。( @lifedever [28] 投稿)

6、 CheatReader [29]

一個跨平臺的閱讀軟件,可以懸浮在桌面上,支持單行模式,適合想在工作流裏“偷偷讀書”的人。( @yaoyao2mm [30] 投稿)

7、 錘子便籤 [31]

開源的網頁版錘子便籤,可以作爲 Skill 調用。( @zhaoolee [32] 投稿)

8、 WeChat Download API [33]

開源的微信公衆號轉 RSS 工具。( @tmwgsicp [34] 投稿)

9、 Speech Speed [35]

一個很有意思的 Chrome 插件,根據語速調節視頻播放速度。如果劇中人說話慢,視頻就快速播放,說話快,就慢速播放。

AI 相關

1、 VibeGo [36]

Vibe Coding 的開源 Web IDE,支持 Claude Code、Gemini CLI、CodeX、OpenCode 等。( @xxnuo [37] 投稿)

2、 Mimic Them [38]

一個開源應用,使用字節 seedream 圖像模型,復刻小紅書的圖文筆記,從一篇可以衍生出另一篇。( @zhanchey [39] 投稿)

3、 AICheck [40]

一個 Rust 語言編寫的命令行工具,離線檢測圖片、視頻、音頻和文檔是否由 AI 生成。( @MatrixA [41] 投稿)

4、 AionUi [42]

開源的 Cowork 與 OpenClaw 的替代品,自動化各種電腦操作。( @cdxiaodong [43] 投稿)

5、 Lumo [44]

一個 Claude Code 的本地桌面工作臺,查看成本、Token、會話和編碼時段數據。( @zhnd [45] 投稿)

6、 AIComicBuilder [46]

開源的 AI 動漫視頻生成系統,只需輸入文字劇本,即可自動完成角色提取、分鏡設計、關鍵幀生成、視頻合成的全流程。( @twwch [47] 投稿)

資源

1、 canirun.ai [48]

網頁檢測你的機器,能夠運行哪些本地的 AI 模型。

2、 AI 是怎麼回事 [49] (中文)

面向普通讀者的通俗 AI 原理教程。( @wmyskxz [50] 投稿)

3、 TypeScript 數據結構與算法 [51] (Algorithms with TypeScript)

免費閱讀的英文電子書,使用 TypeScript 語言介紹數據結構和算法。

4、 頻道衝浪者 [52] (Channel Surfer)

這個網頁把 Youtube 改成傳統的電視頻道,每個頻道都有節目表,可以切換頻道。如果你不知道用 Youtube 看什麼,就可以看這個網站。

圖片

1、 巧妙的古建築 [53]

因爲缺乏機械和動力,古代建築物往往包含了很多巧思。

(1)19世紀的英國麥克爾斯菲爾德運河,由於沒有水位落差,需要馬拉着船前進。

有時,馬的牽引道從河的一邊轉到了另一邊,馬這時就需要過河。

爲了不解開牽引繩,馬就能過河,工程師就設計了“蛇橋”,馬可以直接走上去,中間還有讓牽引繩通過的孔。

(2)法國南部的巴爾貝加爾水磨坊,建於公元2世紀,現在只剩下了遺址。

這個磨坊的位置在山坡上,連續建了16個相互連接的水車,充分利用了水能,每天能夠生產25噸麪粉,被認爲是歐洲第一個大規模工業生產的磨坊。

(3)伊朗納什提凡的古代風車,建在連片的屋頂上,一根木軸安裝了由粘土、稻草和木材做成的立軸式風帆,強風會帶動木軸,轉動下面屋子裏的磨盤,來磨碎穀物。

(4)中國西安的秦代上林苑遺址,發現了戰國時期的陶瓷水管,現保存於西安博物院。

文摘

1、 避免使用定製框架 [54]

很多小團隊在工作中,往往會發明自己的“定製框架”。

他們原來使用的是通用框架,但有不滿意之處,於是決定在通用框架基礎上定製自己的框架。

這種“定製框架”有一些共同特點:

(1)由小團隊創建,旨在解決他們的痛點;

(2)底層是其他更通用的技術棧或框架;

(3)引入原有技術棧不存在的新概念和術語;

(4)創建者聲稱這個定製框架“神奇地”解決了許多問題,並推廣更多人使用它。

我的個人經驗是,“定製框架”非常難用,引入了許多新概念,意圖掩蓋它帶來的更多複雜性。

我建議,大家避免使用“定製框架”,原因有下面這些:

(1)定製框架常常聲稱,它們能消除或隱藏原始框架“不必要的複雜性”,但實際上做不到。即使定製框架能很好地處理80%的用例,但是因爲引入了新的語法,剩餘20%的用例就不如原始框架的靈活性和功能性。

(2)定製框架不易改動。它僅對開發團隊的用例建模,以解決他們的特定問題,未來需求變化時,往往跟不上。另外,定製框架通常改動了原始框架的實現細節,而原始框架將來隨時可能變動,你修改的細節越多,就越難跟上原始框架的變動。

(3)定製框架反映了開發團隊的心理模型,這些團隊專注於自己的問題,往往有很強的個人意見。這本身是好事,但也使得定製框架不適合其他人的心理模型。

(4)定製框架往往導致技術棧碎片化。你改動的只是跟你相關的一部分,其他部分保持不變。隨着新的層不斷增加,框架變得越來越難整體遷移,必須不斷改動你原來沒改的部分。

(5)定製框架缺乏維護。通用技術往往有一個專門團隊或公司來維護,但定製框架通常由一兩個創建者擁有。一旦他們離開團隊或公司,就很難找到接班人。定製框架很大可能會隨着原作者離開而消失,除非在此之前獲得了大量採用,纔有人願意接手,而這種情況很少發生。

我不是說,你不要開發自己的框架,而是建議最好遵循三個原則:(1)新概念引入越少越好,(2)優先創建庫,而不是框架。(3)不要做現有框架的包裝器,而要從零開始構建。

言論

1、

我想要的網絡世界,是一個萬物皆可塑的世界,讓你不由自主地成爲創造者。

-- David Miranda [55]


2、

AI 讓軟件的成本從代碼轉移到測試和文檔,一套好的測試套件的價值可能比編寫代碼本身更高。

-- lucumr.pocoo.org [56]


3、

編程的核心在於抽象,即用一種遠離底層技術的高級思維方式來思考代碼。

-- 《生活在“平面國”的程序員》 [57]


4、

領導力就是讓別人去做你想讓他們做的事,而且是心甘情願的。

-- 艾森豪威爾 [58] ,美國前總統

往年回顧

面試的 AI 作弊----用數字人去面試 [59] (#342)

所有代碼都是技術債 [60] #292

一次尷尬的服務器被黑 [61] #242

最大的機會來自新技術 [62] #192

(完)

References

[1] 開源: https://github.com/ruanyf/weekly
[2] 投稿: https://github.com/ruanyf/weekly/issues
[3] 《誰在招人》: https://github.com/ruanyf/weekly/issues/9088
[4] 郵件聯繫: mailto:[email protected]
[5] [email protected]: mailto:[email protected]
[6] via: https://view.inews.qq.com/k/20260204A01P0P00
[7] 帖子: https://github.com/ruanyf/weekly/issues/9238
[8] 怎麼招聘程序員: https://github.com/vorojar/ai-native-hiring-guide
[9] 訪達小子: https://basicappleguy.com/basicappleblog/lil-finder-guy
[10] 紅外線編碼: https://www.unsw.edu.au/newsroom/news/2026/03/New-negative-light-technology-hides-data-transfers-in-plain-sight
[11] 機櫃種植: https://sa.lj.am/rack-mount-hydroponics/
[12] 我放棄了 Elasticsearch,轉而使用 Meilisearch: https://www.anisafifi.com/en/blog/i-ditched-elasticsearch-for-meilisearch-heres-what-nobody-tells-you/
[13] Meilisearch: https://github.com/meilisearch/meilisearch
[14] 2016 年,我做過一次 AI 寫代碼創業: https://blog.youxu.info/2026/01/14/ai-codes-retrospective/
[15] @gengxiuli: https://github.com/ruanyf/weekly/issues/9296
[16] 信息過載時代,我的漏斗式閱讀工作流: https://shawnxie.top/blogs/tools/read-flow-2026.html
[17] @shawnxie94: https://github.com/ruanyf/weekly/issues/9282
[18] 編譯器的前端與後端: https://medium.com/packt-hub/the-world-of-compiler-backends-9b27a3e37866
[19] CSS 的 lh 單位: https://webkit.org/blog/16831/line-height-units/
[20] 尋覓杜鵑花之王: https://blog.sciencenet.cn/home.php?mod=space&uid=52727&do=blog&id=1525508
[21] APTUI: https://github.com/mexirica/aptui
[22] my.WordPress.net: https://my.wordpress.net/
[23] 介紹文章: https://wordpress.org/news/2026/03/announcing-my-wordpress/
[24] GrobPaint: https://github.com/groverburger/grobpaint
[25] Apple Matting: https://matting.lingxiangtools.top
[26] @pangxiaobin: https://github.com/ruanyf/weekly/issues/9241
[27] HealthTick: https://github.com/lifedever/health-tick-release
[28] @lifedever: https://github.com/ruanyf/weekly/issues/9242
[29] CheatReader: https://github.com/yaoyao2mm/cheatreader
[30] @yaoyao2mm: https://github.com/ruanyf/weekly/issues/9247
[31] 錘子便籤: https://github.com/zhaoolee/notes
[32] @zhaoolee: https://github.com/ruanyf/weekly/issues/9274
[33] WeChat Download API: https://github.com/tmwgsicp/wechat-download-api
[34] @tmwgsicp: https://github.com/ruanyf/weekly/issues/9295
[35] Speech Speed: https://github.com/ywong137/speech-speed
[36] VibeGo: https://github.com/xxnuo/VibeGo
[37] @xxnuo: https://github.com/ruanyf/weekly/issues/9281
[38] Mimic Them: https://github.com/zhanchey/MimicThem
[39] @zhanchey: https://github.com/ruanyf/weekly/issues/9215
[40] AICheck: https://github.com/MatrixA/aicheck
[41] @MatrixA: https://github.com/ruanyf/weekly/issues/9219
[42] AionUi: https://github.com/iOfficeAI/AionUi
[43] @cdxiaodong: https://github.com/ruanyf/weekly/issues/9236
[44] Lumo: https://github.com/zhnd/lumo
[45] @zhnd: https://github.com/ruanyf/weekly/issues/9239
[46] AIComicBuilder: https://github.com/twwch/AIComicBuilder
[47] @twwch: https://github.com/ruanyf/weekly/issues/9275
[48] canirun.ai: https://www.canirun.ai/
[49] AI 是怎麼回事: https://wmyskxz.cn/wiki/whats_ai/
[50] @wmyskxz: https://github.com/ruanyf/weekly/issues/9218
[51] TypeScript 數據結構與算法: https://amoilanen.github.io/Algorithms-with-Typescript/preface.html
[52] 頻道衝浪者: https://channelsurfer.tv
[53] 巧妙的古建築: https://rarehistoricalphotos.com/engineering-methods-from-the-past/
[54] 避免使用定製框架: https://laike9m.com/blog/avoid-mini-frameworks,171/
[55] David Miranda: https://plumbing-of-everyday-magic.hyperclay.com/
[56] lucumr.pocoo.org: https://lucumr.pocoo.org/2026/1/14/minijinja-go-port/
[57] 《生活在“平面國”的程序員》: https://blog.redplanetlabs.com/2025/11/24/the-programmers-who-live-in-flatland/
[58] 艾森豪威爾: https://hebfdn.org/portfolio/eisenhower-on-leadership/
[59] 面試的 AI 作弊----用數字人去面試: https://www.ruanyifeng.com/blog/2025/03/weekly-issue-342.html
[60] 所有代碼都是技術債: https://www.ruanyifeng.com/blog/2024/03/weekly-issue-292.html
[61] 一次尷尬的服務器被黑: https://www.ruanyifeng.com/blog/2023/02/weekly-issue-242.html
[62] 最大的機會來自新技術: https://www.ruanyifeng.com/blog/2022/01/weekly-issue-192.html


科技愛好者週刊#389:未來如何招聘程序員 - 今日精華