李亚飞:什么是开发人员的工程能力?如何考察?

可以说工程能力是软件工程师最核心的能力,工程能力强的人工作效率往往很高,在动手之前就想清楚更多研发风险,也可以提出更多产品意见。

但到底什么是工程能力,该如何考察,是本文想跟大家探讨的内容。

知乎上关于【工程能力】有一个通用的行业定义我觉得很有道理:用系统化的方法,在保证质量的前提下,更高效率的为用户/客户持续交付有价值的软件或服务的能力。

还有很多朋友会将:能否写出好的代码质量、Debug能力、业务需求理解能力、解决冲突、可维护性、代码可重用性、自测意识等加入评估项。

这些似乎很有道理。但我有一句印象特别深刻的话—— Linus(Linux创始人)在 2000 年写了一篇邮件是关于内核调试器的看法,“我不喜欢调试器。从来没有喜欢过,可能将来也不会喜欢。” 没有人能否认 Linus 是最顶级的开发者。

优秀的开发者往往有以下的品质:重视自测、重视团队规范、重视代码可维护性。但并不是说把这几项做好的就是优秀的开发者。ShowMeBug 内部也曾经淘汰过一个代码很注重规范但效率很低的同学。

这几项品质是好品质,但也是可能通过一定的训练方式去改变个人的,所以这并非是工程能力的本质。(从招人来说,这几项确实是大大的加分项)

我的看法如下:工程能力是一种系统性解决问题的能力,在软件开发领域根本上是能够基于需求提出优秀代码和架构设计的能力,并能高效的、有质量的完成任务。

最为关键的是代码与架构设计的能力,例如体现在时序图、ER关系图、流程图、用例图等的设计上(但绝不是画得漂亮规范就是好的设计)。其次是开发质量与效率。代码结构设计清楚、类与模块分的良好、质量有保障、效率也高效。这就是真正的工程能力。

有人可能会问:那工程能力与架构能力有什么区别?

如果拿盖楼做比喻,架构是盖高楼大厦的力学结构设计。而工程能力是盖3层小洋楼的设计就可以了,但工程能力更强调高质量高效率完工,而架构能力不是特别强调这一点。

讲到这里,我突然想到去年大火的 OpenAI 还有近期的 Sora,就是科研能力与工程能力完美结合的产物。大家都知道很多科研学者并不注重工程能力,代码写到500行以上就开始失控。而 ChatGPT 正是在正确的科学模型指导下,超大规模的运用强有力的工程能力构建系统,训练出的大语言模式。工程能力在其中起到的作用至关重要。

如何在短时间对开发者进行工程能力考察成为了招对人的关键一环。代码质量、自测能力、代码规范、还有空间时间复杂度的考察都并非是本质。

ShowMeBug 团队认真研究了三年,基于完全自研强大的 IDE 引擎,最行之有效的核心方法就是抽象出一个合适难度的任务,给予候选人一定的时间,进行代码构思、类结构设计、数据库设计、或者前端页面布局设计。然后通过三种方式进行综合评估。

一是测试用例正确性:ShowMeBug 集成了所有语言最主流的测试用例,题目自动内置示例用例与隐藏用例。这是一个非常客观的针对正确性的评估。

在这里插入图片描述

二是 AI 驱动的智能打分:这里要充分应用一下 AGI 大模型的能力,我们会将用户写的代码传递给大模型针对代码设计、代码质量进行综合评分。

在这里插入图片描述

三是保底回放,ShowMeBug 会记录所有的用户行为,并记录回放数据,企业可以在必要的时候随时随地进行复盘分析。

在这里插入图片描述

ShowMeBug 的工程能力题目还有以下几个特点:

  1. 不偏科,不去预设一些冷门的需求,例如上传下载,加密解密,路径规划这种无意义的。

  2. 背景知识少,尽可通用。工作中常用的数据库设计、模块设计是最受欢迎。

  3. 控制时间,复杂度适中,不会出现要超过30分钟以上的设计问题。

