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

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

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


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

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

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

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

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

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

每个 JavaScript 工程师都应当知道的 10 个面试题

多问问应聘者高层次的知识点,如果能讲清楚这些概念,就说明即使应聘者没怎么接触过 JavaScript,也能够在短短几个星期之内就把语言细节和语法之类的东西弄清楚。

37个JavaScript基本面试问题和解答

面试比棘手的技术问题要多,这篇文章整理了37个JavaScript基本面试问题和解答,这些仅仅是作为指导。希望对前端开发的你有所帮助!

React常见面试题

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

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

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

js练习笔记:10道JavaScript题目

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

vue菜鸟从业记:没准备好的面试,那叫尬聊

面试开场白总缺少不了自我介绍,一方面是面试官想听听你对自己的介绍,顺便有时间看看简历上的描述,是否与口述一致。另一方面就是看看你简历上做过什么项目,用到了哪些技术栈,一会儿好提问你。

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

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

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

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

点击更多...

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