八股文就是好的面试?

程序员cxuan 2023-11-22 08:33

作者:Andy_Qin 链接:https://juejin.cn/post/7188046122441506853

不知道什么时候起,市面上开始流行所谓的面经、背题之类的八股文,大到字节、腾讯、阿里、baidu,小到十几人的小微企业都是开始有大量的算法类笔试题。而且在面试时的问题也越来越标准化,网上到处流传着 xxx 公司面经、xxx 公司面试题这种东西,我不禁感叹这种方式的面试和筛选简历的方式真的能招到好的人才吗?

ReactJs 核心开发 Dan Abramov 和 Youtube 主播和 Dan 进行 了一场模拟面试,这个面试将近持续了一个小时,但是主要是后面的那个算法题耗费时间,前面几个问题都是很八股的前端面试题(这部分翻译和评价来自@程序员的喵):

  1. let 和 const 区别
  2. 什么时候使用 redux
  3. dangerouslySetInnerHTML 是什么,该怎么用
  4. 把一个 div 居中
  5. 把一个 binaryTree 镜像翻转
  6. Bonus Q: 一个找兔子的算法题,兔子出现在数组的某个位置,但是每次可以跳向相邻的位置,用最快的办法找到兔子的位置。

www.youtube.com/watch?v=XEt…

把 div 居中算是前端中的经典梗了,Dan 花了好一会时间在面试官的提示下才把一个 div 居中。如果对方不是 React 核心开发,手熟的前端可能就会开始鄙视这位“初级前端”了。

最后一个算法题比较新颖,这不算红黑树式的八股算法题,倒像是一个 IQ 测试题目。可以看出 dan 也很少碰这类算法题。他花费了近半个小时在面试官的提示下,按照自己的直觉一步一步推出了答案。但是他最后写的代码是有点小问题的(没有用 2 来递增 index),面试者看他思路是对的也没有指出来了。

即使是非常知名的开源作者在面试这些基础问题和算法题的时候都是很困难的,那普通人岂不是更困难?如果不背题的情况下要做出算法题还是很难的。

我在写这篇文章之前我搜了下,我发现有篇文章写得非常好,基本已经把我想说的都概括进去了。

怎样花两年时间去面试一个人 – 刘未鹏 | Mind Hacks 

https://mindhacks.cn/2011/11/04/how-to-interview-a-person-for-two-years/

我就着这篇文章往下说下自己的感受吧。

现在市面上基本无论实习还是社招、校招都大量的流行笔试的本质是因为如何界定好的、优秀的技术人才越来越难。如果在上面文章说的一样:

招聘真的很困难。以至于招聘者每年需要绞尽脑汁出新笔试题,以免往年的笔试题早就被人背熟了。出题很费脑子,要出的不太简单也不太难,能够滤掉绝大多数滥竽充数的但又要保证不因题目不公平而滤掉真正有能力的,要考虑审题人的时间成本就只能大多数用选择题,而选择题又是可以猜答案的(极少有人会在选了答案之后还敢在空白的地方写为什么选某答案的原因的)。更悲催的是,有些题目出的连公司的员工们自己都会做错(真的是员工们做错了吗?还是题目本身就出错了?)

我们没有很好的办法去界定一个人在技术上是否优秀,实践证明是否在大厂工作过、学历是否很好只是提高了优秀人才的概率,但并不能决定一个人是否优秀。现在大部分五年以下工作经验所做的都是纯业务开发,例如 API 开发、所谓的”增删查改“等等。甚至于换不同语言都已经很难了,经常使用 Java 开发的就很难切换到 Python 开发。

即使笔试之后进入面试阶段,我们也很难在很短的时间内去界定一个人他是否是好的、优秀的人才。就如在《社会性动物》里描述的一样:”我们总是寻求保存认知(心理)能量并将复杂事物简单化处理的方法。我们会利用经验法则去走捷径。我们会忽略一些信息以减少认知负担;我们会过度利用一些信息以避免去寻找更多的信息;或者我们只是按照最初的直觉,接受一个不够完美的选择,因为它已经足够好了。人类进化的一个奇怪的特点是它倾向于消极:我们倾向于关注潜在的威胁而不是祝福,这种倾向通常被称为消极偏见。(罗伊·鲍迈斯特(Roy Baumeister)和他的同事发现,消极的事件通常比积极的事件更有力量。)“。

在面试的过程中,无论是对于面试官还是候选人来说,都很难保持完全中立,会不由自主的倾向于寻找对方的缺点,寻找对方不会什么、缺点是什么。甚至如果对方与自己越相似你就会越喜欢他,对方与自己越不相似,自己就越不喜欢他。(如学习经历、成长环境、同个国家留学、上个公司是同个公司等等)。

