为什么现在的程序员都不喜欢面试做题?

更新日期: 2025-10-28 阅读: 274 标签: 面试

最近几年,程序员面试中的做题环节越来越不受欢迎。很多人都在问:为什么会这样?其实原因很简单,现在的面试做题方式和实际工作需求出现了严重脱节。


一、面试内容和实际工作差距太大

2015年发生过一个著名事件。Homebrew的作者Max Howell去谷歌面试,因为没能在白板上写出“翻转二叉树”的算法而被拒绝。这个事件在当时引起了很大讨论,直到现在仍然是大家热议的话题。

想想我们平时的工作场景:

  • 代码时有IDE自动补全

  • 遇到问题可以查资料

  • 复杂的逻辑可以慢慢调试

  • 有版本管理工具协助合作

但算法面试要求的是:

  • 在白板上手写代码

  • 没有任何工具帮助

  • 时间压力很大

  • 还要边写边解释思路

这种反差让很多有经验的开发者感到困惑。有位技术负责人说得很好:“工作中明明调用现成api就能解决的问题,面试却非要手写底层算法,这就像考驾照非要考生背发动机原理一样。”

更让人无奈的是,很多擅长做题的人在实际工作中表现并不好。有些能熟练写出复杂算法的候选人,连基本的Git操作都不熟悉。而一些笔试成绩一般的人,反而能快速解决实际工作中的技术问题。


二、刷题带来的问题

为了应对算法面试,一个特殊的“刷题”生态逐渐形成,这引发了不少问题:

时间投入太大
准备面试的程序员通常要花几百个小时刷题,背诵各种解题模板。但工作中真正用到这些知识的机会很少。有位后端工程师分享,他为了面试刷了400多道题,工作两年后只用到过其中一道题的思路。

筛选机制不合理
过度强调做题能力,可能导致企业错过这两类人才:

  • 有丰富项目经验,但很久没接触算法的高级工程师

  • 自学成才,实践能力强但缺乏系统算法训练的开发者

相反,一些擅长应试但实际能力不足的人反而更容易通过面试。

能力评估失真
有些人通过短期突击刷题,面试时表现很好,但入职后实际工作能力跟不上。这种情况不仅让企业付出代价,也让认真工作的开发者对做题面试更加反感。


三、AI带来的改变

人工智能的发展让传统算法面试面临更大挑战。现在已经有AI工具能够识别面试题目并实时生成答案,有些甚至能帮助用户通过大公司的技术面试。

有一个数据很能说明问题:某款面试辅助工具在36天内就实现了百万美元的年收入预测,这从侧面反映了大家对算法面试的态度。

在AI时代,考察“能不能手写算法”已经意义不大。更重要的是评估候选人:

  • 如何分析问题

  • 如何设计解决方案

  • 如何与AI协作完成任务

  • 如何保证代码质量

这些能力都无法通过传统的白板编程来考察。


四、面试环境的不公平

算法面试的高压环境本身也存在问题。在面试官的注视下手写代码,很容易让人紧张,导致实际能力强的人发挥失常。

这种面试方式对某些群体尤其不友好:

  • 转行的开发者可能缺乏系统的算法训练

  • 有阅读障碍的人难以快速理解题目

  • 长期做业务开发的工程师可能忘记一些算法细节

这与行业提倡的多元化理念相违背,也让更多人开始反思算法面试的合理性。


五、更好的面试方式

程序员反感的不是技术考核,而是脱离实际的考核方式。现在很多公司已经开始尝试新的面试方法:

项目展示
让候选人展示做过的真实项目,讲解其中的技术选择和解决方案。这种方式能更好地考察实际工作经验。

代码审查
提供一段真实的代码,让候选人进行审查和优化。这能看出一个人的代码品味和工程能力。

系统设计
讨论如何设计一个系统或功能,考察架构思维和问题分析能力。

结对编程
和面试官一起解决一个实际问题,模拟真实的工作场景。

