1开发过程中建立自我意识。通过在开发中有意识的可以使用进行新技能的锻炼,多对开发工程进行观察,和学习其他解决方法,这样就对整个项目有很强的把握能力,甚至可以带领整个团队走向更好的方向。如果你现在做的是市场前景很好的工作,那也意味着工作中的某些技术可能会很快被淘汰,注意保持好奇心和创造力。
2实验。了解编程的一个有效方法就是对编程和开发过程做实验。你可以编写一个程序并观察它是如何工作的,调试器里跟踪程序的执行把握它的特性。用个小程序去检验一个不太了解的概念,这对增进理解有非常大的帮助。或者用一个短程序,去试图制造一些错误,通过错误去学习。错误不是罪过,没有从错误中学到什么那才是罪过。
3阅读解决问题的有关方法。解决问题是软件开发过程核心的活动。一个奇怪的现象:人们通常不能从自己面临的问题找出解决的方法,即使这个方法很简单。
4行动前先做好分析和设计。尽管实践和分析设计过程有很大的矛盾,但是好的分析会避免让你过早走向一个错误的方向,好的设计可以避免混乱。
5学习成功或失败项目的开发经验。学习编程的好方法是向一些优秀的程序员学习。应该要注重项目的战略思想,把握项目中解决关键难点的战术。任何成熟的科学,都是通过解决问题发展起来的。这些问题通常被看一些被良好解决的例子,并可为将来工作做指导。(这可能也是目前很多公司注重工作经验的原因吧?)我们应该努力对别人工作存在的问题做研究,学习别人的无论成败的解决办法都是很有意义的。多拿自己的代码和比你优秀人的代码做比较,看看你们间有什么异同?为什么会有这样的差异?谁的更好?为什么?也要多让自己的代码让别人评价,这样可以提高自己的程序质量。
6阅读手册,书籍和期刊。手册中往往对带有些可以直接调用的子程序,这对我们研究和解决具体问题有很大帮助。书籍中往往是介绍系统理论,多阅读可以提高专业能力;期刊中常常包含着流行的技术和观点可以开阔眼界。
3.诚实
编程生涯成熟的部分标志是坚持诚实。通常是:不假装自己是高手、乐于承认错误、尊重编译器的警告、对程序有清晰的了解,而不是编译看其是否有错、提高实际状态报告、提供实际方案评估,在上级面前坚持自己的意见。你最好假装自己知之甚少,听别人的解释,向他们学习,并且评估他们是否了解其正在讨论的东西:)
你应该对自己能力做某种程度评估,认为自己完美是一个不妙的信号。错误正如潮流一样是一个复杂的活动,如果你过去没犯过错误,那么没有人会将错误归咎于你。所以正视自己的错误。当你并不了解程序时,编译运行并不是解决问题的方法。测试是证明错误的存在,而不是保证没有错误。如果不能深入理解程序,就不能深入测试。依据事实给出准确的状态报告,不能欺骗自己和别人,这是充分合作的前提。不能因为压力而否定符合规律的做法——这个项目需要10人月,要用5人月完成除非降低性能或其他做法——准确的向上司说明情况。
4.交流与合作
真正优秀的程序员应学会怎样和别人工作和娱乐。真正阅读你写出的程序是人,而不是给计算机——注意代码的可读性。绝多数高水平的程序员坚持自己代码的可读性,并抽出充足时间这么做。对程序员能力的界定标准:
1初学者
是能使用一种语言基本能力的程序员,他能使用子程序、循环、条件语句或其他许多语言特征。
2中间者
有使用许多语言的能力,并且至少非常熟悉某一种语言。
3专家
对其语言或环境或这二者有很深的造诣。这种级别的程序员对公司是有价值的,而且有些程序员往往就停留在这个水平上。
4大师
有着专家那样的专业知识,并且意识到编程只是15%和计算机交流,其余85%是和人打交道。一般程序员只有30%时间或更少。而且大师注重给人看的清晰易懂的代码,并注意建立有关文档。
不强调可读性的高水平代码者可能停留在级别3上面。并且根据经验,编写不可读代码的主要原因是:代码质量差或是编写者自己并不能完整地理解自己的代码。当你知道自己的水平后,不必内疚和自愧。在你知道如何提高水平后,你倒应该为自己停留在初学者或专家水平上有多长时间而内疚。
5.创造力和纪律
虽然一些有创造力的程序员将各种标准和约定视为对其创造力的阻碍,但是没有这些约束项目实现是不可能的。不要在无关紧要的领域建立约定,应该在值得的地方发挥你的创造力。一个杰出的程序员需要遵守许多规则。如果编码之前不分析需求就设计,那么你就学不到项目的许多东西,那样工作就像小孩画画而不是艺术品。
6.懒惰
懒惰的三种形式:1拖延自己讨厌的工作2迅速解决讨厌的任务以摆脱任务3写一个工具来完成讨厌的工作解脱自己。当你不是透过玻璃看问题的时候,你就看到了懒惰的另一方面。"赶着做"是一种多余和没有必要的"努力"。有效的工作最重要的现象是人们在思考种往往显得冷静而不忙。一个一直很忙碌的程序员不是好程序员,因为他并不是在使用对于他来说最有价值的工具和头脑。
(编辑:)