怎么实现技术评卷时间0投入的?(下)

news2025/1/17 8:54:08

01 痛苦的编程题评卷

试想如下一个场景:

“技术面试官Arron 的企业要招聘Java 后端工程师,考核 SpringBoot 框架和 MyBatis 这两个后端开发的必备技能。而他要负责评审多份候选人的编程题试卷,题目是要求使用SpringBoot 和MyBatis实现一个购物车结算功能。

Arron 经常跟另个一个面试官对代码打分产生分歧。

比如一位候选人使用SpringBoot编写了购物车控制器,实现了加入购物车和结算请求的API。他使用MyBatis调用存储过程,完成了库存扣减等逻辑。代码整洁,测试用例完整,另一位面试官称赞了他的SpringBoot应用结构。

但是Arron评审时发现,他直接在控制器中写了业务逻辑,没有遵循MVC分层的架构设计原则,导致可维护性较差,这点另一个面试官却不太在意。

Arron已花费大量时间对代码进行逐行评审,他除了测试用例完整与否,还会在可维护性与解题思路等多方面进行考察。

时间离截止只有两小时,他与另一个面试官依旧争执不下,难以达成共识,编程题评审的复杂性让Arron倍感压力…”

以上技术招聘的场景,反映出了Arron 面临的什么问题呢?

02 编程题的作用以及评卷困境

要回答这个问题,先要了解企业使用编程题进行技术测评的原因。正如Linux的创始人Linus Torvalds 所说:“Talk is cheap,show me the code”。相对于选择题、问答题,编程题最能直观展示候选人在实际工作环境下的编程能力。

但企业对编程题进行评卷时,往往面临如下三大麻烦:

一、评审耗时费力

正如Arron所遇到的,当侯选人的测试用例完整通过,但企业仍想深入考察其他方面的代码能力;又或者测试用例没通过,企业还是想深入了解他的代码出了什么问题,这些都需要Arron逐行反复审阅代码,耗费他巨大的时间与精力。

在这里插入图片描述

评审一位候选人所花时间可能平均需要几十分钟不等,更何况还不止一位候选人,可见评卷工作对Arron 来说确实是件苦差事。

二、评审维度单一

有的企业会出于提升效率的考虑,仅以简单的OJ 系统评价候选人代码是否通过测试用例,并不会进一步考核代码的其他方面,该评审方式可能更适用于海量候选人情况下的初步粗略筛选。

但若想进行更加精准的招聘,则需要考核候选人是否有真正的解决问题的能力,那么在技术测评中候选人的代码除了“能跑通”外,其他维度也极为重要,这也是Arron 如此费心考核候选人代码的原因。

根据知名技术问答网站 Stack Overflow 针对8万名开发者的调研显示,他们觉得除了代码的“正确性”与“功能性”外,代码的“可读性”、“可维护性”、“可拓展性”、“安全性”、“代码规范”、“开发效率”等维度的重要性也名列前茅。

三、评审受主观偏差影响

但即便企业建立了更多的评分维度,也会由于面试官对不同维度的重视程度不同,而产生像Arron跟别的面试官之间,难以达成一致的问题。

国外一份发表于ESEM研究调查了127名来自17家公司的开发者,考察他们在代码审查时关注的维度。结果显示,开发者关注的维度因其岗位、工作经验和项目而异。例如,高级开发者比初级开发者更注重代码设计和可维护性,嵌入式系统开发者比web应用开发者更重视可测试性。

由以上三点可知,要解决编程题评卷的麻烦,需要建立自动化方式以节省时间,并且建立客观全面的评价体系,而且同时还要尽量避免人为主观偏好所产生的偏差。

那有什么方法可以实现呢?

03 编程题AI评分——全面、自动、高效、客观的评价体系

AI 的出现带来了破局之道。其依据算法所建立的标判断准,以及全自动化流程,很合适搭建编程题评卷机制。ShowMeBug 也深知AI 的巨大意义,并实现了独有的编程题AI评分功能,使用AI建立起了全自动化、高可靠性的评分体系,并在其中体现出了三大功能价值:

