8种提升程序员编程能力的方法
发表于: 2019-04-28 08:31:21 | 已被阅读: 55 | 分类于: 杂谈
对于程序员来说,提高自己的编程能力,算是给自己定的职业发展目标之一,不过定一个成为编程大神的目标很容易,具体做起来可能就不是一件简单的事了。首先,既然决定“我要变得更好”,得先知道“更好”是什么样子的。另外,不能“想变得更好”,却没有任何具体可行的措施。
1. 警惕“我了解”,“我知道”的学习态度
比如希望学习C语言,那第一步要意识到自己不懂 C语言,都懂的话,干嘛还学呢?这听起来像是一句废话,但是太多的计算机专业的学生毕业时,都会有一种傲慢的“我最了解”的虚张声势,并且迫切的希望向每一个同事证明这一点。然而又有太多的例子证明,持这种态度的程序员往往在技术上进步的都比较慢,所以,在深入学习中,“我了解它”,“我知道它”的态度会妨碍你学习任何新的东西。
现在想想,一般声称自己“精通xx语言”的都是菜鸟。
2. 不“自我欣赏”
若希望成为程序员大神,得从各个前辈的经验中学习。但是要小心,经验也有可能会让我们重复不良行为和养成不良习惯。我们都遇到过有八年“经验”的程序员……但是他的“经验”是:同一年的经验,重复了八次。为了避免这种情况,需要时刻反省自己做的每件事,问问自己,“我怎样才能使这个更好呢?“
3. 程序运行起来不是停止,而是开始
的确,程序员的第一步工作应该编写出符合规范的高质量软件,不过一般的程序员一旦把功能实现就会退出,然后继续下一步。一旦“完成”就停止的这种做法,就像是随手拍一张快照,期待它成为一件艺术品。优秀的程序员把功能实现只是开始,还要继续对其精雕细琢,写出稳定性更强,性能更优的程序。
4. 写三次
一般的程序员编写可以正常工作的软件,优秀的程序员编写工作性能更好的软件。但是工作性能更好的软件通常都不是一次性就能完成的,从某种意义上来说,最好的软件一般都要写三次:
- 第一次,编写程序证明自己设计的解决方案是可行的,并在此基础上优化设计。
- 第二次,让程序正常工作了,但是可能还有性能的优化空间,以及可能还存在漏洞。
- 第三次,让程序不仅正常工作,而且可以高效的,稳定的工作。
5. 阅读优秀代码
可以说,阅读大神们的优秀代码是提高编程技能最常见,也是最有价值的建议。当阅读别人的代码时,会看到大神是如何解决编程问题的,不过不要只是“看看而已”,想要变得更好,需要问问自己:
- 要是我遇到相同的问题,我该怎么写这段代码呢?
- 我学到了什么?我如何将这种技术应用于我的程序?
- 如何改进此代码?如果这是一个开源项目,而且你有更好的解决方案,那么就去做!
- 尝试以作者的风格写程序。这样可以让自己从不同角度看待问题,相信是有好处的。
不能只是漫不经心的想这些问题,应该把自己的答案写下来,可以是以个人日志、博客、代码审查等各种形式,就像是向朋友解答一个问题一样,写下并分享自己的分析常常可以帮助自己加深理解。这其实是内省的一部分,可以帮助自己冷静的判断自己的长处和弱点。
许多开发人员通过查看开源软件或其他软件来“找到答案”,并且很有可能复制和粘贴似乎可以解决类似问题的代码。这样做实际上会使自己成为一个更糟糕的程序员,因为盲目的复制和粘贴缺乏自己的思考,别人的东西永远是别人的东西,变不成自己的。
6. 编写程序不全为了挣钱
在自己为研究某项工具或技术而进行一个新的编程项目时,很可能是不挣钱的,但这不能成为停止学习新技能的理由。首先,学习新技能肯定可以提升自己的能力,这些工具和技术可能在目前的工作中不可用,但会使自己在下一个工作中更具市场竞争力。
7. 不完全忽视他人意见
愿意听取别人的意见,对提升自己的编程技术也有所帮助。当进行一个开源项目时,应该注意从用户,或者其他开发人员那里得到反馈,分析这些反馈常常能够推断出自己的项目中存在的问题(用户反馈的使用体验问题,其他开发人员反馈的技术问题等)。
8. 学习的是技术,而不是工具
编程语言、工具和框架总是在不断发展,有的工具或者框架很火,但是可能过段时间就落寞了,已经有太多这样的例子。所以在学习某种工具或者框架时,不应该只停留在工具和框架本身,更应该深入它们了解背后的设计思想和经验这些基础知识,因为基础永远不会过时。