GinoGino

从面试官视角看校招:学校教育的缺失与面试准备建议

6 分钟阅读随想思考

在推特上看到宝玉老师探讨 我们的 CS 教育到底缺了什么? 的话题,刚好这周参与校招,面试了十几个硕士生,作为面试官,感触特别深,也分享一下我的看法。

从企业角度看,我们看重的核心经验,几乎都来自实习。这批面试者里只有一个没有实习经验的,但是科研能力特别强,在国家重点实验室,有几篇核心论文,有很强的学习和钻研能力,所以综合排名比较靠前。其他缺少实习经验的,我估计 HR 在筛选简历的时候可能就直接拒了。所以学校、专业、成绩顶多算个敲门砖,我们真正花时间细问的,全是实打实的工程问题:对业务的理解、框架和中间件的运用、异常处理,以及出了问题,你到底怎么定位和解决的?

当然,面试中也遇到了非常优秀的候选人。他们不光工程实践扎实,思考和表达也都很到位。

但这也恰恰暴露了更深的问题:这些优秀毕业生的突出能力,很大程度上得益于个人的自学、领悟和主动思考,学校教育在其中的贡献相对有限。

这就让「平庸」和「优秀」之间的差距变得特别大。

很多学生,你一看就知道他动手能力不差,确实干了活。可一让他总结项目亮点,就卡壳了,抓不住重点。你再一深挖,就发现他只是在完成任务,没有进一步的思考。他知道自己做了A、B、C,但对背后的「为什么」知之甚少:

  • 为什么要做这个需求?(对业务的理解)
  • 为什么选这个技术方案,而不是别的?(设计的权衡)
  • 你做的这个功能,在整个系统里处于什么位置?(全局观)
  • 万一线上出错了,你打算从哪几个方面下手排查?(问题定位能力)

这就暴露出一个培养上的脱节。现在的情况是:

  • 学校:教基础理论(科学)。
  • 实习:给工程实践(工程)。
  • 缺失的环:个人的思考、总结和表达能力。

很多学生只是在被动地完成实习,缺乏把做过转化为「学会」的能力,最终表达和总结出来的都是相对零散的知识点。当然也可以理解,大部分学生实习也就三四个月,中间还有很多业务、学习和培训等事务,真正投入开发也不会从很核心的需求入手,况且这些软技能的缺失在工作多年经验丰富的工程师上也很常见。

所以,我觉得现在的教育,除了要补上「工程实践」课,更要引导学生去重视这些「软技能」-- 也就是你如何从做过的事情里提炼思考,又如何清晰地把这些思考表达出来。

说了这么多问题,不如回到现实。作为即将求职的学生,既然我们短期内可能改变不了很多现状,那该怎么办?根据这次面试经历和自己的经验,整理了一些实用的建议,希望能对大家有所帮助。

  1. 思想上要重视面试,光想没用,得练。 别怕丢人,找同学、师兄师姐帮你搞几轮模拟面试。让他们对着你的简历使劲问,你练的就是怎么把话说清楚、说明白,顺便也提前排排雷。同时学会记录和总结之前面试的经历,总结薄弱的地方,重点改进。

  2. 准备一个结构化的自我介绍。 别从头到尾念简历,或者过于简单。一两句话讲完个人背景,就赶紧把你最牛的那个项目抛出来。你要主动引导面试官去聊你最熟的东西,把节奏带起来。

  3. 讲科研项目?请说人话。 如果你要讲的是科研项目,千万别掉书袋。对面的面试官大概率对你的项目和其中的理论知之甚少,尽量用大白话和实际的例子,把你要解决的问题、你的方案和创新点讲清楚。实在不知道怎么组织语言,可以把材料发给 AI,让它帮你生成几个通俗易懂的参考版本。

  4. 讲实习项目,要有一定的结构和技巧。 别东一榔头西一棒子,面试官听着累。可以试试这个思路:

  • 背景:「这项目是干嘛的...」
  • 问题:「我们当时要解决的问题是...」
  • 职责:「我主要负责哪块...」
  • 行动和结果:「我用了什么方法,最后效果怎么样。」

一条线下来,别人才听得懂。这些背景和问题,以及其中的思考和决策,可以多和 mentor 或者 leader 交流,尝试跳出仅仅实现一个功能的视角,了解更多的信息并把它们组织和表达出来。

  1. 把你的「王牌项目」吃透。 简历上肯定有个你最想聊的项目,对吧?这个项目你得下功夫。首先是要了解业务流程、技术链路,所采用的技术栈、框架和库、中间件、核心的代码实现,准备面试官可以感兴趣的问题。更进一步的是继续思考背后的「为什么」,比如当初为啥这么选型?和别的方案比,好处在哪,坏处在哪?碰到的一些挑战和问题背后的原因是什么,你怎么找到和解决的?这些有一定深度的问题会是拉开差距的地方。你要是自己也说不清,可以去问带你的 mentor 和其他同事,把这些思考挖出来。

  2. 个人项目,别玩玩而已。 我强烈建议去做点真正有意思、能解决实际问题的东西。别只是本地跑跑就完事了,花点钱买个域名和服务器,把它正儿八经部署到线上,让周围人能用起来,这个过程的收获可能远超想象。然后,你可以借助 AI 帮你梳理整个项目的设计、核心原理,带着问题去深入了解,这才能从「跑通 Demo」变成「真正搞懂」,作为面试官,会非常欣赏这些热情和解决问题的能力。

  3. 简历上写的每个字,你都得心里有底。 你写了 Redis,就要准备好被问缓存问题;写了数据库,就得懂点索引;写了 ElasticSearch,就得了解创建索引和查询的原理;写了智能体和 MCP,至少要能说清楚这些概念和原理。千万别给自己挖坑,被问住就尴尬了。

  4. 了解对方是干嘛的。 最后,花点时间研究下你面的岗位是干嘛的。是做通信的、金融的、互联网的还是 AI 的?业务特性是啥?了解对方在做什么,想一想自己的优势和他们的需求,是一个不错的加分项。