第一,该功能可对候选人的编程题答案进行自动化评分,在数秒内即可完成几十分钟甚至数小时的代码评卷工作,并给出相应分数,让评卷投入的时间与精力成本降至为0。

第二,针对候选人代码,ShowMeBug 还依据实际工作场景中的代码测试方法,设计了五大考核维度,分别为:

代码正确性:评估候选人是否能够按要求,编写出测试用例正确通过的代码,反映了候选人的基本编程水平和语言掌握程度。

解题思路:评估候选人是否能够理解问题,提出合理的方案,并将其转化为代码。反映了候选人的需求梳理和问题解决能力,以及创新性思维。

代码设计:评估候选人是否具备良好的代码组织和模块化能力,提高代码的可读性、可拓展性和可维护性。

代码质量:评估候选人能否遵循良好的编程规范和最佳实践,编写清晰、简洁、可理解的代码。

答题效率:评估候选人在解决问题时所花费的时间和资源,反映了候选人的工作效率和应对复杂问题的能力。

第三,该功能还设计了“宽松/严格”两种模式,供企业基于自身不同招聘需求来作调整。具体体现为:

“严格模式”下,一旦候选人测试用例没有通过,则这道题便会判为0分,可适用于企业面临海量候选人时,进行初级的大规模筛选;

“宽松模式”下,不仅只考核测试用例是否通过,系统还会根据解题思路、代码设计与质量等维度进行打分,可适应企业更精细化的针对岗位与实际工作能力的招聘需求,对候选人的技术能力进行多面向,与更深入的考察。

通过这些功能与价值,企业可极大提高评卷效率,提供更为客观、全面、公正的评分依据,减少评卷时主观分歧的影响,助力企业高效精准地甄选人才。

多说无益,不妨再以Arron 为例:

Arron 的企业继续招聘Python 后端开发工程师,并考察该候选人的的字符串处理和正则表达式能力。题目内容为:候选人需要实现一个函数,该函数接收一个字符串作为输入,然后将字符串进行分词,并生成对应的标记列表。

这次Arron 便可登陆ShowMeBug,在“考试大厅”的“考场设置”并中对试卷进行编辑,找到评分规则设置并打开“智能评分”。由于Arron 并非只看重测试用例的完整性,他可以选择宽松模式,除了测试用例以外,他还可对候选人代码的其他维度进行深入考察。

在这里插入图片描述

设置好后,Arron 便可邀请候选人进行测评,候选人进入测评界面后编写代码,完成后便可提交试卷。

在这里插入图片描述

提交试卷后的数秒钟后内,AI 便能自动完成对代码的评分。之后Arron 便可进入评卷界面,查看AI 所给出的分数。

在这里插入图片描述

点击“AI”标志,还能看到AI 会根据设置好的五大维度,对代码进行每个维度的评分,并且依次给出评分理由。可以看到,该候选人的代码全部通过了测试用例,但在“解题思路”、“代码设计与“代码质量”等维度还有进一步优化的空间。

在这里插入图片描述

Arron 可以此作为依据,不仅能系统性全面了解该候选人的代码是否能符合实际工作场景的需求,还能深入了解他的解题思路,以及对他的代码设计、质量与解题效率,提供一个客观的参考标准。

当然,Arron 也可根据自己的专业判断和经验,在AI 评分旁作出适当的调整。

在这里插入图片描述

评卷完成后,Arron 还能一键生成人才报告,发予其他面试官查看,并就AI 的评分共同进行探讨,进一步减少主观偏差的影响。

在这里插入图片描述

通过ShowMeBug 编程题AI智能评分,Arron 便无须再逐行评审代码,而且能以AI自动化方式,帮他节省海量的评卷工作量;也能让他与其他技术面试官拥有了一个全面客观的标准,规避彼此之间主观分歧与偏好所产生的差异,更容易对所评分数达成一致的共识;并最终深入考察候选人实际的工作能力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/926417.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python VTK PyQt5 VTK环境搭建 创建 渲染窗口及三维模型,包含 三维模型交互;

