最好的开发人员是培养出来,而非买来的

wisdom:通过指定成功标准来培养更好的开发人员 智慧项目 我经常看到Web开发人员在努力变得更好,但是却没有任何道路或任何明确方向的迹象。 此存储库是尝试分享我的经验以及任何有助于提供此类指导的贡献。 目标 该存储库的目的是为Web开发人员提供一些结构和教育指导,以便他们可以按照自己的步调获得摇滚明星的身份。 问题 许多开发人员希望获得摇滚明星的身份,但不知道如何到达那里。 以我的经验,这并不是要成为一个更好的编码器。 我经常看到开发人员在努力满足如何编写代码的问题。 那仅仅是开始。 Rockstar开发人员不会专心致志地成为更好的编码人员。 如果您所能做的仅仅是写代码,那么您有多出色就无关紧要,因为您当然不是摇滚明星开发人员。 解决方案 Rockstar开发人员通过提供更好的解决方案来达到自己的地位。 当开发商挣扎所有的关于如何编写代码,他们松散的什么更重要的是,为什么写的焦点能量。 根据我的经验,我发现通过对与Web技术相关的主题 立即下载
认真考虑一下,得到最有天赋的项目开发人员的最佳方法是培养,而非购买。

  在阅读有关敏捷开发的材料时,我发现,无论是传统的软件开发技术,还是敏捷方法,都要高度依赖熟练的开发人员才能确保成功。这一事实让我触动。由于许多因素的影响,具有相似经历的开发人员的表现水平却相差很大,这点已为人们所接受;所以人们对优秀的开发人员比较关注也就不足为奇了。尽管如此,一个或一小群开发人员,利用“英雄模式”开发,通过他们的奉献精神与坚韧毅力,还是完成了许多开发工作。

  很明显,我们需要优秀的开发人员。但问题是,到哪去找优秀的开发人员呢?

  十几年来我一直参与招聘工作,我可以毫不迟疑地告诉你:有可能找到最优秀的开发人员,但是可能性不大。这不是一件容易的事,即使读完一千份简历,可能也只能找到一两个真正优秀的开发人员。

  认真考虑一下,你会发现,只有通过培养,而不是购买,才能得到最优秀的开发人员。

  什么造就最优秀的开发人员?

  关于是什么造就最优秀的开发人员,大家持不同的看法。不管是敏捷还是传统的开发技巧都需要开发人员拥有稍异于人的东西。但是,无论开发人员应用哪种技巧,这都归结为一个词:思考。

  位于Bloom认知技能教育目标分类最底层的是知识。即回想(或识别)数据与信息。应用在开发方面,这就意味着识别C#语法或回想出执行循环的正确语法。

  位于认知分类最顶层的是综合与评估。综合指能够合成不同的因素以形成全新的解决方案。而评估是指对观念、方法或材料做出判断的能力。在工作过程中,开发人员需要不断地应用这些高层次的认知能力。

  许多人认为,与描述认知过程的差异相比,将这一观念表达为思考更为自然。通常,对高层次的观念(例如如何综合片段来形成解决方案)所做的思考越多,开发人员就更优秀。

  海底捞针

  在完全放弃招聘(购买)最优秀的开发人员之前,我们先通过检验专业技能来了解一下招聘过程。我例行公事地对应聘开发职位的候选人进行了一次口头测试。由于我面试的大多数开发人员需要能够熟练地操作数据库,我问他们一个简单的问题:

  给你一个带客户id域与名称的客户表,以及一个带序号id,客户id与其它细节的序号索引表,用什么查询可返回不带序号的客户表?

  此问题的答案需要应用外部连接(outer join)知识。(在SQL-87语法中,你可以应用*=,但这一答案正日益少见。)我的非正式统计表明,答对此问题的人数在10%以下。平均来说,我面试的开发人员拥有大专学历,有1到2年的工作经验。但是,据我的观察,多年的工作经验与他们是否答对此问题关系不大。

  对我而言,无力回答此问题表明开发人员并不完全了解SQL所要求的以集合为基础的逻辑方式。我认为这是一个优秀开发人员的基本技能。

  另一个问题更有趣,因为它没有正确答案:

  你最喜欢微软.NET中的哪项功能?

  明显地,你可以在这个问题中插入任何技术。问题的答案可以清楚地告诉你开发人员的思考方向。如果它告诉我是IntelliSense(帮助你记忆对象与方法界面的Visual Studio功能),我就知道他们主要关心如何将代码加入编辑器,这并不是优秀开发人员的思考方式。顺便说一下,如果他们给出那个答案,他们可获得“加击”。(另一击?即“你还喜欢哪项功能?”)

  我在寻找一类表明他们正在思考文本编辑框以外的事情的答案。我在寻找这样的答案:“因为运行时间类型的信息,可编写灵活代码的能力。”这样的答案表明他们对工作进行了深入思考,这是成为最优秀的开发人员的基本条件。

  “你最不喜欢什么?”这个问题同样富于启示。“忘记C#中的分号”这样的答案让我怀疑候选开发人员是否达到正确的思考层次。“无力有效应用垃圾收集器”这样的答案表明他们既不了解平台的需要,也缺乏处理复杂问题的经验。

  问题“你最喜欢/不喜欢什么?”的回答比SQL问题的回答要好得多,但仍然并不乐观。参加面试的开发人员,超过70%回答的是琐碎的问题,其它10%左右的答案表明他们要么编码的水平不高,要么缺乏高层次的思考。

  最终的结果表明,要找到最优秀的开发人员几乎是不可能的事情。实际上,我也可能只招聘到2到3个可称之为最佳开发人员的人。

  培养优秀的开发人员

  找到有潜质,即好奇心强、个性好学的开发人员要更容易一些。这些开发人员确实希望在自己与他人的生活中发挥重要的作用。他们可能并不了解关系数据库,但他们乐于学习。他们带来学习的热情,让周围的人充满活力。

  在许多机构,这种热情却以服从的名义受到压制。“我们一样那样做”的心态打消了任何改善状况的尝试。因此,开发人员常常感到困惑。因为组织一方面声明希望组建世界级的开发团队(每个组织都希望拥有这样的团队);另一方面,他们又不愿意做出变革。

  但是,我们可以采取行动,以保证新开发人员的干劲与期望不会受到压制。以下是我就培养优秀开发人员提出的一些建议:

  指导:指定一个导师来帮助开发人员。这个人必须是一个资深开发人员,开发权威或关心团队和进程改善、乐于助人的构架师。这个人不应是开发人员的直接领导或经理(如果可能的话)。指导交谈应该以开发人员,而不是组织的需求为中心。

  代码审查:代码审查是提高开发能力的有效手段。但很多组织却极少这样做。另外,人们很少把它当作是学习机会,而把它当作贬低开发人员的时机。请进行代码审查,把它当作培训与教育,而非压制的手段。

  渐进体验:向开发人员提供增量分配来鼓励他们不断成长。由于我们无法控制将来的项目,这可能是最难以执行的方法。但是,提供尽可能多的渐进分配结构将会取得长期回报。

  学习挑战:除了渐进分配以外,还要找出其它方式激励开发人员学习尽可能多的知识,即使这些知识不能立即起作用。例如,如果你有一家网络开发商店,鼓励开发人员学习智能客户(Smart Client)技术,以帮助开发人员养成学习习惯。

  内部培养

  尽管你想为下一个项目找到优秀的开发人员,但优秀的开发人员并不容易找到。项目的成功主要还是依靠现在团队里的开发人员。他们越优秀,你成功的机会就越大。找到技术熟练的可靠人才来完成你的需求肯定会很困难。自己培养开发人员,是获得你所需要的开发人员唯一现实的方法。

