首页 > 其他分享 >李亚飞:什么是开发人员的工程能力?如何考察?

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

时间:2024-02-26 16:16:18浏览次数:24  
标签:工程 开发人员 代码 李亚飞 能力 考察 开发者 设计 ShowMeBug

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

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


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


还有很多朋友会将:能否写出好的代码质量、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
From: https://www.cnblogs.com/0915yb/p/18034568

相关文章

  • 【软件开发工具】——JetBrains,上海道宁为您带来软件开发人员和团队的必备工具——Jet
     在软件开发的工作中工具的选择往往决定了编程效率和质量JetBrains是业界知名的开发工具提供商以其出色的性能和丰富的功能赢得了全球开发者的信赖无论您的团队规模如何其产品都能确保您在构建代码、规划工作或协作时始终获得流畅而愉快的体验无论您使用哪种平台......
  • 【译】我为 .NET 开发人员准备的 2023 年 Visual Studio 10 大新功能
    原文|JamesMontemagno翻译|郑子铭VisualStudio2022在2023年发布了许多令人难以置信的功能,为.NET开发人员提供了大量新工具来提高他们的工作效率。有这么多可供选择,我精心挑选了一个包括编辑器改进、生产力更新和人工智能辅助的选项。让我们来探讨一些最有影响力的功......
  • bcdedit是Windows操作系统中的一个命令行工具,用于查看和修改启动配置数据(BCD)。启动配
    bcdedit是什么bcdedit是Windows操作系统中的一个命令行工具,用于查看和修改启动配置数据(BCD)。启动配置数据存储重要的启动信息,包括启动加载程序和启动设置。这个工具主要由高级用户、系统管理员和开发人员使用,以调整与系统启动相关的各种参数。为什么使用bcdedit修改启动设置......
  • 解决 Chrome 120 开发人员工具 无法粘贴代码
    解决Chrome120开发人员工具无法粘贴代码开发人员工具的新功能(Chrome120)https://developer.chrome.com/blog/new-in-devtools-120?hl=zh-cn【状况】:新增Self-XSS保护警告无法顺利无法在开发人员工具(DevTools)console贴上代码正常应该要跳出提示窗口但目前wind......
  • .NetCore开发人员首选框架---Bridge(Abp-VNext + Vue3)
    bridge系统是基于Abp-VNext+Vue3开发的一套前后端分离的通用权限管理系统,不论是单体服务,还是微服务都可在此基础上自由扩展,此框架组合可以说是集成了.netcore在BS架构领域最前沿的技术,框架简介如下:##......
  • 嵌入式软件开发人员有必要学习系统移植的知识吗?【ppt获取见文末】
    《从零开始学ARM》的配套视频说明为了让粉丝更好的学习我的新书里面的知识,一口君特地录制了配套学习视频,《从0学ARM第一期》《从0学ARM第一期》视频已经免费发布在B站,而书中除了ARM汇编、裸机开发等知识,还涉及到系统移植的一些知识点所以一口君干脆录制了一期《系统移植......
  • Ios苹果开发人员已从app应用程序移除怎么恢复
    Hello亲爱的朋友们大家好!我是咕噜的铁蛋!我经常与各种开发者和用户交流,探讨关于苹果设备和应用的问题。最近,我发现许多开发人员都遇到了一个问题:他们的应用程序被苹果从AppStore中移除了。这对于开发者来说无疑是一个巨大的打击,因为他们花费了大量的时间和精力来开发这些应用程序,并......
  • WSO2是一个开源的API管理平台,它提供了一套完整的解决方案,用于设计和发布API,创建和管理
    WSO2是一个开源的API管理平台,它提供了一套完整的解决方案,用于设计和发布API,创建和管理开发人员社区,以及以可扩展的方式保护和路由API流量¹。它利用来自WSO2平台的成熟组件来保护,集成和管理API¹。此外,它还与WSO2分析平台集成,提供现成的报告和警报,让您即时了解API行为¹。WSO2API......
  • 使用 Amazon CodeCatalyst 中的生成式 AI 助手 Amazon Q 提高开发人员的工作效率(预览
    今天,我很荣幸能够向各位介绍 AmazonCodeCatalyst中可用的新型生成式AI助手 AmazonQ,主要用于加速软件分发。加速软件功能开发–AmazonQ的这项功能开发技术可以帮助您快速地完成软件开发任务,例如添加注释和README、优化问题描述、生成小类和单元测试以及更新CodeCata......
  • 上海市徐汇区市监局党组副书记、副局长曾鸣一行莅临亚数考察交流
    近日,徐汇区市场监管管理局党组副书记、副局长曾鸣,知识产权发展促进科科长蔡磊,知识产权保护科科长陆文姬一行莅临亚数信息科技(上海)有限公司(以下简称亚数)考察交流。在交流会上,亚数向与会领导重点介绍了亚数在知识产权运营方面的工作,就知识产权管理、专利、商标等领域的工作及未来规划......