最近的一次面试体验不佳, 怎样的面试才算"专业"或"有效"?

MXXXXXS 1月前 46

分享一下自己几次面试下来的思考, 大家怎么看?

面试的一些问题

不仔细看候选人的简历

面试官往往事先准备了想问的问题, 并不关心候选人的实际情况, 先入为主

这个现象遇到过不止一次, 在自己最开始学 vue 的时候被问 react, 后来上手了 react 又被问 vue

反正就是不关心候选人的具体情况, 这对候选人的了解是非常不深入的

不给候选人问问题的机会

面试是双向选择, 公司本身很多事情候选人也需要了解考虑

即使是买方市场, 公司招人可以随便挑, 但候选人如果发现入职后和预期有较大差距会导致浪费双方的时间

喜欢问一些很细节的点

闻道有先后, 术业有专攻, 问很细节的点为难候选人带来的虚幻的成就感并没有任何价值

一些很细节的点如果平时没遇上相关的场景一般是不会去了解的

但有些面试官就喜欢找一个小细节来问, 比如appendappendChild的区别

这种具体的细节问题往往只需要搜一下就可以知道, 问了也没什么价值, 难道是为了考记忆力?

平时实际编写过程中涉及的知识面广而杂, 一般都是记了一堆"key", 有个印象, 等实际要用再去深究

所以应该考察的是候选人解决问题的思路, 不知道这个东西会去如何搞懂

广撒网

遇到过用一道 hello world 级的笔试题考察候选人后就让其去面试的, 简历都没看

招聘方的想法是尽可能多的面试候选人, 广撒网, 有更多的选择余地

但忽略了效率和质量, 因为广撒网, 导致分配到每一个候选人的面试时间很少, 没法详细考察候选人的情况, 同时低门槛导致候选人良莠不齐, 总体质量偏低

从效率和质量上讲这种方式是有问题的, 而且浪费候选人的时间, 专程跑一趟费时费力

应该使用几道有阶梯性难度的题目作为笔试, 并结合简历评审后再决定是否邀请候选人

考算法

算法在实际业务编写中占比不大, 并且往往不复杂, 在造一些轮子时才会有要求

个人认为, 算法在实际应用中的正确打开方式是有需求的情况下去学习并实现, 或是使用已有的实现

比如自己实现列表渲染时才接触到"最短编辑距离"这个动态规划算法, 经过研读原理和多次调试给出了代码实现

但之后时间一久就再没什么印象了

而现在大厂普遍喜欢考各种经典算法, 候选人的应对方式是大量刷题背题, 非常非常应式又耗时

从零实现是不现实的, 先人耗费大量时间沉淀出来的理论成果怎么可能在短短的面试期间复现? 所以只能是背题, 而人记忆力是有限而不稳定的, 这种方式非常反人性

可能是由于买方市场, 只是为了筛掉人

这对平时的代码能力有多大提升?这些时间更应该用来巩固基础知识

应该怎么考察候选人

解决问题的方式

或者说是学习能力, 如何获取资料

实际代码编写过程中遇到的未知往往比已知更多, 解决和应对未知的能力是一个核心点

学习的方法

几乎所有的知识都可以通过堆时间来换取, 但不同的方式换取的速度和质量不同

正确的学习方法也是一个及其关键的点, 可以说是知识密集型职业的核心能力, 很多时候所谓的能力差距究其本质是学习方法带来的差距

不同的学习方法会导致不同的知识获取途径, 进而导致知识获取速率和质量的差异

