两周前,我们发布了一篇关于怎样招聘前端工程师的文章(点击此处顾)。在文章中,我们分析了前端岗位有哪些必不可少的考察要点,以及如何在面试中考核对方是否能写出高质量的代码,这篇文章得到了大量技术面试官的好评。
前端工程师之外,Java 后端工程师也是一个岗位需求大户,这个岗位的招聘也常让技术面试官们头疼。
它的招聘难点有 2 个:一方面,由于大多数 IT 企业的后端都是用 Java 语言写成,庞大的市场需求导致几乎所有的后端工程师都多少会一些 Java,人才识别的成本很高;另一方面,Java 工程师是一个对知识结构要求较为全面的岗位,仅仅依靠在面试时挖项目经历,很难考察候选人的综合能力。
在这篇文章中,我们将为技术面试官支支招,帮你在茫茫简历中,锁定合格的候选人。
怎样区分初级/中级 Java 工程师?
在开始招聘之前,面试官需要先明确岗位的招聘需求,团队是想要招聘的是初级还是中级的 Java 工程师?根据需求的不同,对候选人技能掌握程度的要求也会有所区别。
初级 Java 工程师需要有扎实的 Java 编程基础、常用的Java 开发框架及工具的应用能力和基本的软件开发能力。此外,良好的学习和解决问题的能力也是非常必要的。
中级 Java 工程师则需要掌握 Java 高级编程语言特性、高级数据结构和算法、常用开发框架的高级应用以及深入的软件开发流程和项目管理方法。
怎样设计一套合适的技术测评试题?
ShowMeBug 采访了 30 余位业内资深技术面试官,有近 80% 的面试官表示,先用技术测评题进行一轮“预面试”,再正式进行面试,能有效提高面试成功率,技术测评的关键在于如何设置一套考点全面的试卷。
在考点设置上,我们建议:
传统的技术测评中,通常有这几种考核题型:通过选择题,辨析一些基础概念;通过程序阅读题,要求候选人写出程序运行的结果;通过问答题,要求候选人写出代码片段;通过一些像“青蛙跳台阶”这样算法类的题目,考察候选人对基本语法和算法思想的掌握。
不过,这四种题型都有一定的局限性。前三种题型难以准确考核候选人的编写和调试代码能力,第四种题型考察的知识点,不适用于每个 Java 后端工程师的实际业务需求 ,因为不是每一个 Java 工程师都必须精通动态规划——一种为了找到最优解的算法思想,在实际工作场景中其实很少使用到。
如何判断候选人是否能够在实际的编程环境中,使用编程语言或者开发框架完成开发任务呢?ShowMeBug 提供了一个解决方案 —— 我们支持开箱即用的云上轻协同 IDE 环境,可以直接用实战编程题型进行技术测评。
ShowMeBug SpringBoot后端框架编程题
在 ShowMeBug 的题库中,我们设置了上百道 Java 实战编程题目,技术面试官随时可以取用。
ShowMeBug 题库部分 Java 编程题
让我们来举例说明。对于初级工程师,如果想考察候选人是否掌握了 Java 语言的基础语言特性,可以用这道题:
如果将这道题放进 ShowMeBug 的在线编程环境,候选人都将看到这样一个界面:
ShowMeBug Java 岗位编程题
提交试卷后,ShowMeBug 将为这道带有测试用例的题目自动评分,候选人的答题过程将被全程记录,方便技术面试官进行后续复盘。
如果想考察候选人是否掌握了 SpringBoot 的基本使用以及事务,则可以用这道题:
对于中级工程师,如果想考察候选人是否掌握了 Java 的高级特性,则可以出这道题:
另外,想考察候选人是否掌握了 SpringBoot 的进阶知识,则可以用这道题目:
觉得这样的出题方式太费事儿?不用担心,技术面试官也可以直接使用 ShowMeBug 的智能组卷功能。只要选中岗位名称(Java 工程师)和岗位等级(初级/中级),系统将自动从岗位题库中抽取若干道题目,在 10 秒内完成组卷。
ShowMeBug 智能组卷
在试题的专业性上,ShowMeBug 进行了严格的把关。ShowMeBug 分析了上万个同一岗位的不同 JD,并为每个岗位建立起了科学的人才评估模型,然后以能力维度图的形式展示出来,所有题目都与人才评估模型相匹配,能够适配大多数企业对技术岗位的技能需求。
当然,技术面试官也可以根据企业的实际需要,拖拽每个能力维度上的滑块,题型的比例、考点的难度也会发生相应变化。
中级 Java 工程师能力维度图
通过含有实战性题目的技术测评环节,我们可以甄选出一批编程能力更优秀的候选人,并且根据题目的难度,对其技术水平进行大致定位。
如何通过面试进一步考核候选人?
完成技术测评后,ShowMeBug将一键生成岗位人才报告,企业可以查看该候选人的岗位能力维度雷达图,以此辅助判断该候选人是否可以通过技术测评,进入面试环节。
笔试报告中的候选人岗位能力维度雷达图
面试环节可以分为下面四个部分:
1.笔试回顾
假设候选人在笔试过程中未能答出 Java 基础语法特性这道题,面试官则可以先询问候选人对当时题目的理解,也可以直接引用 ShowMeBug 提供的结构化面试问题集,针对 Java 的其他简单语法特性来考察候选人的掌握情况。
结构化面试问题集支持将同一个编程语言下的考点按照主次层级排列,为技术面试官搭建起规范、完整、有逻辑的面试流程,加强面试沟通的广度与深度。
Java结构化面试问题集
2.考察相对于技术测评环节,更加进阶的编程技能
如果候选人在技术测评中在 SpringBoot 相关的题目上获得了高分 ,我们可以用下面这道题,深入考察候选人对 SpringBoot 的进阶特性是否了解:
3. 结合岗位需求,考察不通用的技术栈
比如,使用 ShowMeBug 提供的面试问题集,考核候选人对 Shell 的掌握程度。
4.项目经验 & 技术兴趣
如果想判断候选人是否有实际项目经验,可以要求候选人简述过往经手项目的核心逻辑,并在 ShowMeBug 提供的面试环境中进行功能实现,以此来判断候选人是否有简历造假的情况。
同时,可以结合候选人的简历,询问他们在过往项目经历中遇到的具体问题,当时采用的解决方案以及对这些方案的思考等问题,来更全面地了解候选人的编程思维。
另外,技术面试官也可以询问候选人过去或最近关于技术的学习规划和实施情况,以此来评估候选人是否对技术有足够的学习兴趣和能力。
通过上述的招聘流程,我们就能准确判断候选人对 Java 语言以及开发框架的掌握情况,并且考察到了其解决问题的能力。在下篇内容中,我们将继续为你分享更多后端岗位的招聘技巧,敬请期待!