Source: http://sd.csdn.net/a/20100820/278434.html
体会: 我们需要更多的时间来思考和体会程序的功能及如何实现而非coding,写技术博客也是非常重要的!
为什么5%的技术人员开发效率是其他95%的20倍?
5%神话
Bruce Eckel(Thinking in Java/C++作者) 在他的5%的神话(Mythical 5%) 中提到:5%的程序员开发效率是其他95%程序员的20倍(5% of programmers are 20x more productive than the other 95%)。
按照80-20法则,80%的程序员几乎不看书,不读Blog,不参加技术会议,不持续学习。这些人也可能会进入大公司,他们日复一日的做着重复的工作。另外20%则在专业方面比较主动,他们喜欢阅读,喜欢学习,喜欢参加技术活动。这20%当中又会有80%的人可能不会特别成功,他们仍然走在通往成功的路上奋斗。剩下20%,也就是总数的5%的开发人员具备20倍的开发效率。那如何成为这5%中的一员呢?
Bruce Eckel 的观点:阅读,分析,总结,实践
这5%的人会习惯经常阅读新技术,并喜欢参与各种有潜在价值的新概念的实践,他们会有非常有选择性的参与会议,大部分时间都花在有效率的事情上,将事情做成。
要想比别人效率高出20%,则需要在各个方面达到平衡,而不单只是能将事情搞定那么简单,因此你要使用最好的工具,最优秀的技术,并尽最大的努力。平衡点并不是从明显的事物上就可以轻松获得,或者是被人告知的经验,或者是大众化的经验。它需要自己摸索并发现事物背后的规律,需要自己去总结并发现。
比如我们通常对各种编程语言优缺点熟记于心,我们通常可以脱口而出比如Erlang适合大并发场合等等。但是大部分人不会意识到很多场合语言并不重要。
因此如果你要成为那5%中一员,你必须持之以恒的坚持学习,多学习编程是有好处的,但是仅仅局限于了解编程是不够的,比如类似以下经验:
> 代码被阅读的时间比写代码的时间要长,如果你的代码不能被人理解,则没人会去改善或者修改其中的bug;
> Code review是最有成效的改善软件缺陷的方法,但在我们却经常“没有时间来考虑它”。
所以除了精通编程之外,最好多看一些编程方法与协作的书,如并不传授编程技巧的《代码大全》之类的书。
Jeff Atwood(Coding Horror)的观点:技术博客重要性
当然也有持不同观点者,如Jeff Atwood(coding horror的作者)则认为经常分享自己的技术体会比coding更重要,能写的人才能成为那5%中一员。他曾经横穿北美,从美国西岸San Francisco到加拿大的东岸Montreal去给一个大学的学生讲技术Blog的重要性。他在这篇Is Writing More Important than Programming (PPT,3mb)演讲中提到:
大部分我景仰的程序员都是通过其blog让我景仰,而不是他的代码。
……大部分不写blog程序员的理由有:太忙;写了也没人看;没有合适内容可写;觉得自己不善长表达等。
其他观点
《Erlang程序设计》一书(人民邮电出版社图灵公司出版)的译者之一、盛大创新院研究员金尹(Trustno1)则认为这5%的人必须是钻研paper的人, 而只是看看rss,热衷于参加各种技术会议,搞搞各种可替代性很强的技术的人是不够格的,他在某帖子中提到:
很简单的两个标准。
标准一,你看到一个问题的第一感觉“这个事情不学3-4年数学算法光靠捣鼓捣鼓API设计模式肯定搞不定”
案例一,老板让你做一个从视频里识别出人脸的程序。
标准二,但凡性能Critial又没有现成方案的东西。
案例二,老板让你做一个实时的全局照明渲染引擎。
总结
想必看了上面这一系列,你对怎样成为那5%中一员已有自己的见解了。你要的答案或许不在这篇文章里,因为Bruce Eckel提到,大部分成为5%的人的经验是只可意会,不可言传的。
分享到:
相关推荐
提高软件开发效率经验 软件开发效率是软件企业的生命线,影响着企业的盈利模式和产品研发管理。提高软件开发效率需要从多方面入手,包括提高项目成员工作技能、制定适当的研发流程和部门协作流程、总结经验反省过错...
《软件开发人员行为规范》是指导程序员在软件开发过程中应当遵循的一套准则,旨在提高团队协作效率,保证软件质量,并确保项目的顺利进行。规范涵盖了从项目管理、代码编写到技术选型等多个方面,以下是其中的核心...
Guns是一个现代化的Java应用开发框架,基于主流技术Spring Boot2 + Vue3,Guns的核心理念是提高开发人员开发效率,降低企业信息化系统的开发成本。配套代码生成平台,DevOps运维平台,CI/CD持续集成能力,在线API...
【国外IT人员提高软件开发效率和效益的经验】 在软件开发领域,提高效率和效益是IT专业人士不断追求的目标。以下是从给定文件中提炼出的一些关键经验: 1. 寻找强大的项目支持者:在项目推进过程中,找到拥有资源...
《工程技术人员绩效管理办法》是企业对工程技术人员进行绩效管理和薪酬激励的重要制度,旨在提升工程团队的工作效率和技术创新能力。这份文档主要涵盖了以下几个关键知识点: 1. **适用范围**:本办法适用于公司...
### 软件开发人员变成ChatGPT开发人员? 随着人工智能技术的发展,特别是自然语言处理领域的突破,诸如OpenAI和GitHub的Copilot等工具正在逐渐改变软件开发领域。本文将探讨这一变革对于传统软件开发人员的影响,并...
本文件聚焦于13种国外IT人员提高软件开发效率和效益的经验,主要涵盖了三个方面:找到有力的支持者、重视培训与拓展机会以及深入理解软件开发的复杂性和风险。 首先,寻找“钱包”最满和握有“棒球棒”的项目支持者...
3. **技术创新指标**:技术创新使标准工时降低率和材料消耗降低率,反映技术人员通过改进工艺或方法,提高生产效率,降低成本的效果。计算公式为改进后的标准工时或材料消耗与改进前的差值占改进前的比例。 4. **...
技术研发人员績效考核方案的实施旨在激励技术研发人员积极工作,提高工作效率和质量,推动公司技术创新和发展。该方案的实施将对公司的技术研发工作产生积极的影响,提高公司的竞争力和创新能力。
Guns是一个现代化的Java应用开发基础框架,基于主流技术Spring Boot2,配套代码生成平台,DevOps运维平台,CI/CD持续集成能力,在线API接口管理,提高开发人员开发效率,降低企业信息化系统的开发成本
《技术开发人员绩效考核表》是对技术开发人员工作表现进行全面评估的重要工具,旨在衡量和提升其工作效率、质量以及团队协作能力。考核表主要分为三个核心部分:KPI(关键绩效指标)、工作态度和工作能力,每个部分...
5. **成果与亮点分享**:这部分用于展示本月工作中的突出成就,可能包括技术创新、优化效率、解决难题等方面,是自我展示和团队激励的重要部分。 6. **难点与解决分享**:列出在工作中遇到的困难和挑战,以及如何...
"专业技术人员创新能力" 本课程主要讲解了专业技术人员创新能力的相关知识点,涵盖了创新能力的定义、技术创新、市场创新、组织创新、文化创新等方面,旨在提高专业技术人员的创新能力和实践能力。 一、创新能力的...
软件开发人员可以通过分享自己的技术经验和技术见解来帮助其他软件开发人员,提高整个软件开发行业的技术水平和技术创新能力。 软件开发人员的自我成长是非常重要的,软件开发人员需要找到自己的特长和天赋、把控...
在矿产资源开发行业中,人工智能技术的应用正逐渐成为推动行业进步的重要力量。根据提供的文档内容,我们可以看到人工智能在矿物填图、矿石品位预测以及矿山运营效率和人员安全保障方面有着显著的作用。现将具体知识...
标题中的“2011年firefox火狐浏览器最新版开发工作人员最常用的20个有助于开发效率提高的20个插件”提到了火狐浏览器(Firefox)开发人员使用的高效工具,其中提到了四个核心插件:Firebug、Web Developer、CSS ...
《技术研发人员绩效考核方案》是针对企业开发部的技术人员设计的一种综合评价机制,旨在通过科学的考核流程,激发员工的工作积极性,推动公司发展战略的实施。该方案覆盖了工作业绩、工作态度和工作能力三大核心考核...