2012-2-28
如何成为一名专家级的开发人员
原文作者Jenkov是一位丹麦资深开发人员
一旦你开始掌握选择的平台,你应当开始学习独立于平台的技能,比如模式设计、分布式系统设计、系统
机构和可用性等等。在你取得进步时,你将要花更多的时间来学习这些技能。这是好事。因为这些技能不受平页台限制,更容易转移新的技术平台。
最后,你或许会脱离软件开发,转入到诸如项目管理或架构师的完全不同的业务领域。请谨记,一旦你停止使用你的开发技能,你的专家之路将更加长远了。
怎么知道自己该学习什么,查看招聘广告不失为一个好办法。看看最常用的工具和技术?阅读一些在线软
件杂志,看看行业人士讨论最多的技术是什么?泡相关论坛和博客,看看他们最常问的问题是什么?还有,人
如何成为一名专家级的开发人员页们谈论最多的技术是什么?总之一句话,什么技术是明天的热点?
---------------------------------------------------------------------------------------------
风雨20年:我所积累的20条编程经验
原文作者乔纳森·丹尼可(Jonathan Danylko)是一位自由职业的web架构师和程序员
1.
估算解决问题所需要的时间。不要怕,承认吧!我曾见过一些程序员为了解决一个特殊问题而坐在显示
器前面8小时。为自己定一个时间限制吧,1小时、30分钟或甚至15分钟。如果在这期间你不能解决问题,那就
去寻求帮助,或到网上找答案,而不是尝试去做“超级堆码员”。
2.
编程语言是一种语言,只是一种语言。随着时光推移,只要你理解了一种语言的原理,你会发现各种语
言之间的相似之处
。你所选择的语言,你应该觉得“舒服”,并且能够写出有效(而且简洁)的代码。最重要
的,让语言去适应项目,反之亦然。
3. 不要过于注重程序的“设计模式”。
有时候,写一个简单的算法,要比引入某种模式更容易。在多数情况下,程序代码应是简单易懂,甚至清洁工也能看懂。
4.
经常备份代码。在我年轻时,我就有过因硬盘故障而丢了大量代码的经历,这经历很恐怖的。只要你一
次没有备份,就应当像有着严格的期限,客户明天就需要。此时就该源码/版本控制软件大显身手了。
5. 承认自己并不是最顶尖的程序员 -
知不足。我常想,我对编程了解已足够多,但是总有其他人比你优
秀。正所谓,“一山总比一山高”。所以,向他们看齐吧!
6、学习再学习。正如第5点所说,我经常会在手里拿一本计算机或编程相关的杂志或书(不信,可以问我
的朋友)。诚然,总有很多你不知道的技术,你可以从中学习以保持不落后。如果你有一种灵巧的方式来获取
你需要的新技术,那你每天都应该坚持学习。
7.
永恒的变化。你对待技术/编程知识,就应像你对待股票一样:多样化。不要在某一特定技术上自我感
觉良好。如果那种技术或语言已经没有足够支持,那你还不如现在就开始更新你的简历,并启动培训新计划。
我能保持前行的主要原则是什么呢?至少了
解两到三种语言,所以,如果某种语言过时了,你在学习新技术的
时候还可以依靠另一种语言。
8.
提携新人。协助并且培养初级/入门的开发人员学习优秀的编程方法和技巧。也许你还不知道,在帮助他们向更高一层前进时,你自己也在向更高一层提升,你会更加自信。
9.
简化算法。代码如恶魔,在你完成编码后,应回头并且优化它。从长远来看,这里或那里一些的改进,
会让后来的支持人员更加轻松。
10.
编写文档。无论是Web服务的API,还是一个简单的类,你尽量编写相应文档。我曾经引以为豪的代
码注释,因过度注释而有人指责。给三行代码加一行注释,只需要你几秒时间。如果那是一个比较难以理解的
技术,千万别担心过多注释。如果你能很好做好自己的工作,大多数架
构师、后备程序员、支持组都会感激
你。
11.
测试、测试再测试。我是一名黑盒测试粉丝。当你完成编码后,你“被认可”的时候就开始了。如果你们公司有QA部门,如果你的代码中有错误,那你得到的评论,会比项目经理还多。如果你不彻底测试自己的代码,那恐怕你开发的就不只是代码,可能还会声名狼藉。
12.
庆祝每一次成功。我见过很多程序员在解决编程技术难题后,会和同伴握手、击掌或甚至手舞足蹈。每个人在生命中都会碰到“顿悟”。如果一个程序员高兴地跑来叫你去看他的非凡代码,也许你已经看过这样的代码100遍了,但你也应该为了这个家伙而庆祝第101次。
13. 经常检查代码。
在公司,你的代码要经常检查(包括自查和其他同事检查)。不要把别人的检查,看
成是对代码风格的苛求。应该把它们看作是有建设性的批评。对个人来说,经常检查你的代码并且自问,“我
怎样才能写得更好呢?”
这会让你加速你的成长,让你成为一个更优秀的程序员。
14. 回顾你的代码。在
看到自己以前的代码时,通常会有两种方式:“难以至信,这代码是我写的”和
“难以至信,这代码是
我写的”。第一种往往是厌恶的语气,并在想如何改进它。你也许会惊叹,旧代码也能
复活成为一种更好的程序,甚至是一个完整的产品。第二种通常带着惊奇和成
就感。开发人员应该一到两个自
己完成的项目成果,能让众人不禁而立并注目而观的项目。同样,基于你优越的编程能力,你可以把过去的程
序或项目拿出来,把它
们更新为更加优秀的产品或想法。
15.
幽默是不可缺的。在我20年的开发生涯中,我还没有碰到哪位程序员是没有幽默感的。实际上,干我
们这行,幽默是一项必备品。
16.
谨防那些无所不知的程序员,不愿分享的程序员,还有经验不足的程序员。当你遇到这几种程序员时,你自己要谦虚。无所不知的程序员,更想当一个英雄而不是团队成员;保守的程序员则是在编写着他们独享的代码;而经验不足的程序员则会每十分钟就来问你一下,当代码完成后,代码已经是你的,而不是他们。
17. 任何项目都不会那么简单。朋
友、家人和同事曾请求我仓促做一些事情,仓促做一个程序或者网站。
对于这样的事,应该
从双方做计划,才能做出令两方都会满意的东西。如果某人起初只是需要一个使用
Microsoft
Access的、只有有3个页面的网站,但来就很可能变成一个有15个页面的网站,并使用SQL
Server,有一个论坛,还有一个定制的CMS(内容管理系统)。
18.
任何时候不要想当然。假如你承接一个简单的项目,你可能会认为某个部分可以轻松完成。千万别这样想!除非你有一个类、组件、或者一段已经写好的代码,并且在现有的项目已经测试通过。不要认为这将是很容易的。
19.
没有已经完成的软件。曾经有一位程序员告诉我,没有软件是已经完成的,它只是“暂时完成了”。这是明智的忠告。如果客户还在使用你写的程序,并经受了时间的考验。如果有机会,你仍在更新它,这并不是什么坏事,这让你不断地前行。
20. 耐心是一种美德。当
客户、朋友或家庭成员用电脑的时候,他们也许会受挫,进而想砸电脑,或气冲
冲地离开。我一直在
告诉他们,“是你掌控电脑,不是电脑掌控你。”对于用作编程的电脑,你要有一定的耐
心。一旦程序员知道问题所在后,他们就会站在电脑的角度看问题,并且说
“哦,这就是为什么它是这样做。”
分享到:
相关推荐
《教你怎么去读别人的程序》 阅读别人的程序是提升自身编程技能的重要途径,也是软件开发过程中不可或缺的一部分。以下是一些关于如何有效地阅读和理解他人代码的关键知识点: 1. **习惯阅读优质代码**:经常阅读...
7. **良好的编程习惯**:保持一致的编码风格和注释规范,这将使代码更易读、易维护。注释应当清晰地解释代码的功能,而不是重复代码本身的内容。 8. **坚韧与毅力**:编程往往需要长时间的专注和不懈的努力。克服...
程序员编程好习惯总结 ...研究别人编写的代码,学习新的编程技术和解决问题的方法。 15. 备份源代码文件 备份源代码文件,避免代码的丢失和混乱。 附加的习惯是坚持使用一种命名模式,避免混乱和不一致。
读懂别人编写的没有代码的程序,比自己编写更困难一些,但的确是值得的。 第8章 进入Windows内核 96 8.1 开始Windows内核编程 97 8.1.1 内核编程的环境准备 97 8.1.2 用C语言写一个内核程序 99 8.2 学习用...
读懂别人编写的没有代码的程序,比自己编写更困难一些,但的确是值得的。 第8章 进入Windows内核 96 8.1 开始Windows内核编程 97 8.1.1 内核编程的环境准备 97 8.1.2 用C语言写一个内核程序 99 8.2 学习用...
《天书夜读——从汇编语言到Windows内核编程》是一本深入探讨计算机底层原理和技术的书籍,尤其关注汇编语言与操作系统内核的交互。汇编语言是计算机科学的基础,它允许程序员直接控制硬件,是理解计算机工作原理的...
为达到这个目标,我们需要统一我们的编程标准,使得程序能够在短期内被读懂和修改。 一、程序结构 1. 程序结构统一 OB1:主程序; OB100:初始化程序(无需主程序调用); OB35:100ms(可修改)中断(无需主...
首先能认识到名称的重要性需要有一个过程,这也许跟谭式C程序教材被大学广泛使用有关:满书的a、b、c、x、y、z变量名是很难在关键的初学阶段给人传达优秀编程思想的;其次如何恰当的为对象命名也很有挑战性,要准确...
15. **修改他人代码的修养**:在修改别人的代码时,应尊重原作者的工作,保持代码风格一致,做好注释,并测试改动。 16. **函数和宏的复用**:避免代码重复,通过函数和宏实现代码重用。 17. **表达式中的括号**:...
但对于完全没有编程经验的新手来说,它提供了非常有价值的指导和建议。 ##### 编程为何物? 编程是指使用特定的计算机语言来编写指令,这些指令告诉计算机执行特定任务的过程。编程的核心在于逻辑思维和问题解决...
他也强调了阅读别人的代码的重要性,认为学习编程语言和学习一门外语是类似的。 Paul 还分享了他是如何快速学习编程语言的。他认为学习编程语言需要实际操作和实践,不能只是学习语法和理论。他会选择自己已经用...
不要让这种事发生在你身上,在学校你有充足的时间和条件读书,多读书,如果有条件多读原版书,你要知道,当一个翻译者翻译一本书时,他会不知不觉把他的理念写进书中,那本书就会变得像鸡肋! 16.我还是强调认真...
- **解析**:练习题不仅可以检验学习效果,还能提供实际编程经验。 #### 38. C++语言和C++的集成开发环境要同时学习和掌握 - **解析**:熟悉语言的同时也要掌握开发工具,这样才能更高效地编写代码。 #### 39. ...
1. 代码必须清晰、易读,适当地将代码分段,使用‘{’‘}’将函数分成小的单元。 2. 适当地加入空行,使代码更加清晰。 3. 建议遵循三十秒原则,即另一个程序员可以在三十秒之内了解函数的作用、如何实现和为什么...
易读性是指代码易于理解的程度,它是良好编程习惯的重要组成部分。为了提高代码的易读性,文章提出了以下几个方面: 1. **缩进、空格、换行、空行、对齐**:良好的格式化可以显著提高代码的可读性,使得代码结构...
15. **修改别人程序的修养**:在修改别人的代码时,尊重原作者的风格,并尽量保持一致性。 16. **把相同或近乎相同的代码形成函数和宏**:避免重复代码,提高代码复用率。 17. **表达式中的括号**:使用括号来明确...
使代码易于管理的方法之一是增强代码一致性,让别人可以读懂你的代码是很重要的,保持统一编程风格意味着可以轻松根据“模式匹配”规则推断各种符号的含义。创建通用的、必需的习惯用语和模式可以使代码更加容易理解...
《算法导论》是计算机科学...这些知识点构成了《算法导论》的主要内容,它们不仅是理论知识,也是实际编程中不可或缺的工具。通过深入学习和实践,我们可以提升解决问题的能力,为软件开发和数据分析打下坚实的基础。
- 推荐配置:两名擅长编程的队员,一名对软硬件均有了解的队员。 - 团队成员之间要相互学习,共同进步。 3. **元器件采购** - 如果预算有限,除了官方规定的必须购买项目外(如车模),其他配件可以在淘宝等...