网安保研避坑指南:中科院信工所各研究室真实体验与导师选择建议 本文为中科院信工所网络安全保研生提供深度指南,详细解析了信工所六个研究室的研究方向、真实氛围与导师选择策略。文章特别强调,选择导师是决定研究生体验的关键,并提供了针对各研究室的避坑建议与实战调研方法,帮助学生做出明智选择。 阅读详情

相关推荐

基于 VS Code + CMake + Make + GNU工具链 + OpenOCD 的通用MCU开发环境搭建教程

以CH32V307(RISCV)和STM32F103(Cortex-M3)为例的Vscode+gnu单片机环境搭建。

余十三_的博客 2176

敏捷开发的人力资源管理: 如何培养敏捷团队成员

1.背景介绍 敏捷开发是一种软件开发方法,主要关注于团队、人员和过程的灵活性。敏捷开发的核心理念是通过持续地交付最小可行产品(MVP)来满足客户的需求,以实现软件开发的快速迭代和高质量。敏捷开发的主要特点是短周期的迭代、高度的团队协作、强调面向人的交流和沟通、以及对客户的需求的持续反馈。 在敏捷开发中,人力资源管理是一个非常重要的环节。敏捷团队的成员需要具备高度的技能、专业知识和团队协作能力。...

AI天才研究院 900

