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

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

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

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

还有很多朋友会将:能否写出好的代码质量、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://www.hqwc.cn/news/493110.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

并发编程基础

为什么开发中需要并发编程? 加快响应用户的时间使你的代码模块化、异步化、简单化充分利用CPU资源 基础概念 进程和线程 进程 我们常听说的应用程序,由指令和数据组成。当我们不运行应用程序时,这些应用程序就是放在磁盘上的二进制的代码…

matlab 线性四分之一车体模型

1、内容简介 略 57-可以交流、咨询、答疑 路面采用公式积分来获得,计算了车体位移、非悬架位移、动载荷等参数 2、内容说明 略 3、仿真分析 略 线性四分之一车体模型_哔哩哔哩_bilibili 4、参考论文 略

学算法要读《算法导论》吗?

大家好,我是 方圆。这篇文章是我学习算法的心得,希望它能够给一些将要学习算法且准备要读大部头算法书籍的朋友一些参考,节省一些时间,也为了给经典的“黑皮书”祛魅,我觉得这些书籍在大部分互联网从业者心中已经不再是…

网络安全与信创产业发展:构建数字时代的护城河

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua,在这里我会分享我的知识和经验。&#x…

猫头虎分享已解决Bug || 内存溢出:OutOfMemoryError: Java heap space

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

【一篇教程读懂Vray渲染器】3DMAX中玻璃酒杯Vray渲染教程

本教程试图用最简单的例子,给大家讲解在3DMAX中如何使用Vray渲染器进行渲染。 酒杯建模: 1.在前视图中用样条线画出酒杯的侧轮廓线。 2.应用“车削”修改器,完成杯子建模。 编辑材质: 3.将当前渲染器设置为Vray渲染器。 …

使用Docker部署MinIO并结合内网穿透实现远程访问本地数据

文章目录 前言1. Docker 部署MinIO2. 本地访问MinIO3. Linux安装Cpolar4. 配置MinIO公网地址5. 远程访问MinIO管理界面6. 固定MinIO公网地址 前言 MinIO是一个开源的对象存储服务器,可以在各种环境中运行,例如本地、Docker容器、Kubernetes集群等。它兼…

[计算机网络]--IP协议

前言 作者:小蜗牛向前冲 名言:我可以接受失败,但我不能接受放弃 如果觉的博主的文章还不错的话,还请点赞,收藏,关注👀支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 目录 一、IP协议…

Scikit-Learn逻辑回归

Scikit-Learn逻辑回归 1、逻辑回归概述1.1、逻辑回归1.2、逻辑回归的优缺点1.3、逻辑回归与线性回归 2、逻辑回归的原理2.1、逻辑回归的概念与原理2.2、逻辑回归的损失函数 3、 1、逻辑回归概述 1.1、逻辑回归 逻辑回归(Logistic Regression)主要解决二…

试一下newb,还是有错误呀

解题:原式= 2. 在递增的等比数列 ( a n ) (a_n) (an​)中,若 ( a 3 − a 1 5 2 ) (a_3 - a_1 \frac{5}{2}) (a3​−a1​25​), ( a 2 3 ) (a_2 3) (a2​3), 则公比 (q) A. ( 4 3 ) ( \frac{4}{3} ) (34​) B. ( 3 2 ) ( \frac{3}{2} …

【uniapp】uniapp开发的微信公众号,微信设置字体大小或者关怀模式,页面布局字体大小不受影响的解决方法:

文章目录 一、问题及效果:二、解决: 一、问题及效果: 二、解决: 在uniapp的app.vue的script标签内添加以下代码: (function(){//安卓端function handleFontSize () {// 设置网页字体为默认大小WeixinJSBridge.invoke…

第三百六十七回

文章目录 1. 概念介绍2. 方法与细节2.1 获取方法2.2 使用细节 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何获取当前系统语言"相关的内容,本章回中将介绍如何获取时间戳.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在本章…