阅读源码肯定是对技术水平有提升的,具体提升多少那要看他从源码中学到了多少。
程序员可以分为4个层次。
1. 有阅读并吃透大型知名框架的能力
2. 能够知道并通过阅读框架源码来解决问题
3. 能够知道并通过找官方文档来掌握框架的使用
4. 需要有人手把手教或者自己踩过很多坑才能掌握一个框架的使用
这其实也体现了我对阅读源码这件事的看法。想成为厉害的程序员,阅读源码的能力必不可少,并且能够hold住的源码复杂度越高,水平越高。
当你阅读了一个技术的源码之后,你的技术功底会得到大幅度的提升。
比如说spring cloud,你阅读了spring cloud的源码之后,你对微服务技术架构的底层原理、架构设计、核心思想都了如指掌了,那么以后如果再出个啥啥啥微服务的相关的技术,你绝对很快就能上手,而且很快就可以自己去阅读那个细腻技术的源码。你的技术功底决定了你的学习能力,技术功底越深厚,以后不断学习新技术的能力、速度以及深度就越强,扎实的技术功底是保证你不断跟进新技术的基础。
阅读一个技术的源码,最直接的效益,就是你在公司里,直接会成为这个领域的专家级的人物。因为尤其我们在大公司里,因为访问量和数据量太大了,用的一些技术经常各种出问题,比如说spring cloud框架在每天几百亿次请求下,也许某个地方的一个bug立马暴露出来,导致系统异常。那么此时,就必须要有那种对这个技术精通源码的专家,才可以立马根据异常,从源码级别分析和定位问题,然后从源码角度出发给出问题的解决方案。
如果你不精通源码,一个技术出问题的时候,你就是盲人摸象,在哪儿瞎猜,百度,各种瞎试,有些工作过很多年经验丰富一些的人,可能就连蒙带猜把问题给解决了。但是有的时候这问题解决了,你自己心里都心虚。
但是:源码,不是谁想读就可以读的。
行业里,读过一些源码的,可能就10%~20%,但是大多数仅仅停留在了解点源码和原理的程度。有能力自主透彻阅读源码,深入吃透源码,化为自己的技术功底,而且运用到自己的项目里的,不足1%。
要想读一些项目源码,必须具备相应的技术基础,然后就是花时间坚持下来,技术能力就是这样一点点积累起来的。
所以源码实际上是码农技术水平的分水岭。
在此,推荐有时间(时间都是挤出来的)而且有意提高自己技术水平的同学可以多去读读优秀项目的源码。
如果直接下载这些项目的源码阅读起来吃力的话,可以阅读一些大神加工、描述过的内容,我推荐去这里看看:
java源码阅读:JAVA源码解析,JUC、集合源码解析 - 小牛知识库
spring源码阅读:Spring、SpringMVC源码解析 - 小牛知识库
dubbo源码阅读:Dubbo源码解析 - 小牛知识库
redis、mysql源码阅读:Mysql、Redis等数据库源码解析 - 小牛知识库