最新回复 (22)
  • Vegetable 19天前
    引用 2
    我司最近也在招人,小作坊招人也很难。考虑怎么优化面试体验时,你提的一些问题我也有自己的思考。


    为每个候选人准备不同的面试问题挺难,临场发挥更难。最保险的反而是一套问题面所有人。我们收到的简历很少,所以我还能每份简历都研究一下,但其实简历上能看出个人特点的,非常少。

    我在笔试题里设计了几个比较冷门的知识点,并给了比较低的分值。我的考量是,这些考点只是作为参考,并不会起决定作用。

    提出一个问题的时候,面试官对于候选人的答案是有预期的,如果我问了「怎么用 shell 命令批量删除 docker 镜像」,这种问题答不上来才是常态吧,但是答出来了能证明候选人起码玩过 docker,属于附加题。不过相对来说,这种问题应该是非常给面试官减分的问题,最好不要出现在面试里。

    我的笔试题里有一个题目是问的如何在 Linux 会话中定义环境变量,不出意料的,的确有人答错,这种送分问题再答错,我觉得就有点过分了。

    考察算法应该说是一个囚徒困境。为了准备算法题,我这几天经常带薪刷题,考量哪些题目难度始终,适合小改之后作为在线笔试题。精心选出两道 easy 题目,一道小改一道原题,然而,能答出一道题的人只有不到 10%。

    我还不好下结论,但是现在的现象是,大厂考察算法,结果没有区分度,我们这种小作坊收到的简历,人家根本起没看过算法,各位有什么好办法能比较高效的判断出一个人是不是简历造假、基本的逻辑能力如何呢?
  • pkupyx 19天前
    引用 3
    前端岗位面算法大厂可以搞搞毕竟好简历多,小厂简历质量不行确实没区分度。
    但要说用途还是很有用的,常见的 vue 为什么单页大表单会卡(比如考勤表,10 个 input x 每页 100 个员工条目),react 复用原理为什么 O(n)可能有什么影响怎么用 key,懂点算法原理不至于靠蒙着解决问题。

    当然还有些水平比较糟糕,看见链表翻转或者 dom 节点遍历就认为是算法题不会做的。。。
  • zw1one 19天前
    引用 4
    @Vegetable 出比较通用的场景题吧:
    比如让他设计一个权限模块,然后根据他的设计加需求变更,看怎么应对。
    或者给一个简单架构的项目,假设项目访问不了,看他排查问题的思路是怎样的,如何定位问题是出在服务器、还是 web 应用、还是中间件、还是数据库,以及怎么解决,后续如何避免出现类似的问题。
  • Akiya 19天前
    引用 5
    算法可以不出需要背套路的题,而是出主要考察思维的题目,大概就是 codeforce 2A,2B 这种,而且要能 bug free,基本上可以淘汰掉一部分编程基础不扎实或者思维不够缜密的候选人。对于分布式、并行编程的设计题的考察可以只聊思路,不要求直接实现。Linux 可以出一个具体的排查问题的题目,这样可以考察其对整个计算机系统的了解。我最近面的外企感觉聊的挺成功的,仅供参考,主要就是对面试官要求可能比较高
  • bleepbloop 19天前
    引用 6
    用实际工作中遇到的问题去考察
  • wr516516 19天前
    引用 7
    @Vegetable 我最近面试,遇见了一些不错的面试题,
    数澜和蘑菇街会问一些业务场景题,
    比如在 2000W 并发下设计针对某一环节的应对措施.
    或者是给抛出来一个线上 bug,问可能造成这个现象的原因有哪些方面.
    感觉这些题没有个准确答案,
    但是确实挺能看出来对整体项目的熟悉程度以及工作里 解决问题的能力.
  • cassyfar 19天前
    引用 8
    你提出的 “应该怎么考察候选人” 归纳成一点儿就是解决问题的能力 ( problem solving ),这个确实是技术面试的核心。但是现在主流用算法类题型去考察,实在是因为,如果用工程类实际问题,1 小时的面试根本无法交出一个可运行的版本,那么往往你招来的,很可能是个只会说空话大话,却写个 helloworld 也能出 bug 的混子。

    另外其实刷题刷得猛的,就我个人经验,真的在解决问题上能力也不差。实际上是没有什么所谓 “高分低能” 的选手。
  • Yc1992 19天前
    引用 9
    总结一下,楼主是个前端,算法不太行,觉得自己怀才不遇,想找个伯乐
  • 楼主 MXXXXXS 19天前
    引用 10
    @Yc1992 单纯对刷算法这件事很抗拒, 要说刷的少, 那确实. 刷过几次 leetcode hard, 每次都耗费几小时, 学习原理=>调试=>给出解答=>一段时间后忘记, 感觉没啥积累. 得出了遇到算法问题再去看的方法论, 可能是个片面的结论
    怀才不遇? 自己菜还是知道的, 这是时间问题, 刚毕业确实不大行. 只是觉得面试过程中的信息不对等实在非常严重
  • pkupyx 19天前
    引用 11
    @Vegetable 简历造假好解决,现场人事第一个工作就是核对手机银行流水 or 社保和工作经历是否匹配,造假的收到有现场核验的面试邀请邮件后基本就不来了。
  • raaaaaar 19天前
    引用 12
    我之前读了下剑指 offer,发现它里面说的那种就是我想要的,认为的那种感觉
  • Lemeng 19天前
    引用 13
    面的多了,就会好很多,把不知道记下来,再回去研究研究,举一反三
  • djyde 19天前
    引用 14
    @Vegetable #1 「怎么用 shell 命令批量删除 docker 镜像」, 我以为这是考 shell, 不是考 docker
  • djyde 19天前
    引用 15
    @Vegetable #1 「各位有什么好办法能比较高效的判断出一个人是不是简历造假、基本的逻辑能力如何呢?」

    我个人的经历来说,我认为体验最好的面试题是在真实的工作内容中,抽象出一道实作题,让面试者花几天时间做,并且在题目中指出完成的工程标准(比如我们需要你写好测试,才达到提交的标准)。

    举个例子,如果想考察面试者的 React 水平,有些人可能会考察 useMemo, useCallback 之类的知识点。但是在面试中直接问什么是 useMemo 这样的问题是比较糟糕的。相反,可以出一道实作题,提供了一份 json 数据,需要进行一些数值运算或者按列排序,在题目中要求留心性能问题(当然也可以故意不做这样的提示)。面试者完成后,就可以从代码中看出他是否能通过对应的 api 来降低性能问题。
  • e583409 19天前
    引用 16
    关于靠算法这个点 我最近刚好刷了三个月题 总结了一篇:
    https://mp.weixin.qq.com/s/Av3wcmu3vUCT3QTi7luk2Q 为了更快的砍柴,每日磨刀:LeetCode 刷题总结(数组篇)

    为什么是刷 LeetCode 而不是看开源代码?可能有几个方便的原因:
    1 面试笔试会考察写手算法,而且这个趋势越来越扩大化
    2 在 V2EX 里面看到一个 40 多岁的 Leader ( P8 级别)每天也刷
    3 训练算法思维
    4 提升编码能力:常写代码 防止手生
    5 开源代码在公司项目中暂时用不到,正向激励效果低
    而且刷 Leetcode 的门槛较低,能得到及时反馈,这个还是挺重要的。软件开发是一个偏实践的学科,需要多实践、多动手。
  • ChrisV5 19天前
    引用 17
    「各位有什么好办法能比较高效的判断出一个人是不是简历造假、基本的逻辑能力如何呢?」
    用 1,2,3 连环问题来判断简历是否造假,比如:1. 可以问他印象最深刻的一个 BUG,怎么解决的。 答完之后,问下是简历里面哪个项目有这么个 BUG,怎么发现的。
  • e583409 19天前
    引用 18
    我觉得 面试是一个 告诉别人 “我是谁” 的过程
  • e583409 19天前
    引用 19
    并建立 信任(这个很难)
  • iyaozhen 19天前
    引用 20
    大厂面试官 尝试解答下楼主的疑问吧

    「不仔细看候选人的简历」这个是肯定不允许的,我们一般都是问候选人知道什么,肯定不会写了 js 问 java
    「不给候选人问问题的机会」肯定不会,最好都会给提问环节
    「喜欢问一些很细节的点」这个一般是展开来问,提到了某个点问问。或者简历上写了精通 xxx
    「广撒网」其实吧 现在简历质量都不高,10 个能有一个 简历通过的都不容易了

    最后楼主说的 「解决问题的方式」「学习的方法」是绝对的重点,但这个都不好考察。之前不是还有人说 “最近遇到的一个难点问题说一说”是个 SB 问题

    对于一般的面试者 我们只能假定他不具备这些能力,从基础的问起,算法题也只是考察代码、思维能力,特别是一面

    所以一般都喜欢内推的 先了解一些

    有个建议就是候选人可以引导面试官,介绍项目时,有层次,说一下难点和解决方案。这样面试官也轻松,也就会少问八股文问题了
  • wolfie 19天前
    引用 21
    会面试的面试官本来就少。
    hr 突然拉你去面试,你也会随便搜几个题拿去问。
  • forward 19天前
    引用 22
    负责我司第一轮前端面试,只面基础和算法。上次去微软面试,直接就让我手写一个 promise 。。。
  • ETiV 19天前
    引用 23
    我也负责面试,简单说就是“你的现有经历是否对得起你的工作时长”、以及“这个人经历得不多,那他是否聪明机灵,值得培养”
  • 游客
    24
返回