总结来看,工程能力的判断核心就是是否能正确对问题建模,并给出较好的代码设计,再通过良好的代码质量与习惯将代码高效的实现,最后交付的过程。ShowMeBug 技术招聘平台专注于这些核心技能的评估,您可点击阅读原文,即刻注册体验ShowMeBug 技术招聘平台,还能免费获取 15 场技术测评与面试额度!

同时,ShowMeBug 特别推出“分享获场次”活动,旨在为技术招聘注入新活力,实现高效、便捷的成本优化。活动详情及规则详见下方海报。

在这里插入图片描述

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

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

相关文章

如何使用GAP-Burp-Extension扫描潜在的参数和节点

关于GAP-Burp-Extension GAP-Burp-Extension是一款功能强大的Burp扩展,该工具在getAllParams扩展的基础上进行了升级,该工具不仅可以帮助广大研究人员在安全审计过程中扫描潜在的参数,而且还可以搜索潜在的链接并使用这些参数进行测试&#…

基于Prony算法的系统参数辨识matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 Prony算法是一种用于信号处理和系统辨识的经典方法,特别适用于线性时不变系统(LTI)的频率响应分析以及模拟复指数信号序列。其…

异地组网什么原理?企业适合SDWAN异地组网吗?

深入解析异地组网及其对企业的影响 在数字化时代的洪流中,企业正经历着前所未有的变革。随着业务需求的多样化和全球化,传统的网络架构已无法满足现代企业的灵活性和效率要求。异地组网技术的兴起,特别是SD-WAN的应用,为企业提供…

【每周AI简讯】Stable Diffusion 3大版本更新

ChatGPT中文版AI7号 Stable Diffusion 3大版本更新 Stability AI发布了其最新的图像生成模型Stable Diffusion 3,旨在挑战Sora和Gemini。此版本采用创新架构,提高跨硬件系统的性能,需较大计算力。Stable Diffusion 3增加了“流匹配”技术&a…

SQL-Labs靶场“26-28”关通关教程

君衍. 一、二十六关 基于GET过滤空格以及注释报错注入1、源码分析2、绕过思路3、updatexml报错注入 二、二十六a关 基于GET过滤空格注释字符型注入1、源码分析2、绕过思路3、时间盲注 三、二十七关 基于union及select的过滤单引号注入1、源码分析2、绕过思路3、联合查询注入4、…

Java设计模式 | 七大原则之依赖倒转原则

依赖倒转原则(Dependence Inversion Principle) 基本介绍 高层模块不应该依赖低层模块,二者都应该依赖其抽象(接口/抽象类)抽象不应该依赖细节,细节应该依赖抽象依赖倒转(倒置)的…

ZYNQ Vivado更新硬件后SDK不更新问题解决办法

一、情况说明 软件版本 Vivado 2018.3 Vivado更新硬件导出后,按正常SDK会自动检测到hdf文件的变化跳出更新提示(如下图所示)。但是我的项目如果是复制的或者是长时间没打开的项目更新硬件配置导出后SDK无法自动更新。 二、解决办法 2.1 …

苏宁商品详情大揭秘:一键解锁API接口,电商数据尽在掌握

苏宁商品详情API接口技术深度探索 一、引言 在电商领域,获取商品详情是许多业务场景的基础需求。苏宁商品详情API接口为此提供了便捷的途径。本文将带你深入了解苏宁商品详情API接口的技术细节,帮助你更好地利用这一接口,提升业务效率。 二…

刷题日记 | 字符串扩容和增强型for循环

for(char c:s)遍历字符串 增强型for循环 C for(char c:s)遍历字符串 增强型for循环_c for (char c : s)-CSDN博客 字符串使用前要进行扩容 reserve函数 【CString类成员函数辨析】resize(),size(),capacity(),reserve()函数的解析与对比_c reserve函数-CSDN博客 a.size() 用来…

【已解决】解决Win11忘记开机密码(不用重装系统)

