科技爱好者周刊(第 389 期):未来如何招聘程序员
ruanyf这里记录每周值得分享的科技内容,周五发布。
本杂志开源,欢迎投稿。另有《谁在招人》服务,发布程序员招聘信息。合作请邮件联系(yifeng.ruan@gmail.com)。
封面图
唐山河头老街景区的轨道车“大唐云车”。(via)
未来如何招聘程序员
前些天,讨论区有一个帖子,提出一个问题。
如果未来的代码都是 AI 写的,那么我们怎么招聘程序员呢?
程序员负责代码,但代码是 AI 写的,不是程序员写的,那么应该怎么面试他呢?
你仔细想想,这个问题比预想的难多了。
首先,考察他的代码能力不重要(代码不是他写的),更重要的是考察他会不会 AI。只要善于使用 AI,能够产出合格的代码,对公司来说就是合格的人选。
但是,什么样的面试问题,能够考察出一个人是否掌握 AI?下面是我想出的一些问题:
- 请将一个复杂的项目需求,转化成提示词,要求是清晰、逻辑性强、切中要害。
- 描述一个你认为需要使用 Skill 和 MCP 的场景,并阐述它们的工作原理和构建方法。
- 如何将一个大项目分解,设计出一个多 Agent 协同工作的机制。
- ……
这些问题能识别出 AI 编程高手吗?我完全没有把握。
其次,除了 AI,还要考察什么呢? 这也很不好想。
我应该还会问一些架构问题,你可以不写代码,但要懂怎么组织代码,架构出一个系统。但我也不确定这是必需的,因为 AI 生成的大型系统迟早变成一个黑箱,可能对于架构知识的要求也不是很高。
另外,我还要看看他以前的项目,如果以前他用 AI 做过类似的东西,那么应该问题不大。但这也不可靠,且不说完全类似的项目非常少,就看 AI 进化速度这么快,两年前的经验早不适用了吧。
总之我发现,很难确定什么面试问题是一定有效的,能够可信地筛选出合格的应聘者。AI 颠覆了软件开发,也连带颠覆了程序员面试。大家有好的面试问题吗?
有一点是确定的,面试各种编程细节意义不大了,因为你不需要记住语法细节了,直接问大模型就行。
科技动态
1、访达小子
苹果公司最近发布了 Macbook Neo,有人注意到,官方的 Tiktok 宣传海报里面出现了一个全新的吉祥物(下图)。
上面海报的左上角有一个玩偶,以前没见过。
这个玩偶明显来自 Mac 电脑的访达工具(Finder),所以被称为“访达小子”(Lil Finder Guy)。
几天后,苹果公司又在一场直播里面,使用了这个形象。
人们纷纷猜测,这到底是偶然的行为,还是苹果公司真的会推出它作为吉祥物?
热心的网友让 AI 绘制了“访达小子”的完整形象。
看上去很可爱,就跟 Labubu 似的,有可能大受欢迎。
2、红外线编码
英国科学家发明了一种新的通信方式,通过热辐射二极管,将数字信号以热量形式传递。
肉眼看不见这种信号(因为它是红外线),也检测不到无线电波,但是它的热量以编码方式散发,在红外线热成像仪上能识别(上图)。
因此,这种方法接收信号需要热成像仪,再传入电脑的解码器。这可能对某些工业和军事场景很有用。
3、机柜种植
家里有多余的服务器机柜,怎么利用起来?
一个国外程序员想到机柜里面有电源,拉线和搁板都很方便,可以用来水培种植。
他买了一些 LED 灯带,用来模拟日照,每一层还安装了一个泵,用来自动进排水。
如果你想在家里种一些暖房植物,或者需要长时间光照的植物,服务器机柜确实是一个很好的方案。
文章
1、我放弃了 Elasticsearch,转而使用 Meilisearch(英文)
Meilisearch 是一种开源的搜索软件,作者介绍怎么用它替代 Elasticsearch。
2、2016 年,我做过一次 AI 写代码创业(中文)
作者徐宥(Eric Xu)回忆他在2016年的 AI 创业,当时他想训练一个大模型,需要25万美元,但是找不到投资人。(@gengxiuli 投稿)
3、信息过载时代,我的漏斗式阅读工作流(中文)
每天有太多东西值得看,作者介绍他的信息处理工作流,通过 AI 过滤出值得读的内容。(@shawnxie94 投稿)
4、编译器的前端与后端(英文)
一篇科普文章,介绍编译器(比如 LLVM)的前端和后端的概念。
5、CSS 的 lh 单位(英文)
CSS 有一个字体大小属性lh,表示行高。
6、寻觅杜鹃花之王(中文)
大树杜鹃是最高大的杜鹃,是一颗会开花的大树(上图),1919年由英国人在云南发现。
后来,这个英国人死在云南,就无人知道哪里有这种杜鹃了,直到1982年才重新在高黎贡山找到。本文讲述这种植物的故事。
工具
1、APTUI
一个 Linux 的终端应用,用于充当 Debian/Ubuntu 安装管理器,管理 APT 软件包。
如果你想尝试 WordPress,但没有服务器,可以使用官方新推出的这个服务,打开上面网址就可以了。
它把所有 PHP 脚本编译成 JS,在本地运行,不需要服务器,而且数据都在你的浏览器,下次打开这个网址,网站数据还在,参见介绍文章。
一个跨平台的图像编辑器,特点就是非常轻量级,可以在浏览器运行,也可以编译成二进制文件。
一个 Mac 抠图软件,大小只有 8MB。(@pangxiaobin 投稿)
macOS 菜单栏久坐提醒工具。(@lifedever 投稿)
一个跨平台的阅读软件,可以悬浮在桌面上,支持单行模式,适合想在工作流里“偷偷读书”的人。(@yaoyao2mm 投稿)
7、锤子便签
开源的网页版锤子便签,可以作为 Skill 调用。(@zhaoolee 投稿)
开源的微信公众号转 RSS 工具。(@tmwgsicp 投稿)
一个很有意思的 Chrome 插件,根据语速调节视频播放速度。如果剧中人说话慢,视频就快速播放,说话快,就慢速播放。
AI 相关
1、VibeGo
Vibe Coding 的开源 Web IDE,支持 Claude Code、Gemini CLI、CodeX、OpenCode 等。(@xxnuo 投稿)
一个开源应用,使用字节 seedream 图像模型,复刻小红书的图文笔记,从一篇可以衍生出另一篇。(@zhanchey 投稿)
3、AICheck
一个 Rust 语言编写的命令行工具,离线检测图片、视频、音频和文档是否由 AI 生成。(@MatrixA 投稿)
4、AionUi
开源的 Cowork 与 OpenClaw 的替代品,自动化各种电脑操作。(@cdxiaodong 投稿)
5、Lumo
一个 Claude Code 的本地桌面工作台,查看成本、Token、会话和编码时段数据。(@zhnd 投稿)
开源的 AI 动漫视频生成系统,只需输入文字剧本,即可自动完成角色提取、分镜设计、关键帧生成、视频合成的全流程。(@twwch 投稿)
资源
网页检测你的机器,能够运行哪些本地的 AI 模型。
2、AI 是怎么回事(中文)
面向普通读者的通俗 AI 原理教程。(@wmyskxz 投稿)
3、TypeScript 数据结构与算法(Algorithms with TypeScript)
免费阅读的英文电子书,使用 TypeScript 语言介绍数据结构和算法。
4、频道冲浪者(Channel Surfer)
这个网页把 Youtube 改成传统的电视频道,每个频道都有节目表,可以切换频道。如果你不知道用 Youtube 看什么,就可以看这个网站。
图片
1、巧妙的古建筑
因为缺乏机械和动力,古代建筑物往往包含了很多巧思。
(1)19世纪的英国麦克尔斯菲尔德运河,由于没有水位落差,需要马拉着船前进。
有时,马的牵引道从河的一边转到了另一边,马这时就需要过河。
为了不解开牵引绳,马就能过河,工程师就设计了“蛇桥”,马可以直接走上去,中间还有让牵引绳通过的孔。
(2)法国南部的巴尔贝加尔水磨坊,建于公元2世纪,现在只剩下了遗址。
这个磨坊的位置在山坡上,连续建了16个相互连接的水车,充分利用了水能,每天能够生产25吨面粉,被认为是欧洲第一个大规模工业生产的磨坊。
(3)伊朗纳什提凡的古代风车,建在连片的屋顶上,一根木轴安装了由粘土、稻草和木材做成的立轴式风帆,强风会带动木轴,转动下面屋子里的磨盘,来磨碎谷物。
(4)中国西安的秦代上林苑遗址,发现了战国时期的陶瓷水管,现保存于西安博物院。
文摘
1、避免使用定制框架
很多小团队在工作中,往往会发明自己的“定制框架”。
他们原来使用的是通用框架,但有不满意之处,于是决定在通用框架基础上定制自己的框架。
这种“定制框架”有一些共同特点:
(1)由小团队创建,旨在解决他们的痛点;
(2)底层是其他更通用的技术栈或框架;
(3)引入原有技术栈不存在的新概念和术语;
(4)创建者声称这个定制框架“神奇地”解决了许多问题,并推广更多人使用它。
我的个人经验是,“定制框架”非常难用,引入了许多新概念,意图掩盖它带来的更多复杂性。
我建议,大家避免使用“定制框架”,原因有下面这些:
(1)定制框架常常声称,它们能消除或隐藏原始框架“不必要的复杂性”,但实际上做不到。即使定制框架能很好地处理80%的用例,但是因为引入了新的语法,剩余20%的用例就不如原始框架的灵活性和功能性。
(2)定制框架不易改动。它仅对开发团队的用例建模,以解决他们的特定问题,未来需求变化时,往往跟不上。另外,定制框架通常改动了原始框架的实现细节,而原始框架将来随时可能变动,你修改的细节越多,就越难跟上原始框架的变动。
(3)定制框架反映了开发团队的心理模型,这些团队专注于自己的问题,往往有很强的个人意见。这本身是好事,但也使得定制框架不适合其他人的心理模型。
(4)定制框架往往导致技术栈碎片化。你改动的只是跟你相关的一部分,其他部分保持不变。随着新的层不断增加,框架变得越来越难整体迁移,必须不断改动你原来没改的部分。
(5)定制框架缺乏维护。通用技术往往有一个专门团队或公司来维护,但定制框架通常由一两个创建者拥有。一旦他们离开团队或公司,就很难找到接班人。定制框架很大可能会随着原作者离开而消失,除非在此之前获得了大量采用,才有人愿意接手,而这种情况很少发生。
我不是说,你不要开发自己的框架,而是建议最好遵循三个原则:(1)新概念引入越少越好,(2)优先创建库,而不是框架。(3)不要做现有框架的包装器,而要从零开始构建。
言论
1、
我想要的网络世界,是一个万物皆可塑的世界,让你不由自主地成为创造者。
2、
AI 让软件的成本从代码转移到测试和文档,一套好的测试套件的价值可能比编写代码本身更高。
3、
编程的核心在于抽象,即用一种远离底层技术的高级思维方式来思考代码。
4、
领导力就是让别人去做你想让他们做的事,而且是心甘情愿的。
-- 艾森豪威尔,美国前总统
往年回顾
面试的 AI 作弊----用数字人去面试(#342)
所有代码都是技术债(#292)
一次尴尬的服务器被黑(#242)
最大的机会来自新技术(#192)
(完)