对于现在的候选人来说,刚一坐下来就要担心需要不需要笔试了,等下笔试有电脑还是手写、有没有现代的 IDE、有没有代码提示等等。

所以说在短短的几个小时(很多时候一小时都不够)中想要发现一个人的闪光点是很难的。雇主在招人时很难选择优秀的人只能通过更加标准的”考试“来选择那些至少更擅长应试的人,或者使用标准的面经类的面试题去扣一个框架的细节、一个工具的细节、Hashmap 原理什么的。在这样的市场环境下候选人也会慢慢习惯这样的环境,随时准备应试。这样的市场环境将工具和解决问题的能力本末倒置,我们不能说一个擅长使用锤子的人更擅长锻造,我们也不能说一个擅长锻造的人一定擅长挥舞锤子。

但实际上对于好的技术开发来说,难道具体的语言和框架不应该只是工具吗? 哪个用得顺手就用哪个么?我们实际应该要做的不是利用数学知识、计算机相关的知识、逻辑思维能力、分析能力在某个场景下用适合的工具去解决遇到的问题吗?

我有一次打车遇到一个司机跟我抱怨说每天派单都很少,但是他本人应该优先级很高才对,那我就问他你是不是每天出门是一样的路线?他说是,我告诉他你其实可以试下每天出门时每遇到一个十字路口就走与上次不一样的方向,然后记录下来哪个条路线单最多最好,以后就按那个路线走。

我们换成计算机领域的话来说,这就是一种类似广度优先搜索算法的算法,我们将每天出门的路线看作是一张图,每个十字路口看作是一个节点。广度搜索算法可以帮我们分析出从 A 节点出发前往 B 节点哪条路径最短,我们可以把路径最短的目标换成哪条路径同等时间获得的收益最大。我们只不过是用人力去模拟这个算法,来实现最优路径。

所以所谓的精通 xxx、熟悉 yyy、掌握 zzz 的本质是,我们能不能用类似这些东西的机制或者利用这些东西解决业务问题,或者我们能不能利用这些算法、原理的思想解决现实生活中遇到的问题。

在互联网这么多年,最重要的方法论就是在高密度的信息下用某个方法论解决某个问题。虽然有时候互联网黑话很好笑,但有时候遇到某个问题的时候就会发现这个黑话还是很好用的,毕竟它代表了某个方法论的简写(手动狗头)。

那么怎么样才能让雇主方更容易找到好的人,也能让候选人更好的表现自己呢?我觉得提供一个自己的博客和 GitHub 之类的开放代码平台能够非常好的表现自己的技术品味、自学习的能力、进步的速度。长期维护一个好的品味的博客、深度的博客是很难的,需要花大量的时间和精力去写作、去思考。

同时我们可以参与开源项目的贡献或者我们可以自己设计一个解决了某个经常遇到的问题的项目、模拟某个场景的项目。自己撰写架构设计文档、技术文档等等然后开发、完善单元测试、不断完善迭代、尝试更加新颖的技术。通过把项目展示在 GitHub 之类的平台上,雇主方可以很好的通过你的项目和代码了解到你的技术品味,也可以看到你的编程习惯是否与自己符合。自己也可以通过长期维护和更新项目不断更新技术栈。

对于雇主方来说,要思考的是自己所需的人到底是更擅长挥舞锤子的人还是更擅长锻造的人。如果我们是希望更擅长锻造的人,我们应该更关注的是候选人本身在什么样的环境下、通过什么样的方法、取得了什么样的成果、吸取了什么教训、下次再解决这个问题是否有更好的方案。通过与候选人共同探讨过去的经历,我们很快可以知道这个人是不是适合与自己合作的人(当然重点是合作了能不能解决问题,需要保持中立去评估)。

关于是否应该选择创业公司的问题,我今天搜索的时候发现有篇当年好像很火的文章《没事别想不开去创业公司》,15 年 16 年那个年代我也是创业潮中的一员,在当时的环境下的确就如同文章一样:

天确实变了,但是这天是不是为你变的,很难说。就像一线城市繁华的夜景,和你有没有关系,很难说。押上自己所有的时间和机会筹码,自己创业或加入创业公司,是不是一步好棋,也很难说。

当现在的环境与当年不一样了,如果说当年是资本+政策+经济兴起的三重推动力的话,现在就是三者都不行的环境了,更恶劣的环境反而容易诞生更加正规和更有潜力的创业公司的。

选择创业公司不能直接想着加入后就能马上 IPO 发家致富,而是应该往最坏的方向打算。创业就像吹一个泡泡,太大就会爆炸,太小又没有任何的意义。如何小心意义的让这个泡泡不爆成为一个飞在空中的泡泡是一个很难的且要求人非常理性、反人性的事情。