问题起因 因为在实验室的电脑从过年就没有用过,也不知道为什么记性这么差,就把电脑密码忘了,但是又不想用系统盘重装电脑。于是从网上整理一些文章,最后写了下面一篇解决方法 解决方法 1.首先在登录界面(输入密码那…

leetcode:46.全排列

1.什么是排列? 有顺序!! 2.树形结构: 使用used数组进行标记取过的元素,一个元素一个元素地进行取值,取完之后将used数组进行标记。 3.代码实现:(循环从i0开始,而不是…

转本考前如何调整心态

不少同学还在过年的氛围中还没走出来。 担忧自己成绩不进反退,又不知道该如何调整心态!这个时候小编就有几点小建议给到各位考生。 *心态*情绪 良好的考试心态是没有固定的心态,对不同学习情况的学生来说,良好的考试心态是不一…

如何优化一个看似正常的数据库

通常DBA是不会太了解业务逻辑的,遇到系统中劣质的sql 一般也是以通过添加索引的方式来优化,但是并不是所有的sql都能通过添加索引来优化 这就需要重sql的本身来做分析,另外还要了解什么样的语句会不走索引!本文通过几个简单的例子…

国创证券:60分钟底背离什么意思?

60分钟底违背指的是当股价60分钟k线图中股票走势一峰比一峰低,而macd技术目标图形上的由红柱构成的图形走势是一峰比一峰高。即股价成跌落趋势时,技术目标呈上升利好,表示跌落动能削弱,股价或许迎来回转。 K线是由一段时间内的开…

4.4 MySQL存储

目录 1、使用前提 2、使用连接数据库最初步骤 2.1 最初步骤 2.2 connect()方法中参数简单传递 3、创建数据库(创建架构)和创建表 3.1 创建数据库(创建架构) 3.2 创建表 3.2.1 基本创建 3.2.2 创建自增主键 4、Pycharm 可视化连接 MySQL 图形界面 5、插入、更新、查询…

*ctf 2019 oob

diff文件如下 diff --git a/src/bootstrapper.cc b/src/bootstrapper.cc index b027d36..ef1002f 100644 --- a/src/bootstrapper.ccb/src/bootstrapper.cc-1668,6 1668,8 void Genesis::InitializeGlobal(Handle<JSGlobalObject> global_object,Builtins::kArrayProto…

信号完整性分析基本概念

“设计师可以分成两类&#xff0c;一类已经遇到了信号完整性问题&#xff0c;另一类即将遇到信号完不整性问题” 随着时钟频率的提高&#xff0c;发现并解决信号完整性问题成为产品开发的关键。因此需要精通信号完整性分析技术&#xff0c;并能采取高效设计过程以消除这些问题…

SD-WAN案例:总部(MPLS)与分支(普通宽带)的互联互通

某制造业企业面临着总部采用MPLS专线而分支机构使用普通宽带的网络互联挑战。这种情况下&#xff0c;如何降低网络成本&#xff0c;提高网络效率成为当前亟需解决的问题。本文将介绍该企业如何通过部署SD-WAN实现互联互通。 网络痛点及需求分析&#xff1a; 该企业主要痛点包括…

【Vue3】插槽使用和animate使用

插槽使用 插槽slot匿名插槽具名插槽插槽作用域简写 动态插槽transition动画组件自定义过渡class类名如何使用animate动画库组件动画生命周期appear transition- group过渡列表 插槽slot 插槽就是子组件中提供给父组件使用的一个占位符父组件可以在这个占位符智能填充任何模板代…

数字化转型导师坚鹏:省级政府数字化转型案例研究

省级政府数字化转型案例研究 课程背景&#xff1a; 很多省级政府存在以下问题&#xff1a; 不清楚省级政府数字化转型的政务服务类成功案例 不清楚省级政府数字化转型的社会管理类成功案例 不清楚省级政府数字化转型的数字机关类成功案例 不清楚省级政府数字化转型的…