EBOM转MBOM实战:华为云数字工厂如何5步搞定BOM自动转换(含避坑指南)

本文详细解析了华为云数字工厂平台如何通过五步自动化流程实现EBOM到MBOM的高效转换,涵盖模型预配置、逻辑流编排、工艺属性注入等关键步骤,并提供了多工厂差异化配置、历史数据迁移等典型场景的避坑指南。该方案显著提升转换效率,降低差错率,助力企业实现数字化转型。

weixin_29215391的博客 269

开发人员应该培养的6种技能,以使工作有趣

日复一日地编写代码很容易让人感到无聊。 当您不是从头开始构建新应用程序,而是在编写错误修复程序和较小的增强功能时,尤其如此。 开发人员应挑战自己并培养技能,以使他们的工作变得有趣,并激发他们每天早晨起床。 要继续享受软件职业,您应该从事以下六项技能。 1.建立技术技能 每个开发人员职业的核心必须是扎实的技术技能。 为了获得新的机会,它们也必须是当前的技术技能。 您通常不会在工作中接受这种培训...

IT与开发人员的地盘 688

逆向CarPlay协议时,除了USB主从切换,你还需要注意这3个关键点

本文深入探讨逆向CarPlay协议时的3个关键点,包括MFi协议背景、多通道协同工作机制和协议分析工具的高级过滤技巧。特别解析了USB主从切换后的复杂交互过程,帮助安全研究员和逆向工程师更好地理解CarPlay协议的核心机制与潜在安全研究切入点。

weixin_29164497的博客 382

本地部署大模型框架 LMStudio和Ollama+WebUI对比

之前我们的辣妈系列文章介绍了很多如何使用Ollama框架+OpenWebUI做很多大模型框架下相关的事情。之后我们也尝试了LMStudio这样一体化的工具。本文介绍下LMStudio 和 Ollama+Web UI 各有优劣,具体选择取决于你的需求。

ms44的专栏 4028

小型软件开发团队如何培养人才

不少软件公司每年都有新的开发人员加入,如何让这些新人员快速融入开发团队快速成长起来?这是一个管理上的问题,就我在一个小型开发团队做负责人的经历谈谈我的看法。如何培养人才,也就是如何通过内部人员技能提升的方式来提升项目的开发效率。其本质解决的问题是如何高效的通过人才培养来提高开发效率。因为小公司没有那个精力和能力建立健全的培训体系,所以就需要在工作中引导式的提升员工工作能力。主要分为管理者自身能力和新人(并非新入职而是成长中的员工)能力培养两方面 管理者 分工合理 培养新人是为了通过人才培养的方式提升项

u011512223的专栏 1718

python——模拟砍价

类型:随机数。

m0_62488776的博客 1971

研发部的人员素质要求及自我培养

纵观世界经济发展,信息化已成为全球化的迫切需要和必要保证.,由此可见,IT行业极具发展前景。本篇文章针对研发人员的素质要求及自我培养进行系统讲述。

数通畅联 6173

affymatrix探针转换 | GPL5175探针对应的基因转换

一般情况下,有一些比较成熟的对应平台的注释数据集的R包。但是这个注释平台,我在Bioconductor上找了一圈都没有找到。只能通过最原始也最可靠的方法,从GEO数据集上去下载这部分的注释文件。以下展示全过程。 我要检查的数据平台是:GPL5157。 数据集的注释集链接为:https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GPL5175 这个注释数据集比较难弄的地方在于,它的基因集注释的不太好。没有比较直接的可供提取的genesample的信息;在ge.

weixin_40640700的博客 7124

Codex 100个真实案例 - 用AI生成Blender 3D建模脚本(建模师要失业了?)

本案例将展示如何用 Codex 生成 Blender Python API(bpy)脚本,自动创建完整的 3D 模型。我们将从基础几何体开始,逐步实现布尔运算、材质设置、光照配置,最终完成一张精美桌子的 3D 建模——包括桌面、桌腿、倒角、木纹材质。还会实现参数化批量生成不同风格的桌子、渲染输出 PNG 图片、以及 360 度旋转动画。全程用自然语言驱动 Codex,让建模从"点鼠标"变成"说人话"!

yueyeguzhuo的专栏 632

[译]优秀的开发人员是培养出来的,不是招聘过来的