其次选择一个创业公司一定要去试试它的产品,看看自己喜不喜欢,如果自己都不喜欢这个产品不会经常用,你如何相信这个产品能发展起来?你如果不相信你为什么要参与创业呢?一只眼睛看着外面商业环境的变化,随时准备调整战略战术适应市场,另一只眼睛盯着内部的团队,随时要调整和救火。在一个高速发展的公司中的确平日和周末的界限没那么明显,但无论是公司还是个人还是应该想着如何更高效而不是如何加班更多,加班多并不代表高效,高效也不一定要加班更多,像 intel 现在 的 CEO 帕特·基尔辛格在自传中写到的——“一个杂耍艺人同时转动三个小茶碟。一个碟子代表上帝,另一个代表家庭,第三个代表工作。我当时的生活就是这样,我得时刻注意让这三个碟子都在空中旋转,根本没机会暂停或休息。如果我稍有分神,碟子就会掉下来,摔到地上。也许我们可以把这称之为有张驰的工作。工作和生活要平衡:工作时要竭尽全力;休息时要完全放松,或在家陪伴家人,或外出度假。

加入创业公司的本质是选一个好的创业公司,与他一起成长,如果他没法长大为何要加入?如果他要野蛮生长,你呢?

回顾招聘的话题,对于我个人而言,评估一个人是不是好的技术人才最简单的办法就是,如果将来互联网衰败,当工程师并不能提供很多收入的时候、甚至你换行了你还会喜欢并跟进新的技术吗?甚至有一天编程将死、程序员职业消失在历史长河中,你会怎么办?

