程序员工作中的 80/20 法则如何体现?

news2024/11/26 23:17:49

80/20 原则的基础概念

该原则认为, 大部分效果出自少数起因。例如, 少数人得到大部分收入, 少数研究者做出大多数创新成果,少数作者写出大部分图书,等等。

您可能听说过 80/20 原则——它在个人生产力文献中随处可见。它受欢迎的 原因有两个方面。第一个方面, 只要您能找出重要的事情, 即导致 80%结果的那 20%活动,并坚持不懈地专注于这些活动, 80/20 原则就能让您同时保持轻松和 高效。第二个方面, 我们可以在很多情况下观察到这个原则, 所以它具有相当大 的可信度,甚至很难想出效果与起因数量等同的例子。不妨试着找一些 50/50 分 布的例子,其中 50%的效果出自 50%的起因。当然,具体分布并不总是 80/20 , 具体数字可以变为 70/30 、90/10,甚至 95/5,但总是严重偏向产生大部分效果的少数起因。

我们使用帕累托分布图来呈现帕累托原则,如图 2- 1 所示。

图 2- 1 中, 帕累托分布以效果(纵轴) 与起因(横轴) 表示。效果可以是工 作成功或失败的任何度量单位, 如收入、生产力或软件项目中的缺陷数量。起因 可以是与这些结果相关的任何实体, 如雇员、企业或软件项目。为了得到特征明 显的帕累托曲线, 我们根据它们产生的效果对起因进行排序。例如, 收入最高的 人在横轴上排第一位,然后是收入第二高的人,以此类推。

生产力

通过专注于关键少数而不是琐碎多数, 您可以将生产力提高 10 倍, 甚至100 倍。不信吗?让我们计算一下这些数字是怎么来的。 先假设一个基本的 80/20 分布。

我们将使用保守的 80/20 参数(80%的成果来自 20%的人)计算出每组的生 产率。在某些领域(如编程),分布比例可能更夸张。

图 2-3 显示, 在一个有 10 名员工的公司中, 2 名员工产出了 80%的成果, 而 其余 8 名员工只产出了 20%的成果。用 80%除以 2 名员工, 得出公司中表现优异 的员工的平均产出为 40%。如果我们把另外那 20%的成果除以 8 名员工, 结果是 表现最差的员工平均仅有 2.5%的产出。绩效整整差了 16 倍!

16 倍平均绩效差异是存在于全世界数百万机构中的事实。帕累托分布具 备分形特征, 这意味着在拥有数千名员工的大型组织中,其业绩差异甚至更为 明显。

结果差异不能仅仅用智力来解释—— 一个人不可能比另一个人的智力高 1,000 倍。结果差异来自于个人或组织的具体行为,做同样的事情可以得到同样 的结果。然而, 在改变行为之前, 必须清楚想达到什么结果, 因为研究表明, 在您能想象到的几乎任何指标上,结果都极端不平等。

对程序员的意义

在编程领域,帕累托分布的结果往往比其他大多数领域更严重地偏重于顶 部。分布情况与其说是 80/20,不如说是 90/10 或 95/5。比尔 ·盖茨说:“车床操 作顶尖高手的工资是普通车床操作员的几倍, 但顶尖软件开发者的价值是普通软 件开发者的 1 万倍。”盖茨认为,顶尖软件开发者和普通软件开发者之间的差别 不是 16 倍, 而是 1 万倍!以下是软件世界容易出现这种极端帕累托分布的几个 原因。

● 顶尖程序员能解决普通程序员无能为力的一些难题。在有些情形下, 他们 甚至因此获得无数倍于普通程序员的生产力。

● 顶尖程序员写代码的速度可达普通程序员的 10,000 倍。

● 顶尖程序员的代码缺陷较少。想想看, 一个安全缺陷会给微软的商誉和品 牌带来什么影响! 而且, 每个缺陷后续都得花费时间、精力和金钱来进行 代码库修改和功能添加——缺陷害在当下,患及未来。

● 顶尖程序员的代码易于扩展。在后续软件开发过程中, 当数以千计的程序 员在这套代码基础上开展工作时,他们的生产力将得以提升。

● 顶尖程序员会跳出框框,找到创造性的解决方案,规避昂贵的开发工作,帮助团队专注于最重要的事情。

在实践中,这些因素组合作用,所以差异可能会更大。

所以,对您来说,关键问题可能是:如何成为顶尖程序员?

程序员的成功指标

不幸的是, “成为顶尖程序员”这句话并不是可以直接优化的成功指标。问 题有多个维度。顶尖程序员能快速理解代码, 了解算法和数据结构, 通晓不同技 术及其优缺点, 能与其他人合作, 善于沟通, 有创造力, 能持续学习, 了解组织 软件开发过程的方法,掌握数百种软技能和硬技能。但是,您不可能事事精通。 不专注于关键少数, 就会被琐碎多数淹没。要成为顶尖程序员, 必须专注于关键 少数。