目录 Part1. VTK 介绍 Part2. PyQt5 VTK环境搭建 安装Anaconda 自带Python Anaconda下载 安装PyQt5 安装 VTK Part3 :PyQt VTK 结合样例: Part1. VTK 介绍 VTK(visualization toolkit)是一个开源的免费软件系统,主要用于三维计算机图形…

All In One!Meta发布SeamlessM4T,支持100种语言,35种语音、开源、在线体验!

多语言识别翻译的研究一直都是学术界研究的重点。目前全球有几千种语言,在全球化背景下不同语言人群之间的交流越来越密切,然而学习一门外语的成本是非常大的。前两年的研究主要集中在一对一、一对多的研究,然而当面对这么多的语言时&#xf…

windows系统服务器在不解锁屏幕不输入密码的前提下,电脑通电开机启动程序。

在控制面板中找到“管理工具”中的 “任务计划程序”,打开“任务计划程序”窗口。如图: 双击打开任务计划程序,空白出右键创建基本任务,或者点击最右侧的创建基本任务。 输入名称,点击下一步。 先选择计算机启动时&a…

二维数组和二维数组指针做函数参数

二维数组形参定义&#xff1a;char (*p)[3]&#xff1b; 二维数组指针形参定义&#xff1a;char (*p)[][3]&#xff1b; 例程&#xff1a; #include <stdio.h> #include <stdlib.h> #include <string.h> int myPrintf4(char (*p)[3],int *dep,int * len){…

分布式事务(6):基于LCN框架解决分布式事务

1 LCN简介 LCN官网 https://www.txlcn.org/ "LCN并不生产事务&#xff0c;LCN只是本地事务的搬运工" 兼容 dubbo、springcloud、motan 框架&#xff0c;支持各种关系型数据库 2 LCN框架底层实现原理 https://github.com/codingapi/tx-lcn/wiki/LCN%E5%8E%9F%E7%9…

AMBA_AXI Protocol Introduction

AXI Protocol Introduction 1. AXI协议特性 2. AXI协议关键特性 3. AXI 协议结构 4. Interface and interconnect 5. Register slicesAMBA AXI协议为主机与从机组件之间的通信提供高性能&#xff0c;高频系统设计 1. AXI协议特性 适用于高带宽&#xff0c;低延迟设计不使用复…

在VScode中执行npm、yarn命令报错解

在VScode中执行npm、yarn命令报错解 我使用的是vnm安装好npm&#xff0c;在WindowsR 界面是可以运行查看出版本的&#xff1b;但是在VScode中报错。 查了很多资料&#xff0c;我这种情况的原因是在VScode中默认使用的终端是Powershell&#xff0c;然后我切换到系统的cmd则可以…

NO.01 如何在Spring配置文件中获取Bean

目录 1、前言 1.1 IOC容器在Spring中的实现 1.2 ApplicationContext的主要实现类 2、工作准备 2.1 创建Module工程配置以来信息 2.2 创建bean所对应的类 2.3 创建Spring的配置文件&#xff0c;命名为applicationContext 3、从IOC容器中获取Bean 3.1 根据id获取bean 3.…

由JDK bug引发的线上OOM

由JDK bug引发的线上OOM 最近生产环境的一个应用忽然发生了OOM&#xff0c;还好是业务低峰期&#xff0c;没有导致什么严重问题&#xff0c;下面记录下本次排查的过程&#xff1b; 故障临时处理 在某天下午&#xff0c;正在愉快的写代码时&#xff0c;忽然看到业务反馈支付服…

嵌入式Linux人脸检测libfacedetection

人脸检测 此库依赖Opencv&#xff0c;所以首先要移植Opencv到板子上。 笔者使用LVGL搭建了一个界面&#xff0c;界面有些卡顿&#xff08;主要原因是文件存取较慢&#xff09;&#xff0c;演示效果如下&#xff1a; OpenCV 首先要交叉编译Opencv 参考&#xff1a;https://…

燃气管网监测系统,24小时守护燃气安全