程序员cxuan cxuan 写的文章还不错。会分享计算机底层、计算机网络、操作系统,Java基础、框架、源码等文章。
评论
  •  万万没想到!科幻电影中的人形机器人,正在一步步走进我们人类的日常生活中来了。1月17日,乐聚将第100台全尺寸人形机器人交付北汽越野车,再次吹响了人形机器人疯狂进厂打工的号角。无独有尔,银河通用机器人作为一家成立不到两年时间的创业公司,在短短一年多时间内推出革命性的第一代产品Galbot G1,这是一款轮式、双臂、身体可折叠的人形机器人,得到了美团战投、经纬创投、IDG资本等众多投资方的认可。作为一家成立仅仅只有两年多时间的企业,智元机器人也把机器人从梦想带进了现实。2024年8月1
    刘旷 2025-01-21 11:15 360浏览
  • Ubuntu20.04默认情况下为root账号自动登录,本文介绍如何取消root账号自动登录,改为通过输入账号密码登录,使用触觉智能EVB3568鸿蒙开发板演示,搭载瑞芯微RK3568,四核A55处理器,主频2.0Ghz,1T算力NPU;支持OpenHarmony5.0及Linux、Android等操作系统,接口丰富,开发评估快人一步!添加新账号1、使用adduser命令来添加新用户,用户名以industio为例,系统会提示设置密码以及其他信息,您可以根据需要填写或跳过,命令如下:root@id
    Industio_触觉智能 2025-01-17 14:14 121浏览
  • 日前,商务部等部门办公厅印发《手机、平板、智能手表(手环)购新补贴实施方案》明确,个人消费者购买手机、平板、智能手表(手环)3类数码产品(单件销售价格不超过6000元),可享受购新补贴。每人每类可补贴1件,每件补贴比例为减去生产、流通环节及移动运营商所有优惠后最终销售价格的15%,每件最高不超过500元。目前,京东已经做好了承接手机、平板等数码产品国补优惠的落地准备工作,未来随着各省市关于手机、平板等品类的国补开启,京东将第一时间率先上线,满足消费者的换新升级需求。为保障国补的真实有效发放,基于
    华尔街科技眼 2025-01-17 10:44 221浏览
  • 2024年是很平淡的一年,能保住饭碗就是万幸了,公司业绩不好,跳槽又不敢跳,还有一个原因就是老板对我们这些员工还是很好的,碍于人情也不能在公司困难时去雪上加霜。在工作其间遇到的大问题没有,小问题还是有不少,这里就举一两个来说一下。第一个就是,先看下下面的这个封装,你能猜出它的引脚间距是多少吗?这种排线座比较常规的是0.6mm间距(即排线是0.3mm间距)的,而这个规格也是我们用得最多的,所以我们按惯性思维来看的话,就会认为这个座子就是0.6mm间距的,这样往往就不会去细看规格书了,所以这次的运气
    wuliangu 2025-01-21 00:15 181浏览
  •     IPC-2581是基于ODB++标准、结合PCB行业特点而指定的PCB加工文件规范。    IPC-2581旨在替代CAM350格式,成为PCB加工行业的新的工业规范。    有一些免费软件,可以查看(不可修改)IPC-2581数据文件。这些软件典型用途是工艺校核。    1. Vu2581        出品:Downstream     
    电子知识打边炉 2025-01-22 11:12 49浏览
  • 本文介绍瑞芯微开发板/主板Android配置APK默认开启性能模式方法,开启性能模式后,APK的CPU使用优先级会有所提高。触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。源码修改修改源码根目录下文件device/rockchip/rk3562/package_performance.xml并添加以下内容,注意"+"号为添加内容,"com.tencent.mm"为AP
    Industio_触觉智能 2025-01-17 14:09 161浏览
  • 临近春节,各方社交及应酬也变得多起来了,甚至一月份就排满了各式约见。有的是关系好的专业朋友的周末“恳谈会”,基本是关于2025年经济预判的话题,以及如何稳定工作等话题;但更多的预约是来自几个客户老板及副总裁们的见面,他们为今年的经济预判与企业发展焦虑而来。在聊天过程中,我发现今年的聊天有个很有意思的“点”,挺多人尤其关心我到底是怎么成长成现在的多领域风格的,还能掌握一些经济趋势的分析能力,到底学过哪些专业、在企业管过哪些具体事情?单单就这个一个月内,我就重复了数次“为什么”,再辅以我上次写的:《
    牛言喵语 2025-01-22 17:10 30浏览
  • 数字隔离芯片是一种实现电气隔离功能的集成电路,在工业自动化、汽车电子、光伏储能与电力通信等领域的电气系统中发挥着至关重要的作用。其不仅可令高、低压系统之间相互独立,提高低压系统的抗干扰能力,同时还可确保高、低压系统之间的安全交互,使系统稳定工作,并避免操作者遭受来自高压系统的电击伤害。典型数字隔离芯片的简化原理图值得一提的是,数字隔离芯片历经多年发展,其应用范围已十分广泛,凡涉及到在高、低压系统之间进行信号传输的场景中基本都需要应用到此种芯片。那么,电气工程师在进行电路设计时到底该如何评估选择一
    华普微HOPERF 2025-01-20 16:50 73浏览
  • 高速先生成员--黄刚这不马上就要过年了嘛,高速先生就不打算给大家上难度了,整一篇简单但很实用的文章给大伙瞧瞧好了。相信这个标题一出来,尤其对于PCB设计工程师来说,心就立马凉了半截。他们辛辛苦苦进行PCB的过孔设计,高速先生居然说设计多大的过孔他们不关心!另外估计这时候就跳出很多“挑刺”的粉丝了哈,因为翻看很多以往的文章,高速先生都表达了过孔孔径对高速性能的影响是很大的哦!咋滴,今天居然说孔径不关心了?别,别急哈,听高速先生在这篇文章中娓娓道来。首先还是要对各位设计工程师的设计表示肯定,毕竟像我
    一博科技 2025-01-21 16:17 95浏览
  • 现在为止,我们已经完成了Purple Pi OH主板的串口调试和部分配件的连接,接下来,让我们趁热打铁,完成剩余配件的连接!注:配件连接前请断开主板所有供电,避免敏感电路损坏!1.1 耳机接口主板有一路OTMP 标准四节耳机座J6,具备进行音频输出及录音功能,接入耳机后声音将优先从耳机输出,如下图所示:1.21.2 相机接口MIPI CSI 接口如上图所示,支持OV5648 和OV8858 摄像头模组。接入摄像头模组后,使用系统相机软件打开相机拍照和录像,如下图所示:1.3 以太网接口主板有一路
    Industio_触觉智能 2025-01-20 11:04 150浏览
  •  光伏及击穿,都可视之为 复合的逆过程,但是,复合、光伏与击穿,不单是进程的方向相反,偏置状态也不一样,复合的工况,是正偏,光伏是零偏,击穿与漂移则是反偏,光伏的能源是外来的,而击穿消耗的是结区自身和电源的能量,漂移的载流子是 客席载流子,须借外延层才能引入,客席载流子 不受反偏PN结的空乏区阻碍,能漂不能漂,只取决于反偏PN结是否处于外延层的「射程」范围,而穿通的成因,则是因耗尽层的过度扩张,致使跟 端子、外延层或其他空乏区 碰触,当耗尽层融通,耐压 (反向阻断能力) 即告彻底丧失,
    MrCU204 2025-01-17 11:30 179浏览
  • 嘿,咱来聊聊RISC-V MCU技术哈。 这RISC-V MCU技术呢,简单来说就是基于一个叫RISC-V的指令集架构做出的微控制器技术。RISC-V这个啊,2010年的时候,是加州大学伯克利分校的研究团队弄出来的,目的就是想搞个新的、开放的指令集架构,能跟上现代计算的需要。到了2015年,专门成立了个RISC-V基金会,让这个架构更标准,也更好地推广开了。这几年啊,这个RISC-V的生态系统发展得可快了,好多公司和机构都加入了RISC-V International,还推出了不少RISC-V
    丙丁先生 2025-01-21 12:10 111浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