`
zhuruxin86
  • 浏览: 103321 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

如何成为“10倍效率”开发者

阅读更多
转自:http://kb.cnblogs.com/page/126692/
Brad Feld 的一篇文章 The Rise of Developeronomics 中提到了“10倍效率的开发者(10x developer)”的概念(伟大的开发者的效率往往比一般的开发者高很多,而不只是一点点),Adam Loving 在读了之后受到启发,并向多位大牛(Ben Sharpe、Collin Watson 和 Jonathan Locke)询问如何成为“10倍效率的开发者”,最后得到了以下的答案。

  1. 只做需要做的工作 Only do the work that needs to be done

    •使用敏捷方法;
     •全心全意做 UX 设计;
     •沟通第一;
     •编码也许不是解决问题的办法;
     •过早的优化是一切罪恶的根源;
     •选择最简单的解决方案。
  2. 站在巨人的肩膀上 Build on the shoulders of giants

    •使用开源框架;
     •使用简洁语言(如 HAML、Jade、Coffeescript);
     •不要做重复的事情(不要重新发明轮子);
     •利用包管理器来进行公共和私有代码分配;
     •不要任凭巨头(如微软)的摆布而修复库中的一个 Bug;
     •不要让你的雇主逼你学习;
     •自主学习并为自己设定新的目标。
  3. 了解数据结构和算法 Know your data structures and algorithm

  如果你不知道什么时候应该使用快速排序、不懂辨认O(n2)程序、不会写递归函数,你将无法成为 10 倍效率的开发者。使用多种语言你才能清楚不同的框架是如何解决相同问题的。尽可能去了解底层命令(plumbing),以便能够作出明智的决定(Web 框架是怎么存储 session 状态的?Cookie 到底是什么?)。

  4. 不要怕买工具,它可以节省你的时间 Don’t be afraid of buying tools that save you time

  Ben 说:“昨天我花 50 美元买了一个位图字体工具,它帮我节省的时间成本绝对超过 200 元。”

  5. 集中注意力 Find focus

  不要整天开着你的电子邮件、Twitter、Facebook 等,在工作时将它们最小化或关掉它们,戴上耳机。Tiny hack 说:“即使不听音乐我也戴着耳机工作,这样便不会有人打扰到我。”

  6. 尽早并且经常性地进行代码重构 Refactor early and often

  有时,你不得不放弃漂亮的代码转而去寻找真正对项目有用的代码,但没关系,如果你的现有项目中有这样的代码,最好的方式便是不要看它,并重构。

  7. 只管去做  Just do it

  将你的业余项目分享到 Startup Weekend 中。在我开始转到 Unix 和 Ruby on Rails 上之前,我买了一台 Mac,使用 Windows 虚拟机花了一年时间做 .NET 项目。

  8. 挑选一个编辑器,并掌握它 Pick an editor and PWN it

  高效开发者喜欢用文本编辑器胜过 IDE 编辑器,因为这样可以学到更多东西。无论什么情况,尽量使用键盘快捷键,因为熟练使用一件工具的前提是熟悉它。

  在选择编辑器时,认真考虑并挑选最好的(Emacs 或 Vim),因为它们是通用的。其次,挑选你的首选平台最支持的。使用宏,不断地写代码;使用 Mac 上的 TextExpander 为整个段落创建快捷方式;使用 Visual Studio 或 SublimeText 的自动补齐功能;使用支持按行/列分割窗口的编辑器,这样你便能同时看到单元测试和代码(或模型、视图)。

  一定要想清楚后再写代码。Adam 说,“我有朋友在一个大项目组里工作,他们组里最高效的程序员是一个高位截瘫用嘴叼着棍子敲代码的人,他总是在写代码之前想得很仔细且很少出错。”

  9. 整洁的代码胜过巧妙的代码 Clearness beats Cleverness

  要想让其他人能够读懂你的代码,尽量使用最少的代码来完成任务。遵循 DRY(Don't repeat yourself)的原则,使用明确定义的对象和库,将任务分解成小而简单的代码段。

  10. 潜意识是强大的工具  Your sub-conscience is a powerful tool

  离开 10 分钟往往就可以解决一个问题。控制编程时间,给自己一个多姿多彩的生活,劳逸结合能让你在工作时更高效、更愉悦。当然,即便是上了年纪的程序员也知道,以最少的时间完成最高效的工作是成为 10 倍效率开发者的必要条件。

  作为一个程序员,我觉得在职业生涯中最好的一件事儿就是从电脑前站起来,去拜访那些在某一领域有所建树的人们。

  11. 推动自身和团队进步 Refine your process as a team

  重视批评,以包容的态度接受批评并提升自己是非常重要的事情。没有这个基础,你不可能成为一个高效的开发者。一位智者曾经说过:“聪明的人善于从自己的错误中学习,而智慧的人善于从别人的错误中学习。”

  英文原文:http://adamloving.com/internet-programming/10x-developers

  1. Only do the work that needs to be done. Use the agile process. Involve yourself in UX design. Communicate first. Coding might not be the solution. Premature optimization is the root of all evil. Choose the simplest solution that solves the problem.

  2. Build on the shoulders of giants. Use open source frameworks. Use shorthand languages (HAML, Jade, Coffeescript) to go faster. Don’t re-invent the wheel. Leverage package managers for public and private code distribution. Don’t be at the mercy of Central Command (i.e. Microsoft) to fix a bug in a library. And don’t wait for your employer to let you learn it. Learn it on your own, and get a new job that pays twice as much.

  3. Know your data structures and algorithms. Our profession is open to self taught tradesmen, but you can’t be a 10x developer if you don’t know when to use quick sort, identify an O (n2) routine, or write a recursive function. Be multilingual – so you can see how different frameworks solve the same problems over and over again. Know enough about the plumbing to be able to make informed decisions (how is this Web framework storing the session state? What is a cookie actually).

  4. Don’t be afraid of buying tools that save you time.  Ben says: “I bought a bitmap font tool yesterday for $50. It easily saved me more than $200 of my time.”

  5. Find focus. Don’t keep your email open all day. Same for Twitter, Facebook, HackerNews, and Techememe.  Minimize interruptions during productive moments.  Close email, turn off chat, put headphones on… whatever it takes to not be interrupted. Tiny hack:  I wear headphones at work even though I don’t listen to music because people don’t interrupt me.

  6. Refactor early and often. Kill your darlings.  Sometimes you have to throw out clever code to do what’s right by the project, but that’s OK. If you have to touch code on an existing project, always leave it better than you found it.

  7. Just do it. Think small. Do your weekend project, participate in Startup Weekend. I bought a Mac and worked in a Windows Virtual Machine on .NET projects for a year before I was able to fully leap to Unix and Ruby on Rails.

  8. Pick an editor and PWN it. Some 10x devs prefer text editors to IDE’s because they find they learn more without the crutches. In any case, learn your keyboard shortcuts. There’s no faster way to look something up than to know it.

  When picking an editor — seriously consider one of the greats (emacs or vim), they’re universal. After that, pick the best/most supported editor on your preferred platform. Use macros. Write code that writes code. Use TextExpander on the Mac to create shortcuts for entire paragraphs. Use auto-completion in Visual Studio or SublimeText.

  Use an editor that supports splitting your window into columns or rows. This way you can see your both a unit test and the code it is testing (or a model and view) at the same time.

  But think before you type. A friend in a large group said that the most productive coder in their group was a paraplegic who used a mouth stick to type. He had to really think things out before he started typing, he only rarely made mistakes.

  9. Clearness beats Cleverness. Write your code so that the next person can read it, not so it uses the fewest characters possible. Strive to adhere to the DRY (Don’t repeat your self) principle. Re-use clearly defined objects and libraries. Break work into clean interfaces between components and developers. Break the problem into small simple tasks.

  10. Your sub-conscience is a powerful tool. Stepping away for 10 minutes is often all that is required to solve a problem. Treat your self to a diverse life and limit your coding time. You will be able to work more effectively during your coding time because it will be more enjoyable. Of course, us older developers also know that a minimum effective dose of physical fitness is also a prerequisite to being a 10x developer.

  Human networking is more important than computer networking. Practice your pong. I often feel the best thing I ever did for my career as a programmer was to step away from the computer and go meet some movers and shakers.

  11. Refine your process as a team. One of the biggest things is to really pay attention and to be wide open to criticism and changing and refining your process. You can’t become a 10x anything without that foundation because it will take you too long to get better at it. A wise man once said “A smart man learns from his mistakes, but the truly clever man learns from the mistakes of others.”
分享到:
评论

相关推荐

    如何成为10倍效率开发者

    如何成为10倍效率开发者,如何成为10倍效率开发者

    如何成为十倍效率开发者

    本文教你如何成为一个高效开发者,而不是代码工人

    10个步骤让你成为高效的Web开发者

    该资源讲述了10个要点,是对开发者的提高效率的很好的建议,我认为可以作为戒条去完善自己的开发过程!推荐!

    前端必备vue浏览器插件贴心指南,助你成为高效前端开发者!

    一招get!vue浏览器插件开发新技巧!vue浏览器插件神器,让你的开发效率翻倍提升

    Android Studio下载示例.pdf

    在数字化快速发展的今天,Android Studio已成为众多开发者必备的工具之一。它凭借强大的功能和友好的界面设计,极大地提高了Android应用程序的开发效率。本示例将详细介绍如何下载Android Studio,以便读者能够顺利...

    MongoDB数据库基本操作方法

    对于开发者而言,掌握MongoDB的基本操作至关重要,它不仅能提升数据处理效率,还能为应用程序带来更高的灵活性和可扩展性。 本资源详细介绍了MongoDB的核心操作,包括数据库的创建与删除、集合的管理、数据的增删改...

    Delphi的概要介绍与分析

    这种快速应用程序开发(RAD)模式极大地提高了开发者的效率,缩短了开发周期。 此外,Delphi具有强大的第三方库支持,这些库涵盖了各种常见的开发需求,如数据库访问、网络编程、图形图像处理等。开发者可以通过...

    掌握Eclipse高频面试题,轻松应对Java开发面试!.zip

    eclipse 在当今的软件开发领域,Java作为一种广泛使用的编程语言,其开发环境Eclipse也成为了许多开发者的首选。对于即将参加Java开发岗位面试的求职者来说,掌握Eclipse的相关知识点是至关重要的。本内容旨在通过...

    医药店库存管理系统.doc

    目前很多医院的信息管理还比较落后,劳动 强度大且效率低,因此,开发医院管理信息系统将提高医院的各项工作效率。医院的药 品管理师一个非常重要的和繁杂的事务,需要完成药品的入库、存储、出库等很多操作 ,这就...

    2024 NLP面试必备:掌握这些高频题,成为行业高手!.zip

    为了帮助求职者准备面试,以及帮助开发者了解行业动态,本文整理了10道关于NLP开发的高频面试题,涵盖了最新的技术趋势、基础知识点以及行业挑战。 适应人群: 即将参加NLP相关岗位面试的求职者 希望提升NLP技能的...

    asp.net快速开发框架(eFrameWork) v4.0.16

    eFrameWork(asp.net)开发框架(以下简称框架)是E客开发团队(EKETEAM以下简称e客)从业十余年开发经验的累积,经众多项目磨合及客户意见、建议不断优化完善而来。 框架主要用于B/S架构的应用系统及网站开发,本身并...

    asp.net快速开发框架(eFrameWork) v4.0.15

    eFrameWork(asp.net)开发框架(以下简称框架)是E客开发团队(EKETEAM以下简称e客)从业十余年开发经验的累积,经众多项目磨合及客户意见、建议不断优化完善而来。 框架主要用于B/S架构的应用系统及网站开发,本身并...

    详细描述了Kotlin和Android的统合

    Google宣布Kotlin为Android官方开发语言后,Kotlin的简洁性、安全性和表达能力使其成为Android开发者的首选。Kotlin的空安全特性减少了常见的NullPointerException问题,其扩展函数和数据类等功能简化了代码编写。...

    软件项目绩效管理.doc

    规范化项目管理成为所有小型软件公司必行之路,唯有如此才能激进和开发员工潜能,通过本案提出的积分制管理方案,可有效提升软件开发者工作效率及工作责任心,对拥有效率和责任心的程序员予以重点嘉奖及提高相应待遇...

    VisualBasic的概要介绍与分析

    Visual Basic(简称VB)是一种由Microsoft公司开发的面向对象的编程语言,以其直观易用的界面和强大的功能,成为初学者和专业开发者广泛使用的工具。 Visual Basic的“Visual”部分体现在其强大的图形用户界面(GUI...

    asp.net快速开发框架(eFrameWork)v3.0.2

    eFrameWork(asp.net)开发框架(以下简称框架)是E客开发团队(EKETEAM以下简称e客)从业十余年开发经验的累积,经众多项目磨合及客户意见、建议不断优化完善而来。 框架主要用于B/S架构的应用系统及网站开发,本身并...

    pandas_validator-0.2.0-cp34-cp34m-macosx_10_10_x86_64.whl

    这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,...

    pandas_validator-0.3.0-cp34-cp34m-macosx_10_10_x86_64.whl

    这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,...

    pandas_validator-0.1.0-cp34-cp34m-macosx_10_10_x86_64.whl

    这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,...

    基础篇必看,史上最全的iOS开发教程集锦,没有之一.zip

    通过学习本文,读者可以提高开发效率、代码质量,成为一名出色的iOS开发者。 适用人群:适用于iOS编程初学者、小程序开发者以及对iOS开发感兴趣的技术人员。 使用场景及目标:本文旨在帮助读者掌握iOS开发的基本技巧...

Global site tag (gtag.js) - Google Analytics