要务之一是专注于写更多代码。代码写得越多, 就会写得越好。这是多维问 题的简化版本:优化代表性指标(写更多代码),就能在目的指标(成为软件代 码顶尖高手)上有所进展,如图 2-8 所示。

代码写得越多, 您就越理解代码, 言行举止也越有专家模样。您会结识水平 更高的程序员, 接受更具挑战的编程任务, 于是就会写更加多的代码, 变得更优 秀。您写的每一行代码都会带来越来越多的回报。您和您所在的公司可以外包大 量无足轻重的工作。

这就是您每天都可以照做的 80/20 活动:持续记录写了多少行代码,并且优化这一指标。就当它是个达成每日代码平均量的游戏好了。

本文摘选自《整洁代码的艺术》的第2章。

​ [德] 克里斯蒂安·迈尔(Christian Mayer) 著,韩磊,严敏,马飞雄 译 ​

程序员的实用工具书,Python网站Finxter的创办人多年经验的结晶。传递"减少和简化"的代码编写思想,教您应用九大原则提高生产力、做到事半功倍。

大多数软件开发人员在复杂的代码上浪费了大量的时间。《整洁代码的艺术》提出的九大原则将教会您如何编写清晰、可维护且功能完备的代码。本书的指导原则很简单:缩减和简化,将精力投入到重要的工作上,省下大量的时间,卸下代码维护的重担。

热销书作者克里斯蒂安.迈尔在本书中利用他的经验帮助许多程序员完善他们的编码技能。他给出专业建议和真实例子,展示如何:利用80/20原则,专注于重要任务——最要紧的那20%代码;避免孤立编码,创建最小可行产品,获得早期反馈;编写整洁、简单的代码,排除混乱;避免导致代码过度复杂的过早优化;平衡您的目标、能力与反馈,达到高产出的心流状态;应用“做好一件事”哲学,极大地提升代码功能;利用“少即是多”哲学,设计有效用户界面;用“专注”原则贯穿所学的这些新技能。

本书采用Python作为示例语言,但以与语言无关的方式呈现概念,适合不同水平的程序员。

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

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

相关文章

国产文档控件Spire.Doc for.NET ,增强从 Word 到 PDF 和 HTML 的转换

Spire.Doc pack (hotfix) 11.5.12 增强了从 Word 到 PDF 和 HTML 的转换 很高兴地宣布发布 Spire.Doc 11.5.12。此版本增强了从 Word 到 PDF 和 HTML 的转换。此外,此版本还修复了一些已知问题,例如应用程序在加载文档时抛出“Sy…

django实现读取数据导出生成excel表格

目录 一、简单示例: 1.创建文件对象: 2.添加工作表: 3.写入数据: 二、实践出真理 需要先安装xlwt模块 pip install -i https://pypi.douban.com/simple xlwt一、简单示例: import xlwt# 创建一个Excel文件对象 …

教你该如何设计接口测试用例方法!

目录 前言: 一、用例设计过程: 二、接口测试用例构思结构: 三、测试过程验证点: 前言: 接口测试用例设计方法是进行接口测试的重要步骤。设计有效的测试用例可以帮助我们发现软件中可能存在的问题和缺陷&#xff…

有了IP地址,还需要MAC地址嘛?二选一可否?

概要 在计算机网络中,IP地址和MAC地址是两个最基本的概念。IP地址在互联网中是用于标识主机的逻辑地址,而MAC地址则是用于标识网卡的物理地址。虽然它们都是用于标识一个设备的地址,但是它们的作用和使用场景是不同的。 IP地址是在网络层&am…

Xilinx原语——IDDR与ODDR的使用(Ultrascale系列)

Xilinx原语——IDDR与ODDR的使用(Ultrascale系列) 一、IDDR1.1 OPPOSITE_EDGE1.2 SAME_EDGE1.3 SAME_EDGE_PIPELINED1.4 三种模式异同 二、ODDR三、IDDR与ODDR仿真3.1 IDDR仿真3.1.1 IDDR顶层3.1.2 TestBench3.1.3 仿真结果 3.2 ODDR仿真3.2.1 ODDR顶层文…

5.2.9 无分类编址和CIDR

5.2.9 无分类编址和CIDR 前面我们知道,为了更加合理的使用IP地址,采用了子网划分的方法,事实证明子网划分这种网络编址,能够节省IP网络地址,但是到了1993年的时候因特网的增长速度还是让人们感觉到了这些技术它无法阻…

移动信道的多普勒扩展及相干时间

本专栏包含信息论与编码的核心知识,按知识点组织,可作为教学或学习的参考。markdown版本已归档至【Github仓库:https://github.com/timerring/information-theory 】或者公众号【AIShareLab】回复 信息论 获取。 文章目录 移动信道的多普勒扩…

深眸科技专注机器视觉的研发与创新,开启工业自动化、智能化进程

