转自: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倍效率开发者
本文教你如何成为一个高效开发者,而不是代码工人
### 如何成为优秀iPhone游戏开发者 #### 一、原创的想法:激发灵感的火花 成为优秀的iPhone游戏开发者的第一步就是拥有一个独特的创意。正如文中提到的《VirusStrike》的开发者,他的灵感来源于对已有游戏的喜爱与...
这不仅提高了调试效率,也使得开发者能够更好地模拟真实环境下的小程序运行情况,从而打造出更优秀的微信小程序产品。所以,下次遇到类似需求时,不妨尝试一下这种方法,相信它会成为你开发过程中的得力助手。
《2020中国开发者调查报告》是一份深入剖析中国IT行业从业者现状的重要文献,它揭示了中国开发者群体的专业特点、工作环境、技术趋势以及面临的挑战。这份报告对于理解中国互联网开发者的工作生态具有极高的参考价值...
作为一名开发者,掌握坚实的基础知识是至关重要的。在IT行业中,特别是Java编程领域,基础知识的扎实程度直接影响到开发效率和代码质量。...只有这样,才能在这个日新月异的IT行业中保持竞争力,成为一名优秀的开发者。
通过这些强大的功能,Vue3 开发者工具插件成为Vue 3开发不可或缺的一部分,它提升了开发效率,降低了调试难度,使得Vue 3项目能够更加高效、稳定地进行开发和维护。对于任何Vue 3开发者来说,熟悉并掌握这个插件的...
2. PHP框架发展:可能讨论了如Laravel、Symfony、Yii、CodeIgniter等主流PHP框架的最新动态和最佳实践,以及如何利用它们提高开发效率和代码质量。 3. 微服务架构:随着微服务架构的普及,如何在PHP环境中实现...
开发者在使用蚂蚁开发者工具时,可以享受到编码增强、运行和调试流程的串联,大大提升了开发效率和体验。 在了解了蚂蚁开发者工具的研发背景和架构实现后,我们可以看出,蚂蚁金服在研发这些工具时,充分考虑了...
【Qt开发者大会】是中国Qt社区每年举办的一次重要活动,旨在聚集Qt技术爱好者、开发者、企业和教育机构,共同探讨和分享Qt技术的最新进展、应用案例以及开发经验。2013年的大会在北京举行,体现了Qt在中国的广泛影响...
在Android系统中,开发者选项是一组高级设置,通常隐藏起来以防止普通用户误操作。...正确理解和使用这些选项,可以显著提升开发效率并确保应用的质量。记得在完成调试工作后关闭开发者选项,以保护设备安全。
理解并熟练运用这两种语言的特性,如类、协议、闭包以及内存管理,是成为合格iOS开发者的基础。 其次,"工具"标签提示我们,Xcode是iOS开发不可或缺的一部分。Xcode是Apple官方提供的集成开发环境(IDE),包含了...
《开发助手专业版 v6.3.5 for Android:提升开发者效率的秘密武器》 在如今快节奏的软件开发...无论你是经验丰富的开发者还是初入行业的新人,这款工具都能成为你得力的助手,帮助你在Android开发的道路上更进一步。
微信开发者工具是一款专为微信小程序设计的集成开发环境,它为开发者提供了全方位的开发支持,包括代码编辑、调试、预览、发布...在实际开发中,不断学习和实践,充分利用社区资源,是成为优秀小程序开发者的必经之路。
总之,《软件开发者路线图》为有志于成为软件工匠的读者提供了一条明确的成长路径,它不仅关注技术技能的提升,更注重培养适应变化、解决问题和与人协作的能力。通过学习和实践书中的模式,开发者可以更好地适应行业...
Linux下的EverVim是一款专为开发者打造的Vim编辑器发行版,旨在提供一个高度定制化、优化且便于...其丰富的预设配置、友好的学习资源以及广泛的平台支持,使得EverVim成为开发者们在Linux上进行软件开发的理想选择。
理解并熟练掌握这三者的关系,是成为Mendix开发者的必备技能。 “Rapid Developer - Module 4 Nest Data.pdf”深入介绍了数据的嵌套和关联。在Mendix中,数据管理是至关重要的,如何有效地组织和操作数据直接影响到...