这些方法的好处:

  • 更接近实际工作

  • 能全面评估能力

  • 减少死记硬背

  • 降低心理压力

给面试者的建议:

如果你正在准备面试:

  1. 还是要适当准备算法题,毕竟很多公司还在用

  2. 重点理解算法思想,而不是死记硬背

  3. 多准备项目经验的分享

  4. 练习在压力下保持冷静

给企业的建议:

如果你在招聘技术人员:

  1. 根据岗位需求设计面试内容

  2. 结合多种考核方式

  3. 提供更接近实际工作的面试环境

  4. 关注候选人的综合能力


总结

面试方式的改变需要时间和实践。好的技术面试应该既能评估候选人的能力,又能让候选人展示真实水平。随着行业的发展,相信会有越来越多公司找到更合理的面试方法。

对于开发者来说,重要的是持续学习,提升解决实际问题的能力。对于企业来说,需要不断优化招聘流程,找到真正合适的人才。这样才能实现双赢。

本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://fly63.com/article/detial/13070

相关推荐

有趣的Js面试题_如何让 (a == 1 && a == 2 && a == 3) 返回 true

题目大意为:JS 环境下,如何让 a == 1 && a == 2 && a == 3 这个表达式返回 true ?这道题目乍看之下似乎不太可能,因为在正常情况下,一个变量的值如果没有手动修改,在一个表达式中是不会变化的。

前端面试之webpack面试常见问题

什么是webpack和grunt和gulp有什么不同?什么是bundle,什么是chunk,什么是module?什么是Loader?什么是Plugin?如何可以自动生成webpack配置?webpack-dev-server和http服务器如nginx有什么区别?

Web前端年后跳槽面试复习指南

很多童鞋可能年后有自己的一些计划,比如换份工作环境,比如对职业目标有了新的打算。当然面试这一关不得不过,大概又不可能系统性的复习,这里罗列一些 重点 面试的知识点和文章,

React常见面试题

React常见面试题:React中调用setState之后发生了什么事情?React中Element与Component的区别?优先选择使用ClassComponent而不是FunctionalComponent?React中的refs属性的作用是什么?React中keys的作用是什么?

毕业一年左右的前端妹子面试总结

把面试当做学习,这个过程你会收益很大。前端知识很杂,可能实际工作中用到的技术,像框架都是跟着公司的要求走的,像我最近也在看React啦,Vue和React都对比着再学习

js练习笔记:10道JavaScript题目

10道JavaScript题目:累加函数addNum、实现一个Person类、实现一个arrMerge 函数、实现一个toCamelStyle函数、setTimeout实现重复调用、实现一个bind函数、实现一个Utils模块、输出一个对象自身的属性

写给程序员的 HR 面试指南

首先,切记不要诋毁你的老东家。你应该把你的离职原因集中表述在“寻找新机会或新的平台”以及尝试在新的岗位上提升自己。当然,这样的回答对于一般职位的应聘者来说不会造成减分

一篇文章教会你面试中的小套路

面试,一个短时间内对某个人做出判断的测试。很多时候,工程师们只准备了相关的技术点,却没有对非技术的软实力部分做准备。而软实力的考察,不仅贯穿整个面试流程中,更在BOSS面和HR面中尤为关键。鉴于当前业界也没有特别契合的攻略文档,仅有有几篇文章还是HR写的,特有此文

CSS 面试知识点总结

最近在整理 CSS 的时候发现遇到了很多面试中常见的面试题,本部分主要原作者在 Github 等各大论坛收录的 CSS 相关知识和一些相关面试题时所做的笔记,分享这份总结给大家,对大家对 CSS 的可以来一次全方位的检漏和排查

vue面试时需要准备的知识点

vue上手可以说是比较轻松而且简单,如果你用过angular,react,你也会很喜欢vue。vue的核心思想依旧是:构建用户界面的渐进式框架,关注视图的变化。这也是为什么新建的文件是结构是template script style

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!