随着社会的发展和人民生活水平的提高&#xff0c;燃气逐渐成为人们日常生活和工作中不可或缺的一部分。然而&#xff0c;近年来&#xff0c;屡屡发生的燃气爆炸问题&#xff0c;也让人们不禁对燃气的安全性产生了担忧。因此&#xff0c;建立一个高效、实时、准确的燃气管网监测…

光谱响应函数概念与等效遥感反射率的计算

本期干货来介绍一下遥感领域非常重要的一个概念——光谱响应函数。 人眼内部存在三种视锥细胞&#xff08;L、M、S&#xff09;&#xff0c;对不同波段的光有不同的敏感度&#xff0c;三种视锥细胞信号的复合构成了我们眼中五彩斑斓的世界。如下图所示&#xff0c;以菠菜&#…

抖音短视频seo矩阵系统源代码技术开发方案分享

一、 功能结构设计 1. 视频管理&#xff1a;对于不同平台&#xff0c;不同账号&#xff0c;不同格式&#xff0c;不同内容短视频进行管理&#xff0c;素材分组等&#xff0c;实现多资源数据汇和统一管理 2. 数据挖掘分析&#xff1a;通过数据挖掘和数据分析&#xff0c;提供数…

leetcode 17.电话号码字母组合

⭐️ 题目描述 &#x1f31f; leetcode链接&#xff1a;https://leetcode.cn/problems/letter-combinations-of-a-phone-number/description/ 代码&#xff1a; class Solution { public:const char * letterCombine(int i) {static const char *letter[] { "" , …

Nexus3下载使用

下载 Nexus 3 1. 进入 Nexus 3.x 下载页面&#xff08;目前最新版是 3.59.0-01&#xff09;&#xff0c;根据操作选择相应的版本进行下载。 2. 将下载的安装包解压到本地&#xff0c;可获得 nexus-3.59.0-01 和 sonatype-work 两个目录 其中&#xff1a; nexus-3.59.0-01&…

PE输入表DLL注入

PE输入表DLL注入 一.实现效果 启动notepad.exe时能够加载自己编写的dll. 最终效果如图所示 下面逐步讲解并附带源码 二.编写DLL 自行编写DLL,导出一个函数,弹出对话框 // MsgDLL66.cpp : Defines the entry point for the DLL application. //#include "stdafx.h"…

Zoho CRM有哪些优势?

CRM能帮助企业管理客户信息、跟进销售机会、提高客户转化&#xff0c;显著提升企业的竞争力&#xff0c;是企业发展的重要工具。市场上有很多CRM品牌&#xff0c;企业该如何选型&#xff1f;这里给大家分享一个不错的CRM品牌 Zoho CRM有哪些优势&#xff1f; 功能全面&#x…

jQuery-使用、选择器、属性、样式、文档、循环等操作

jQuery jQuery简介 jQuery是一个快速、简洁的JavaScript框架&#xff0c;是继Prototype之后又一个优秀的JavaScript代码库&#xff08;框架&#xff09;于2006年1月由[John Resig](https://baike.baidu.com/item/John Resig/6336344?fromModulelemma_inlink)发布。jQuery设计…

Docker安装ES+kibana8.9.1

参考&#xff1a;基于Docker安装Elasticsearch【保姆级教程、内含图解】_docker elasticsearch_Acloasia的博客-CSDN博客 创建网络 docker network create es-net 基于Docker安装Elasticsearch 拉取镜像 docker pull elasticsearch:8.9.1 挂载文件 mkdir -p /usr/local/e…

vue使用vant中的popup层,在popup层中加搜索功能后,input框获取焦点 ios机型的软键盘不会将popup顶起来的问题

1.使用vant的popup弹出层做了一个piker的选择器,用户需要在此基础上增加筛选功能。也就是输入框 2.可是在ios机型中,input框在获取焦点以后,ios的软键盘弹起会遮盖住我们的popup层,导致体验不是很好 3.在大佬的解答及帮助下,采用窗口滚动的方式解决此方法 <Popupv-model&q…