
本文共 4036 字,大约阅读时间需要 13 分钟。
8种提升程序猿编程能力的方法
对于程序员来说,提高自己的编程能力,算是给自己定的职业发展目标之一,不过定一个成为编程大神的目标很容易,具体做起来可能就不是一件简单的事了。首先,既然决定“我要变得更好”,得先知道“更好”是什么样子的。另外,不能“想变得更好”,却没有任何具体可行的措施。

1. 警惕“我了解”,“我知道”的学习态度
比如希望学习C语言,那第一步要意识到自己不懂 C语言,都懂的话,干嘛还学呢?这听起来像是一句废话,但是太多的计算机专业的学生毕业时,都会有一种傲慢的“我最了解”的虚张声势,并且迫切的希望向每一个同事证明这一点。然而又有太多的例子证明,持这种态度的程序员往往在技术上进步的都比较慢,所以,在深入学习中,“我了解它”,“我知道它”的态度会妨碍你学习任何新的东西。
现在想想,一般声称自己“精通xx语言”的都是菜鸟。
2. 不“自我欣赏”
若希望成为程序员大神,得从各个前辈的经验中学习。但是要小心,经验也有可能会让我们重复不良行为和养成不良习惯。我们都遇到过有八年“经验”的程序员……但是他的“经验”是:同一年的经验,重复了八次。为了避免这种情况,需要时刻反省自己做的每件事,问问自己,“我怎样才能使这个更好呢?“

3. 程序运行起来不是停止,而是开始
的确,程序员的第一步工作应该编写出符合规范的高质量软件,不过一般的程序员一旦把功能实现就会退出,然后继续下一步。一旦“完成”就停止的这种做法,就像是随手拍一张快照,期待它成为一件艺术品。优秀的程序员把功能实现只是开始,还要继续对其精雕细琢,写出稳定性更强,性能更优的程序。

4. 写三次(个人比较看中这点)
一般的程序员编写可以正常工作的软件,优秀的程序员编写工作性能更好的软件。但是工作性能更好的软件通常都不是一次性就能完成的,从某种意义上来说,最好的软件一般都要写三次:
第一次,编写程序证明自己设计的解决方案是可行的,并在此基础上优化设计。 第二次,让程序正常工作了,但是可能还有性能的优化空间,以及可能还存在漏洞。 第三次,让程序不仅正常工作,而且可以高效的,稳定的工作。
5. 阅读优秀代码
可以说,阅读大神们的优秀代码是提高编程技能最常见,也是最有价值的建议。当阅读别人的代码时,会看到大神是如何解决编程问题的,不过不要只是“看看而已”,想要变得更好,需要问问自己:
要是我遇到相同的问题,我该怎么写这段代码呢? 我学到了什么?我如何将这种技术应用于我的程序? 如何改进此代码?如果这是一个开源项目,而且你有更好的解决方案,那么就去做! 尝试以作者的风格写程序。这样可以让自己从不同角度看待问题,相信是有好处的。 不能只是漫不经心的想这些问题,应该把自己的答案写下来,可以是以个人日志、博客、代码审查等各种形式,就像是向朋友解答一个问题一样,写下并分享自己的分析常常可以帮助自己加深理解。这其实是内省的一部分,可以帮助自己冷静的判断自己的长处和弱点。
许多开发人员通过查看开源软件或其他软件来“找到答案”,并且很有可能复制和粘贴似乎可以解决类似问题的代码。这样做实际上会使自己成为一个更糟糕的程序员,因为盲目的复制和粘贴缺乏自己的思考,别人的东西永远是别人的东西,变不成自己的。
6. 编写程序不全为了挣钱
在自己为研究某项工具或技术而进行一个新的编程项目时,很可能是不挣钱的,但这不能成为停止学习新技能的理由。首先,学习新技能肯定可以提升自己的能力,这些工具和技术可能在目前的工作中不可用,但会使自己在下一个工作中更具市场竞争力。

7. 不完全忽视他人意见
愿意听取别人的意见,对提升自己的编程技术也有所帮助。当进行一个开源项目时,应该注意从用户,或者其他开发人员那里得到反馈,分析这些反馈常常能够推断出自己的项目中存在的问题(用户反馈的使用体验问题,其他开发人员反馈的技术问题等)。

8. 学习的是技术,而不是工具
编程语言、工具和框架总是在不断发展,有的工具或者框架很火,但是可能过段时间就落寞了,已经有太多这样的例子。所以在学习某种工具或者框架时,不应该只停留在工具和框架本身,更应该深入它们了解背后的设计思想和经验这些基础知识,因为基础永远不会过时。

编程思维
编程思维是什么?
很多人都听过编程思维,但对它了解的却不多,甚至会产生这种误解——编程思维就是编程算法。
其实,编程思维并不是编写程序的技巧,而是一种高效解决问题的思维方式,它是“理解问题——找出路径”的高效思维过程,由分解、模式识别、抽象、算法四个步骤组成。

锻炼拆解复杂问题的能力
分解,就是把一个复杂的大问题,拆解成更可执行、更好理解的小步骤。 假如,要为自己全家人做一次出游规划,“全家旅游规划”听起来非常庞大、繁琐,而懂得“分解”的话,就可以把这个大难题分解成几个容易解决的小步骤:确立目的地、安排行程、预定机票和酒店、准备行李清单。
2、模式识别
发现并整合“重复规律”的能力
模式识别,就是识别不同问题的模式和趋势(共同点)的过程,在我们的经验库里找出类似问题的解决办法,套用解决。识别的模式越多,解决问题的速度也就越快。 例如,如果需要画100只猫,你会怎么办?是找100只猫来临摹还是找出猫的“模式”? 对猫进行模式识别,我们会发现猫有这些共同点:有眼睛、耳朵、尾巴、四条腿…… 我们根据这些特点建立起猫的“模式”,按照这个模式就能批量画猫了。不用每次画一个新动物,只需要变换局部特征(例如毛发颜色、尾巴长短)就能轻松解决。
3、抽象
锻炼找出问题本质的能力
抽象,是指聚焦最重要的信息,忽视无用细节。简单来说就是找到问题的本质,过滤掉其他无关紧要的因素。 例如,面前有一套房子,我们看到的是这样的:

4、算法
锻炼高效解决问题的能力
算法,是一步步解决问题的过程。根据前面对问题的分析与理解,设计每一步的路径方法,解决整个问题。 在具体解决问题的过程中,最关键的是逻辑思维能力和调试纠错能力。

苹果CEO乔布斯曾说过:“每个人都应该学习编程,因为它教会你如何思考。”编程思维在各个行业都用得到,是未来人工智能时代每个人都应具备的一种思维,先人一步学习编程,快人一步把握未来机遇。
关注苏州程序大白,持续更新技术分享。谢谢大家支持
发表评论
最新留言
关于作者