在智能制造、工业效能提升的社会背景之下,中国制造2025战略持续落实,工业制造业转型升级加速,作为人工智能领域重要技术之一的机器视觉,凭借着高精度、高准确度等优势检测能力,不断渗透进工业领域,并呈现出…

全网最全,性能测试-全链路压测问题总结,一篇概全...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 全链路压测可以给…

JavaEE(系列21) -- 传输层协议UDP 和 TCP

目录 1. 应用层和传输层的联系 2. UDP协议 2.1 UDP简介 2.2 UDP格式 2.2.1 目的端口和源端口 2.2.2 报文长度 2.2.3 校验和 3. TCP协议 3.1 TCP简介 3.2 TCP格式 3.2.1 数据偏移和选项(option) 3.2.2 保留项 3.2.3 6位控制位 3.2.4 32位序号和32位确认序号…

华为OD机试真题 Java 实现【滑动窗口】【2023 B卷 100分】,附详细解题思路

一、题目描述 有一个N个整数的数组,和一个长度为M的窗口,窗口从数组内的第一个数开始滑动直到窗口不能滑动为止,每次窗口滑动产生一个窗口和(窗口内所有数和和),求窗口滑动产生的所有窗口和的最大值。 二、输入描述 第一行输入一个正整数N,表示整数个数。(0<N<…

WebGPU 纹理与纹理类型基础 (D3D对纹理的描述比较详细)

纹理与纹理类型&#xff0c;D3D 官方文档描述的比较详细&#xff1a; 介绍 Direct3D 11 纹理 纹理资源是一个结构化的数据集合&#xff0c;用纹素的形式存储。纹素texel代表纹理的最小单位&#xff0c;可以被管线读写。与缓冲区不同&#xff0c;纹理可以在着色器中被纹理采…

中国电源管理芯片上市企业研发投入占比超10%,上海贝岭产品品类持续增加

近年来&#xff0c;中国电源管理芯片市场规模一直保持增长趋势&#xff0c;尽管中国电源管理芯片厂商起步较晚&#xff0c;但是在政策扶持背景下&#xff0c;集成电路国产产品对进口产品的替代效应明显&#xff0c;中国集成电路产品的品质和市场认可度日渐提升&#xff0c;部分…

而立之年——回顾我的渗透测试之路

为什么要转行 因为混得不好。 在成为渗透测试工程师之前&#xff0c;我干过很多工作。由于上学的时候天天打没戏摸鱼啥也不会&#xff0c;我的工作基本上都是体力活。包括但不限于&#xff1a;工厂普工、销售&#xff08;没有干销售的才能&#xff09;、搬运工、摆地摊等&…

JMeter性能测试系列一初识JMeter

1.JMeter介绍 Apache组织的Stefano Mazzocchi是JMeter项目的创始人。编写JMeter最初的目的是为了测试server的性能(后期被Tomcat替代)。随后&#xff0c;JMeter在Apache组织内部开始被其他项目所使用&#xff0c;并最终推广出来&#xff0c;成为独立的软件项目并不断更新&…

sa-token多端登陆实现,PC,APP登陆分别设置token过期时间

sa-token多端登陆实现&#xff0c;PC&#xff0c;APP登陆分别设置token过期时间 Sa-Token 介绍 Sa-Token 是一个轻量级 Java 权限认证框架&#xff0c;主要解决&#xff1a;登录认证、权限认证、单点登录、OAuth2.0、分布式Session会话、微服务网关鉴权 等一系列权限相关问题。…

hive on spark亲自编译,详细教程

hive on spark 进行编译操作 软件 hive 2.3.6 spark 2.0.0版本 hadoop-2.7.6版本 操作流程&#xff1a; hadoop-2.7.6 1、安装hadoop不说了。简单。 spark-2.0.0 2、下载spark-2.0.0的源码. https://archive.apache.org/dist/spark/spark-2.1.0/ 这个下载spark各个版本…

Logback自定义DBAppender保存系统日志到数据库

在系统中采用了spring boot logback&#xff0b;slf4j的日志框架&#xff0c;将系统日志记录到数据库。 相关参考来源&#xff1a; 官方文档-DBAppender Logback输出日志到自定义MySQL数据库&#xff08;重写DBAppender&#xff09; logback日志框架中filter的使用 1. 添加依…

【新版】系统架构设计师 - 系统配置与性能评价

个人总结&#xff0c;仅供参考&#xff0c;欢迎加好友一起讨论 文章目录 架构 - 系统配置与性能评价考点摘要系统性能概述性能指标性能调整阿姆达尔解决方案性能评价方法 架构 - 系统配置与性能评价 考点摘要 性能指标&#xff08;★★&#xff09;阿姆达尔解决方案&#xff…

java SSM 教师管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM 教师管理系统是一套完善的web设计系统&#xff08;系统采用SSM框架进行设计开发&#xff0c;springspringMVCmybatis&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和 数据库&#xff0c;系统主要采用B…