去年秋天,工程我们部门招一个高级后端工程师。师招简历收了四百多份,工程面试了三十七个人,师招最后选中的工程那个,既不是师招名校毕业,也没在大厂待过。工程他做过的师招项目,名字听起来甚至有点土——给本地一家连锁火锅店做库存管理系统。工程
这事挺有意思。师招面试的工程时候,我问他为什么要做这个项目。师招他说,工程因为那家店的师招老板是他表哥,表哥抱怨每次盘点都要人工数冻货,工程太痛苦了。于是他花了两个周末,写了个简单的扫码入库程序。后来表哥又想要采购预测,他又加了点统计功能。再后来,隔壁烧烤店也来问能不能用,他就顺手改成了多租户版本。
我们需要的,恰好就是个能把复杂业务拆清楚、能自己找活儿干的人。技术栈倒还在其次。
但大部分简历不是这么写的。我见过太多千篇一律的模板:精通Java、熟悉Spring Boot、有微服务经验。问具体做过什么,就开始背项目流程,讲得跟产品说明书似的。再问遇到过什么难题,怎么解决的,就卡住了。有个候选人特别典型,简历上写着“主导了系统性能优化”,追问之下,原来就是把一个SQL查询加了个索引。加索引当然没错,但这算不上“主导”,顶多算“参与”。
我理解,写简历的人都想把自己包装得厉害点。可工程师这个岗位,骗不了人。代码跑不跑得通,系统稳不稳定,上线之后见真章。面试时候吹的牛,入职后第一个月就会现原形。
真正让我觉得靠谱的候选人,往往有些共同点。他们会主动说起自己犯过的错——比如把生产环境的数据表删了,或者上线前忘了备份配置。能讲清楚当时怎么慌张,怎么补救,怎么复盘,这种人才是真实做事的。相反,那些全程只讲成功案例的,我反而会多留个心眼。
还有一点,我特别看重动手能力。光会写代码不够,得会看日志、会查内存泄漏、会处理线上告警。有次面试,我问一个候选人:“如果半夜两点,线上服务突然CPU飙到100%,你怎么排查?”他愣了半天,说:“我会先重启试试。”重启当然也是一种办法,但我想听的是,他能不能想到先用top命令看看是哪个进程,再jstack看看线程状态,然后分析是不是有死循环或者GC问题。这不是背题,是实战经验。
其实招人就是在赌。赌这个人能不能在没人盯着的时候,自己把事做好;赌他遇到没见过的坑,会不会自己想办法爬出来。学历和证书只是入场券,真正决定能不能留下来的,是那股子解决问题的韧劲儿。
所以我现在面试,越来越喜欢问些看似无关的问题。比如:“你最近自己学了什么新东西?为什么学?”有人说在学Kubernetes,因为公司要用;有人说在看编译原理,纯粹觉得好玩。后者往往更让我感兴趣——那种发自内心的好奇,是装不出来的。
回到那个做火锅店系统的候选人。他入职三个月,就把我们一个老项目的部署流程理顺了,原来每次发版要折腾两个小时,现在十分钟搞定。他也没用什么高深技术,就是写了几个自动化脚本,把能省的事都省了。你看,工程师的价值,有时候不在于代码多漂亮,而在于能不能让事情变得简单。
这行当,终究是实干者的天下。