那就是去读别人写的代码。读那些你常用的库、编程框架的源代码,读那些你景仰的大牛的源代码,读代码里的测试(测试本身就是一种有效的文档);读代码、改代码、运行代码。
其实,所谓写程序,大部分的时间都是花在读代码上,“写”的部分耗时极少;所以把“读”的技能训练好了,是很有好处的。
提高编程能力万无一失的办法
每个人都知道,提高编程能力的显著方法是写更多代码。然而,我保证能够提高编程能力的另一种方法却不是写代码。我会尽我所能说明这一点:
如果你想大幅提高自己的编程能力,你需要阅读别人的代码。
不管你以前是不是这样想的,现在你应该接受这个观点。如果你愿意尝试一下,那么你将会收获颇丰。
在这篇文章中,我会帮助你选择阅读哪些代码并且给出如何阅读代码的实用建议。如果你已经是一个代码阅读者,你可能已经找到了一些有效的方法,否则,我觉得你应该开始阅读代码。
阅读哪些代码
这是一个重大的决定,也是一个很难提出建议的决定。由于阅读什么代码归根结底与你的工作有关,所以我不会简单的指出我认为你应该读的具体代码。然而,我将会提供给你一些阅读代码的参考。
阅读你依赖的代码
阅读使用的插件或库是一个很好的开始。
一个你真正喜欢的 WordPress 插件
一个你发现有用的 Ruby gem
一个你一直使用的 jQuery 插件
这些都是很好的选择。你已经很熟悉它们的公共 API,这样会降低对内部工作机制的理解障碍。此外,作为代码的使用者,你有机会添加文档、实现新功能或以某种方式为项目贡献代码。
阅读令你印象深刻的代码
我记得第一次看到 280 Slides 的情景,当时我告诉自己“这真的令人印象深刻”。我很快了解到它是一个由开源 Cappuccino 项目框架开发的网站,我将它牢记于心,当我再次遇到一个令人印象深刻的 app 也使用 Cappuccino 框架时,我知道我可以从这个项目中学到很多。最近令你印象深刻的是什么?它是开源代码吗?如果是,那么它将是一个很好的选择,因为代码可能会与应用一样令你印象深刻。
阅读你崇拜的人写的代码
如果你已经使用开源软件写了一段时间代码,你可能会有一些崇拜的程序员。
如果你没有一个崇拜的开发者,你也可以很容易地找到一个。她/他很可能写了前面两段提到的代码(你依赖的代码、令你印象深刻的代码)。
阅读你可以理解的代码
如果你喜欢冒险,你可能会考虑深入理解一个大型项目,如 Ruby on Rails、Drupal、或者 jQuery。我建议你目前避开这样的项目,除非你是一个有经验的代码阅读者。
大项目包括更多模块,你可能挣扎于纷杂的概念,而没有学到有价值的内容。困惑会使人沮丧,项目越大,越容易产生困惑,从而影响你的阅读。阅读小项目的好处就是你可以很快的了解整个程序的逻辑,这样你就更容易集中精力发现和学习其中的细节。
记录你的发现
阅读代码不应该是个被动行为。我鼓励你添加注释,当开始了解程序流程时记录你的假设和结论。当你第一次开始写评论时看起来是这样的:
# I think this function is called after 'initialize'
# 我认为这个函数在“初始化”之后调用
# What does this equation even do?
# 这个公式是做什么用的?
# Pretty sure this variable loses scope after line 17
# 非常确定这个变量在 17 行后失去作用域
随着你的深入理解,你可以删除自己的用户评论,写出可以反馈给项目的更有意义、更权威的评论。
冲洗和重复
当你读完一个代码库,选择另外一个代码库重新开始这个过程。你读的代码越多、读的越好,完成的时间就越短。我想你会发现投资回报率在飞快的增长,这实际上是一种非常愉快的学习方式。
最后祝你在未来的时间里能够使自己变得更加强大,充实自己是你现在的主要目标,以后也是一样!
如果你想跟着小编一起学编程的话!
可以来我的编程公众号【草莓味狸猫】!
还有(源码,零基础教程,项目实战教学视频),欢迎初学者和正在进阶中的小伙伴们!
领取专属 10元无门槛券
私享最新 技术干货