• 作为一面面试官,如何考察候选人


    写在前面

    从去年开始,作为一面面试官,陆续面试了30+候选人,在这里分享一下感悟。

    面试流程与考察方面

    面试流程

    以我经历的面试为例,基本的流程如下:

    • 候选人自我介绍:基本情况与项目
    • 针对项目提问
    • 编程题
    • 基础:语言基础、框架、中间件
    • 候选人向面试官提问沟通

    一面的定位

    候选人进入一面,说明已经通过了HR与leader的简历筛选,我认为一面的定位是: 筛选技术能力与工程能力良好、沟通顺畅的候选人。这么定义有些宽泛,下面我会详细讨论。

    项目经历

    不同公司的业务差异很大,即使是同一公司同一小组,每个人做的事情也各不相同。考察的要点是:

    • 项目背景
    • 候选人的工作:主要参与了哪些部分
    • 候选人对上下游的了解
      • 上游如何生产数据,下游如何消费数据,即整个的数据链路
      • 对系统的整体架构的了解
    • 收益的评估:项目对团队/公司带来的技术/业务贡献

    这里详细说下对项目收益的评估,做项目的目的是解决问题,既然通过了需求评审+技术评审,就需要评估项目上线后的收益,不做无用功。根据不同的项目分类,我提供几点思路:

    • 技术基建类:技术团队使用
      • 稳定性:比如搭建微服务监控体系,线上问题发现缩短xxx,事故减少xxx
      • 开发效率:比如开发了xxx插件,自动生成xxxx
      • 安全性:比如统一记录xxxx日志,每一个操作可追溯到人
    • 业务平台:产品运营使用,配置广告/活动等等等
      • 效率:比如广告投放平台,广告投放效率提高xxxx
      • 成本:比如更精细的广告投放
      • 用户增长:此类平台的最终目标,通过配置不同的策略,拉新/激励老用户参与
    • 直接面向B/C端用户的功能
      • 盈利情况:使用人数提高xxx,付费人数xxxx
      • 用户体验:比如提高了用户点击率,促进创作者发布等等

    项目收益这里,主要考察候选人对项目的认可度,希望候选人认为做这些事情是有意义的。如果一些收益指标无法估计,作为研发,至少应该了解相应的QPS、数据量等。

    编程题

    程序员面试考编程题是无法避免的,写代码是程序员的基本能力,编程题考察的就是理解问题、分析问题、将解决方案转化为代码的能力。这里只聊一下我个人的喜好:

    • 我个人偏爱的题目
      • 题目简单易懂
      • 代码量较少,重分析的题目:比如二叉树/链表/递归等
      • 容易实现暴力解法,需要加以分析找出优化点
    • 这些题目没必要出
      • 偏题、超难题:比如题目超长或者难度hard的题目
      • 大家都会刷的题:例如有次考察合并2个有序链表,感觉候选人直接默写了出来,提问边界条件为什么要这样写,完全不知道
      • 奇技淫巧:比如什么脑筋急转弯,分析了半天,最终答案就一行代码
      • 面试官都hold不住的问题

    这一部分主要是考察候选人的逻辑思维与代码能力,我个人的评分是逻辑清晰&写出优化解>提示下出优化解>能想到优化思路但无法写出代码>逻辑混乱。这一环节,如果候选人在提示下能想到优化思路,代码逻辑结构正确,即使边界有些瑕疵,也已经达到了我的及格线。

    工程能力

    对工程能力的考察包含在各个环节中,这里单独列出来,是因为我见过不少刷题溜的飞起,工程能力一塌糊涂的候选人。

    • 服务稳定性
      • 候选人是否对微服务监控体系有所了解,如何快速标识出问题的请求
      • 很多人简历中都会提到写过技术方案,那么新旧接口如何兼容、回滚方案、出问题如何快速恢复(这类问题回答的好,也能侧面印证候选人对项目上下游比较了解)、是否有灾备方案
      • 业务监控
    • 问题排查与解决,如果候选人简历中提到该类问题,可以细问
      • SQL慢查询
      • 并发优化相关
      • JVM问题

    如何面试比自己更牛的程序员

    作为一面面试官,我经常会面试到一些更资深的程序员。这些候选人比我年长、经验更丰富,那么该怎样面试这些候选人呢?

    • 正视候选人
      • 尊重:尊重这些前辈,聚焦于技术本身,不问一些烂大街问题刁难候选人
      • 不卑不亢
    • 面试偏向
      • 求同存异:如果业务差异较大、编程语言也不同,可以考察数据库、并发、工程能力等
      • 编程:侧重逻辑思维与编码,识别候选人是否脱离一线开发很久了
      • 项目:更多看候选人对整个系统是否有全貌认知,项目难点在哪里

    最近行情不太好,也面试了一些被裁员的兄弟,我本人也有被裁员后焦急找工作的经历。同样是工作经验3年的程序员,技术水平的差距可能非常大,程序员还是要多多磨练技术。

    最后

    最后想说,面试是候选人的舞台,面试官只是引导。祝愿广大程序员朋友都能找到心仪的工作,也希望我能成长为我心目中的资深程序员。


    关注关注,主页更多的java课程学习路线,笔记,面试等架构资料

     

  • 相关阅读:
    面向对象设计原则之依赖倒转原则
    机器学习|决策树
    (附源码)计算机毕业设计SSM基于旅游服务平台
    Python 进阶 - 日常工作中使用过的简单Trick
    基于JAVA-物料采购合同管理系统-计算机毕业设计源码+系统+mysql数据库+lw文档+部署
    没想到吧,Spring中还有一招集合注入的写法
    SpringBoot配置kafka
    深度解读MediaBox SDKs如何实现技术架构升级
    useReducer+createContext真的可以代替Redux吗?
    Java 基础 面试 多线程
  • 原文地址:https://blog.csdn.net/q66562636/article/details/125505113