为什么你应该多读读别人的代码

这篇文章,是写给那些不经常阅读他人代码,甚至从不阅读他人代码的人看的。

很多人没有阅读他人代码的习惯,自从他们开始学习编程开始可能就这样。而且,就我所知,很少有人会跟编程新手强调阅读他人代码的重要性。

在我看来,阅读代码这件事,跟阅读书籍十分类似。我们会通过阅读他人写的书,特别是好书,来汲取他人优秀的思想,增长自己的能力。同样在编程方面,阅读他人的代码(最好是优秀的代码),从中体会和学习代码背后的思想,可以提高我们的编程能力。

很多新人在刚学完一门编程语言后,想要写点有意思的东西,但在大多数情况下,无从下手。这其实跟写作很类似。一个人,如果平时很少阅读,没有读过优秀的书籍,没有进行高质量的输入的话,是很难写出有价值的文章的,甚至不知道自己可以写什么内容。当然,不排除有些人没有读书的习惯,但是他们见过不少世面,去过不少地方,在我看来,这其实也算是一种高质量的输入,只是这种输入方式,不是通过阅读,而是通过阅世。由此可见,阅读他人源码的重要性。

但是,很多人不愿意阅读他人的源码,为什么会这样?我想就这个问题,提出自己的几点想法。

原因一,从没有阅读他人源码的习惯。正是因为没有阅读他人源码的习惯,所以当碰到他人的源码时,会倾向于不读。这里,我认为可以用马太效应来解释这种现象。如果一个人不怎么阅读他人的源码,那么根据马太效应,他会倾向于不读。如果有阅读他人的源码的习惯,你就读的更多。

原因二,觉得那是别人的代码,不是我自己写出来的东西,我不看,我要写我自己的代码。对于这个,同样类比到阅读书籍上,如果一篇文章是别人写的,难道就不读了吗。况且,我们平时读的文章,几乎都是别人写出来的。

原因三,认为自己读不懂。这里我还是通过阅读书籍来进行类比。有些书籍,特别是那些优秀的书籍,对于一个人来说,会是难以读懂的,但是通过自己不断地积累阅读量,你总可以在以后读懂的;有些书籍,则是可以稍微努力一下,就可以读懂的;有些书籍,不花一点功夫就能读懂。阅读代码也一样,有些代码确实难以读懂,尤其是那些大师写下来的代码,但是,通过读那些稍微超出自己理解范围的代码,一点点地积累,不断地进步,迟早能读懂那些当初让自己读懂当初读不懂的代码。

关于阅读他人代码的好处,我还想再讨论一下。

首先,阅读他人代码的最显而易见的好处,就是可以应用自己的所学到的编程知识。通过阅读他人的源代码,你会不断地去理解他们的代码,在这个过程中你会不断地去调用自己所学的编程知识,自己对所学知识的理解会更加地深入,阅读代码的能力也会相应的提高。就像我们能够通过阅读文字来锻炼和提高自己的阅读能力一样。

其次,可以学习他人优秀的思路。他人代码背后的思路是最有价值的东西。一个东西,那些高手是怎么把这个东西实现的,你通过学习他们实现这个东西的思路,自己的编程能力也能得到很好的提高。

最后,对于踩在前人的肩膀上,我想进行一些讨论。有很多人都知道,我们作为后人,要想看得高,看得远,就需要踩在前人的肩膀上。但是,在我看来,很多人在做的事情,却与这个观点背道而驰。就拿贪吃蛇这个程序作为例子。很多人写贪吃蛇这个程序的时候,会试图凭借自己的一己之力从头开始写,过程中不查别人实现这个程序后写下来的实现文档,最多查查编程语言的语法知识。这其实是一种重复造轮子的行为。前人已经把轮子发明出来了,为什么还要想着去重新发明一遍呢?你可能会想到,我自己发明一遍,前人走过的路,我自己再走一遍,那么印象会更加深刻,会明白更多的知识,就能彻底懂得这个东西了。这其实是没有必要的。(那么为什么没有必要呢?)前人早就发明好的东西,我们直接去学习它的思路就好,比如贪吃蛇,直接学习贪吃蛇的实现思路即可。放眼其他领域,你不必重新发现一个已知的著名数学公式;不必重新发明一把锤子;不必重新发明一辆汽车。

猜你喜欢

转载自www.cnblogs.com/stycoding/p/12635012.html