25年我拒掉一个在GitHub上有三千多Star开源项目的候选人。是不是不可思议?——技术这么强的人怎么会挂?
我在这个行业十几年了,面试过的人没有一千也有八百。我可以非常负责任地告诉你:
写代码厉害和面试厉害,完全是两个维度的技能树。
很多人有个误区:面试就是考试,分数高了就能过。其实大错特错。
我们在招人时,本质上是在找一个“以后坐在我隔壁工位不会让我觉得难受,并且能帮我分担KPI”的伙伴。
那个被我拒掉的大神,C++底层写得确实漂亮,内存管理精细得像个艺术品。但当我问及十亿级数据量的架构设计时,他说:“给我时间,我能重写一套更牛逼的底层库。”
兄弟,我要的是方案和权衡,不是让你再造一个轮子。
这就是工程思维和做题思维的割裂。很多极客享受与机器的确定性对话,但职场需要的是对不确定性的把控能力。
最近我常问的一个问题:“千亿参数大模型显存爆了,除了加卡,你在算法和工程层面有哪些优化手段?”
我期待的答案是:从Gradient Checkpointing(计算换显存)、ZeRO三阶段优化,到Offloading技术。这需要的是原理理解与实战经验的结合。
很多技术强人擅长“实现”,却在“表达”和“抽象”上栽跟头。
让我想起自己带过的一个应届生,他的秋招经历很有代表性:
从最初的迷茫,到接连被否定跌入低谷,然后慢慢调整心态——有缺憾才能有进步。正视自己的不足,静下心来提高,勇敢尝试各种面试机会。因上努力,果上随缘,慢慢看到改变,收获肯定,重拾信心。 校招像一个登山的过程,要一步一个脚印。不能因为某些失败就半途而废,行百里者半九十。念念不忘,必有回响,只要一路坚持下来,就会有所收获。 据我身边所见,大部分坚持到最后的同学,都拿到了满意的offer。
这段话让我深有感触。校招确实如此——那些从七八月份就开始坚持刷题、不断面试的同学,最终都收获了不错的成果。
现在大多数面试都需要手写代码,这关逃不掉。建议基础不太好的同学至少提前半年开始刷题。
LeetCode刷200道左右,前100题尽量刷两遍,做到大部分能独立写出bug-free的代码。现场面试时往往是手写代码,所以也要练习在纸上写代码的感觉。
但刷题只是基础。我见过太多能刷300道题却无法解决实际工程问题的候选人。
不要只停留在“完成任务”的层面。多关注框架、架构、优化方面的思考。
比如一个看似简单的数据清洗任务,可以包装成:“面对异构数据源和长尾分布的挑战,我设计了一套基于规则和语义匹配的自动化清洗管道,并引入Focal Loss解决长尾样本问题。”
同样是解决问题,后者的表达展现了系统性思考能力。
网络、数据库、操作系统、语言特性——这些基础知识面试时一定会问。但临时抱佛脚背下来的东西,很容易被追问至哑口无言。
比如被问“数据库索引原理”时,如果能从B+树结构讲到最左匹配原则,再延伸到实际优化案例,这样的深度才是面试官想要的。
让我分享一个真实的成长案例:
初期阶段(Cvte、阿里):准备不足,基础不扎实
转折点(8月危机感):从0开始系统学习
收获期(多个offer到手):信心与技巧并重
这位同学的经历证明了一个道理:面试能力完全可以通过系统准备来提高。
很多技术牛人有点技术傲气,这在工作中是好事,但在面试中可能是雷区。
面试官挑战你的观点时,不是要和你辩论,而是想看你的抗压能力和沟通灵活性。聪明的回答是:“你这个角度很有意思,我之前主要考虑了性能方面,如果从维护成本角度看,确实您的方案更稳妥。”
设计一个日访问量几万的短链接系统,有人上来就是微服务拆分、Kafka、Redis集群、分库分表...
我问:“单机MySQL都跑不满,搞这么复杂干什么?”
回答:“为了高可用和可扩展性。”
这就是典型的技术自嗨。合格的架构设计是基于需求的演进式思维。
这是我面数据分析岗时最常遇到的问题。当我给出一个业务场景:“某电商APP改版后DAU涨了,但人均使用时长跌了,请分析原因。”
很多人开始讲SQL取数、Python画图、聚类分析...却忽略了核心问题可能是辛普森悖论或用户结构变化。
基于这些年的面试经验,我建议按以下四个阶段准备:
在准备稿子的过程中,这些资源对我帮助很大:
特别是最后一点,我发现很多候选人不是技术不行,而是不知道如何在有限时间内有效展示自己的能力。有针对性的模拟训练可以极大提升面试表现。
面试本质上是一场关于“信任建立”的沟通。
你要让面试官相信,招你进来后:你能独立解决问题而不是制造问题;你能融入团队而不是格格不入;你能随着业务成长而不是停滞不前。
代码能力是根基,但远不是全部。从今天起,有意识地训练你的表达力、抽象力、业务洞察力和沟通情商。
面试就像登山,过程可能艰辛,但每一步都算数。那些从七八月就开始刷题、九十月坚持每天面试的同学,最终都看到了山顶的风景。
如今有了更多工具辅助,比如幕语面试这样的平台,能让准备过程更加高效。但工具只是辅助,真正的成长来自于每一次直面挑战、每一次深入思考和每一次勇敢尝试。
记住:我们最终要找的不是只会写代码的机器,而是能一起把事做成的同行者。
祝你在面试旅途中,既能写出优雅的代码,也能讲出动人的故事。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。