译者:baiyutang 作者:Eduards Sizovs 招聘市场上,每一家公司都在寻找技术最优秀的人才。这些公司都在等着天才工程师会从不知道什么地方突然出现,就好像哪里有什么天才秘密工厂似的。这种完美候选人会满足所有的技术要求,还将很好的契合公司文化,能够在很少最好没有管理投入就能表现的很好。 但有一个问题 我招到的最棒的开发人员距离都完美候选人都相去甚远。他们缺乏技能,不知道软件如何...

weixin_33920401的博客 156

用一组可复现实验讲清 ABAP 内表 Standard / Sorted / Hashed 的性能差异

摘要(150字): SAP项目中性能问题常源于ABAP内表选型不当。标准表(STANDARD TABLE)写入快但查找慢(线性扫描),适合遍历场景;排序表(SORTED TABLE)保持有序,支持二分查找,适合范围查询;哈希表(HASHED TABLE)基于唯一键实现常数级查找,适合高频精确匹配。实验表明:标准表+BINARY SEARCH需预排序,成本可能高于直接使用排序表;哈希表在键匹配时性能最优。Gateway和RAP场景中,内表选型直接影响接口响应,建议根据读写负载(追加/遍历/精确查找)选择对应类

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 202

学精与学全的那些事儿

<br />   闻大牛说过,安全方面需要精通一方面即可,最好是从一个点开始突破,达到一定的能力后,在理解其他安全问题。(貌似他也是参加了一次会议后,听某位绿盟的大拿说的)可我的轨迹貌似是从学广慢慢的转为学精,我是由一个开发人员转型为一个信息安全人员,对于开发的理解算不上深,但也能自己开发一些适当的安全工具,比如web扫描工具,nmap的利用工具。严格意义上说,之所有现在对于安全有了进一步的理解,应该归功于培养出来的开发能力。<br />   信息安全是一个比较杂的概念,当一名合格的"hacker",也需要

ghoulvspol的安全生活 647

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Android开发者要换多少次工作,才能心满意足?

后面会慢慢转向全栈开发,前端,后台,客户端,一个不能缺少!郁闷的时候,说明已经靠自身的能力无法解决了,这个时候,你需要找一个人诉诉苦,但是别诉苦太久,人家也会烦的,要传递正能量,然后听听他们的看法和想法。不过也不是你想象的那么简单,因为现在 android 市场行情,会有很多人面试这个职位,需要你突出你的能力,让公司注意到你,必须写写自己的博客,开源项目多玩玩。如果回答不上来,其实问题也不是很大,但是当我们在面试的过程中由于处于被面试的状态,可能无形中情绪上会有波动,他们会观察你,看你的反应,给予评分。

2401_87029710的博客 758

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

[初级理论]给老婆做测试培训-08

如何做好测试的日常工作?人生有积极的人生还有消极的人生,那面对测试这份工作,选择自己的积极的职业发展方向就得在很多方面积极探索发现。 一,认真负责仔细的做好日常工作。1. 对每天的测试工作提出期望:Expect Result    主要包括完成什么样的工作,完成多少比例,对于Manager的分配任务在规定内完成。2. 如何开展日常的工作:Excution Steps  

bji129的专栏 800

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

工程师的“五个等级”,你处在哪一级?

中级就是在初级的基础上,加上了个人的艺术修养,加上了个人长期经验、经历、感悟的总结,形成了一套完整的对技术、产品、美学、用户、包括市场的基础正确的认识,这超越了大多数技术好的工程师。这在很多硅谷的公司里,基本上是一个高级工程师所应有的基本素质。这需要长时间的锻炼和自己的悟性,这个阶段的工程师就像是组内的开发组长、系统架构师之类的角色,对技术使用纯熟,并有产品经理的素质,会从用户角度考虑产品的易用性,会从运维工程师角度考虑系统的可维护性,会从下批搞二次开发的程序员角度考虑系统的可读性与可扩展性等。

u010670857的博客 3917

程序员应该改变的20个思维习惯

1、不要放过任何看上去很简单的小编程问题--他们往往并不是那么简单,或者可以引伸出很多知识点; 2、 浮躁的人容易说:XX语言不行了,应该学YY;--是你自己不行了吧!? 3、 浮躁的人容易问:我到底该学什么;--别问,学就对了; 4、 浮躁的人容易问:XX有前途吗;--建议你去抢银行; 5、 浮躁的人容易说:我要中文版!我的英文不行!--不行?学呀! 6、 浮躁的人容易问:XX和YY哪...

weixin_30765319的博客 115
上一篇: oracle 与 java object对照
下一篇: 管理,不要过分细节
socoolfj
博客等级 码龄21年 9粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值