面试官说:来,先写个Hello World。然后呢?

2026年7月25日 下午9:34

文/一个面过别人也被别人面过一百多次的老码农

金三银四刚过,后台有读者私信我,说他上周去面试,技术面第一关,面试官让他手写一个Hello World。

他说他当时脑子嗡了一下。准备了那么多算法题、设计模式、项目复盘,结果第一道题是这个。他问我:”面试官是不是在逗我?是不是觉得我简历注水了?”

我回了他一句:”你先别慌。我面人的时候,也经常用这招。”

那个让无数人翻车的”简单题”

如果面试官让你写一个Hello World,你是不是觉得稳了?然后刷刷刷写了个System.out.println(“Hello, World!”);,心想这分我拿定了。

太天真了。

我就见过有人写print(“Hello, World!”),面试官说”这个是Python,你简历上写的是精通Java”,那人说”哦我最近写Python比较多搞混了”。面试官点点头,心里打了个问号。

还见过有人打开白板,刷刷刷写了一整页,里面有main方法、有类定义、有包声明,唯独少了那个public static void里的static。面试官说”你这个能编译吗”,那人看了三分钟,没看出来。气氛一下子冷了下去。

更离谱的是有人连拼写都错了,World写成了Word,他信誓旦旦地跟面试官说”输出Hello Word也是对的吧,语言嘛灵活一点”。面试官当场就没绷住。

所以你看,一个Hello World,能筛掉多少”熟练工”。

到底在面什么?其实面的是三件事

我招人的时候如果让人写Hello World,我想看的绝对不是他会不会写这行代码——这东西但凡摸过键盘的都该会。

我想看三件事。

第一件事,看他写代码之前的思考。有人抓起笔就写,写完之后也懒得看一眼。有人会先问”用什么语言””是控制台输出还是别的形式””有没有特殊要求”。问问题的人,通常在工作中也会先想清楚需求再动手。不开口就干的人,往往写完了发现自己理解错了方向,返工返得欲哭无泪。

第二件事,看他出错了怎么应对。如果我说”这个代码跑不起来,你检查一下”,有人会从头到尾逐行看,边看边小声念出来,三秒之内就能抓住问题。有人会茫然地盯着代码翻来覆去地看同一个地方,明明错误在第一行,他把第八行的花括号改了五遍。前一种人,上线出bug也能自己快速定位。后一种人,出了问题只会喊”有人吗我的环境是不是坏了”。

第三件事,看他对”Hello World”这个起点有没有敬意。把代码写得工工整整的人,通常写其他代码也规整。把一行Hello World缩进得乱七八糟的人,你给他一千行代码,他能把整个项目变成意大利面条。有些人写完了还顺手加了注释,哪怕只是// entry point这种废话,都说明他有”给别人看的”意识。这种人合群,好带,能让团队省心。

那些让我印象深刻的Hello World

面过这么多场,有几个人的Hello World我到现在都记得。

一个是应届生,女生,挺文静的。她写完之后很认真地看了两遍,然后把System.out.println(“Hello, World!”);改成了System.out.println(“Hello, 面试官, World!”);然后小声说:”我加了个致敬,希望您不要介意。”那天的面试气氛一下子轻松了很多。后来她入职了,确实是个很会跟人打交道的程序员,产品和运营都喜欢跟她对接需求。

另一个是转行的,以前做建筑设计的。他写完之后主动跟我解释:”我这个类名用了Pascal命名法,方法用了camelCase,常量全部大写。因为我觉得虽然只有一行代码,但命名规范要从第一行就开始养成习惯。”说实话那天的面试他技术答得不算特别好,但最后我们团队要了他。因为能从第一行代码就开始讲究规范的人,教什么东西都学得快。

还有一个大叔,看起来比我大七八岁。他写完Hello World之后,在下面多加了一行注释:// 距离上一次写Hello World已经过去11年了,我又回来了。他之前做了十多年开发,后来转行做销售,前两年大环境不好想回来写代码。我看到那行注释心里挺不是滋味的。后来我把他推荐给了另一个组,现在干得不错。

如果把面试看作一个”Hello World”

其实整个面试过程,本身就是一个放大版的Hello World。

你第一次接触这个公司,第一次跟面试官说话,第一次在白板上写代码——这一整套”初次接触”的动作,本质上就是你在向这个公司说”你好”。而公司也通过这场面试,在向你回应”你好,我们认识你了”。

如果你把整场面试都当成一个Hello World来对待,你会做哪些事情?

你会保持整洁——简历干净,穿着得体,说话有条理。你会确认环境——提前准备好电脑、网络、摄像头,提前了解公司的业务方向。你会测试”运行路径”——提前模拟一遍可能会被问到的问题,确保自己能在压力下正常输出。

这不就是写Hello World之前要做的那几件事吗?检查环境、确认语法、想好输出。

很多人面试的时候紧张得不行,觉得自己在被”考察”。但换个角度想,你和一个陌生人通过一场对话来确认”我们未来几年能不能在一起工作”,这本身就是一种双向问候。你在跟他说你好,他也在跟你说你好。都是第一次,谁比谁高贵呢。

那句问候在面试之外的意义

上个月那个给我发私信的读者后来又来找我了,说他拿到了offer,入职第一周,leader给他分配了第一个正式任务——改一个老项目的配置,然后把服务跑起来。他照着文档一步步做,最后在日志里看到了那行启动成功的打印。

那行日志打印的是他那个服务的名称和版本号,跟Hello World没有半毛钱关系。但他跟我说,他盯着那行日志看了好久,觉得它跟Hello World散发着同样的气息。

“那种感觉就是——行了,通了,我可以开始干活了。”

我回他:那就对了。以后你还会看到很多类似的”行话”,它们表面上不叫Hello World,但它们在系统里的作用和Hello World一模一样。它们告诉你”环境准备好了””配置加载完了””依赖就绪了””我可以接收请求了”。

每一次这种”通了”的信号,都在重复着那个五十年前的老故事——一个人,一行代码,一声问候,然后整个世界亮了起来。

所以你问我面试的时候要不要认真写那个Hello World?我的回答是:要,而且要比你写任何一个复杂算法都认真。

因为它不仅仅是代码。它是你推开一扇新门时,嘴里说的第一句话。那句话的分量,远远大于它表面的那十几个字符。