如何成为一个高效的程序开发人员
Sun Microsystems亚太区的工程师Lee Chuk Munn写了一篇不错的小文,介绍一个高效程序开发人员的应该有的7个习惯(Seven habits of effective developers):
- Understand the problem
For instance, Lee said, there are different algorithms engineers can use to write a sorting program.
To select the right one to use, developers need to first understand the size of the data–that the sorting program will be administered on–in order to decide which is the right algorithm to use. "Choosing the wrong one would put your application in jeopardy in future," he said.
- Use appropriate tools
Quoting American psychologist Abraham Maslow, Lee read: "If the only tool you have is a hammer, you will see every problem as a nail."
This Maslow concept has become so popular among software developers that it has been dubbed the "Golden Hammer" rule, which cautions engineers with limited knowledge or training of solutions that they run the risk of using only tools they are familiar with, but that may not be the most appropriate, when they develop a new program.
- Strive for simplicity
Programmers should develop applications that are:
Easy to understand; Easy to explain; Easy to maintain; andEasy to document.
- Keep your code clear
Lee said: "Put yourself as an author, how would you write something that others can easily understand and follow your thoughts? That’s how a programmer should code as well."
- Learn to debug
"Sometimes, there are bugs in your codes, or in other [software] libraries that you may have bought or downloaded that you cannot control," Lee said, underscoring the need for developers to "test early, test often".
- Leverage what is available
Developers should also look for solutions or algorithms that are already publicly available, such as those highlighted in developer forums and mailing lists.
- Continue to learn
Can developers then balance the commercial need to push out applications as quickly as possible, with the need to write codes that are clean?
Lee believes they can. "A lot of people say if they don’t have quantity time, at least they have quality. That’s not true… You can’t have quality time if you don’t put in quantity time," he said. "There’s commercialization [in software development] but there’s also ‘art’ and ‘good’ codes. And you can achieve both."
如何成为一个高效的程序员,我觉得这是每个开发者应该去思考一下的问题。聪明 不等于高效。在我看来,所谓的高效是能够快速适应问题领域,分析面对的问题,最后快速找到解决方案。在这个过程中,很多品质(Lee Chuk Munn把他叫习惯)决定了是否高效。比如KISS原则,在一个team中,如果大家都一致认同这个原则,并在产品设计,需求分析甚至编码的时候时刻提醒自己,那么在brainstorm的时候,很容易达到一致或者可以很快明确当前的主要TODO是什么。相反的,如果有人忽略了KISS,那么很容易纠缠于细节,导致最后的讨论失去主方向。请记住:把一个系统设计的复杂要比简单来的容易得多。
我很喜欢Lee关于写代码的比喻 —— 编写应用程序,就像你再写一本书。写书的时候你应该尽量保持结构清晰并且让你的读者不会觉得很晦涩。如果写书人能够尝试用40%的时间站在读者的角度去思考问题,我觉得这种书成为畅销书的可能性很大。
最后是自我学习,我在面试一些技术人员的时候,我很少问到一些很生僻,很刁难的问题。我更愿意了解他/她在项目中的角色和对新技术的态度。如果一个开发者愿意学习,并且能够学习,我觉得这种品质要比让他记住一些问题的答案重要的多。现在互联网上公开的文献资料和课程都很多,只要愿意学习,视野一定会慢慢扩大 —— NextLib也是帮助你管理个人知识的一个好工具 。这是很重要的,还记得“黄金锤子”吧 : 如果你手上只有一把锤子,那么你会把所有问题看成是钉子
分享到:
相关推荐
以下是一个详细的教程流程,帮助你理解如何从零开始创建自己的小程序。 首先,明确开发目的与功能需求。这是任何项目启动的基础。你需要思考小程序的目标用户是谁,它能为用户提供哪些服务,以及它如何与你的企业...
Linux设备驱动程序开发是操作系统开发中的一个重要分支,涉及硬件设备与Linux内核之间的交互,以及不同硬件平台的特定编程接口。为了提供可靠的驱动程序,开发者需要深入理解Linux内核机制,掌握各种硬件设备的编程...
总的来说,CAXA二次开发小程序是CAXA软件功能的有力补充,它通过定制化服务,提升了设计人员的工作效率,降低了工作强度,是实现设计工作智能化、高效化的重要手段。对于有特定需求的团队或企业来说,这样的二次开发...
SharePoint 2010 是微软发布的一款企业级协作和内容管理平台,为程序开发人员提供了众多增强的功能和开发工具,极大地提升了开发效率和应用的灵活性。在2010年发布的这个版本中,SharePoint 分为了两个版本:...
ASP(Active Server Pages)是微软推出的一种服务器端脚本环境,它允许开发人员在HTML页面中嵌入脚本语言,如VBScript或JScript,以生成动态网页。ASP的工作原理是服务器处理包含脚本的页面,然后将结果发送到客户端...
《程序开发心理学》一书是软件开发人员提升自我认知与工作效率的重要参考资料。它深入探讨了在编程和项目管理过程中,开发者如何理解和运用心理学原理来优化工作流程,提高团队协作效率,以及解决各种技术与非技术...
### uniGUI 开发人员手册知识点概览 #### uniGUI 概述 uniGUI 是一个针对 Embarcadero Delphi 和 C++ Builder 设计的 Web 应用程序框架,旨在简化 Web 应用程序的开发流程。它提供了一整套可视控件来构建有状态的 ...
这些知识点是成为SAP开发人员的关键技能。 首先,让我们从"第二章 创建HELLO WORLD程序.pdf"开始。这通常是学习任何编程语言的第一步,它涵盖了如何在SAP环境中编写简单的"Hello, World!"程序。通过这个过程,初学...
《TCP/IP高效编程:改善网络程序的44个技巧》是TCP/IP 领域历久弥新的经典著作,网络编程人员必备,对TCP/IP 网络编程中存在的各种问题进行了全面解析,旨在帮助读者深入透彻地理解TCP/IP 网络编程。本书组织方式比较...
《Python高效开发实战——Django、Tornado、Flask、Twisted》内容精练、重点突出、实例丰富、讲解通俗,是广大网络应用设计和开发人员不可多得的一本参考书,同时非常适合大中专院校师生学习和阅读,也可作为高等...
嵌入式Linux C语言程序开发工具是开发人员在Linux环境下编写和调试C程序的重要工具集。这些工具包括编辑器、编译器、调试器以及构建管理系统,它们共同构成了高效的开发流程。 一、编辑器 vim vim是Linux下广泛...
也许你听说过全栈工程师,...本书内容精练、重点突出、实例丰富、讲解通俗,是广大网络应用设计和开发人员不可多得的一本参考书,同时非常适合大中专院校师生学习和阅读,也可作为高等院校计算机及相关培训机构的教材。
### C++Builder 5 开发人员指南 #### 第一部分:使用C++Builder编程 ##### 第3章 创建应用程序、组件和程序库 **3.1 创建应用程序** C++Builder 是一个强大的开发工具,主要用于设计和创建 Windows 应用程序。本...
### Windows CE 驱动程序开发详解 #### 一、引言 随着嵌入式系统的广泛应用,对于不同硬件平台的支持成为开发过程中的...希望本文能够为正在进行或计划进行Windows CE驱动程序开发的技术人员提供有价值的参考和指导。
.NET Framework提供了一系列内置的集合类,如List、Dictionary, TValue>等,它们为开发人员提供了高效的数据存储和检索手段。 #### 垃圾回收机制 CLR通过自动垃圾回收机制管理内存,当不再需要某个对象时,垃圾...
Windows Forms是.NET Framework的一部分,它提供了一个丰富的控件库,允许开发人员构建交互式的用户界面。这些控件包括按钮、文本框、列表框、菜单等,它们可以通过拖放的方式添加到表单上,并可以进行定制以满足...
《嵌入式Linux应用程序开发详解》是一本专为嵌入式系统开发者编写的指南,由华清远见教育集团的专家撰写。这本书深入浅出地探讨了在Linux环境下进行嵌入式应用开发的各种技术和实践,旨在帮助读者掌握从硬件平台选择...