一、源码-码农技术水平的分水岭

首先明确一件事情,源码,不是谁想读就可以读的。

行业里,读过一些源码的,可能就10%~20%,但是大多数仅仅停留在了解点源码和原理的程度。

有能力自主透彻阅读源码,深入吃透源码,化为自己的技术功底,而且运用到自己的项目里的,不足1%

所以源码实际上是码农技术水平的分水岭。

那么阅读和分析源码的意义在哪儿?

二、源码阅读的意义

2.1 技术功底

当你阅读了一个技术的源码之后,你的技术功底会得到大幅度的提升。

比如说spring cloud,你阅读了spring cloud的源码之后,你对微服务技术架构的底层原理、架构设计、核心思想都了如指掌了,那么以后如果再出个啥啥啥微服务的相关的技术,你绝对很快就能上手,而且很快就可以自己去阅读那个细腻技术的源码。你的技术功底决定了你的学习能力,技术功底越深厚,以后不断学习新技术的能力、速度以及深度就越强,扎实的技术功底是保证你不断跟进新技术的基础。

而且技术功底一旦扎实了,比如你阅读了spring cloud的源码,后面你再读zookeeper、kafka、rocketmq其他技术的源码,因为你深厚的技术功底,都会轻松和顺利很多。

否则如果你从没读过什么源码,对每个技术的学习就是仅仅会用,使用,浮于表面,那么以后对其他的新技术,你又是从头再来一遍,你对新技术的学习速度和深度都会很差,学习的很慢,而且对任何技术都无法深入研究。

2.2 hold住全场

阅读一个技术的源码,最直接的效益,就是你在公司里,直接会成为这个领域的专家级的人物。因为尤其我们在大公司里,因为访问量和数据量太大了,用的一些技术经常各种出问题,比如说spring cloud框架在每天几百亿次请求下,也许某个地方的一个bug立马暴露出来,导致系统异常。那么此时,就必须要有那种对这个技术精通源码的专家,才可以立马根据异常,从源码级别分析和定位问题,然后从源码角度出发给出问题的解决方案。

如果你不精通源码,一个技术出问题的时候,你就是盲人摸象,在哪儿瞎猜,百度,各种瞎试,有些工作过很多年经验丰富一些的人,可能就连蒙带猜把问题给解决了。但是有的时候这问题解决了,你自己心里都心虚,或者自己也有点不知所以然。

所以我们在大公司里,引入一个新技术的流程,就是首先得派一个技术专家级别的人,去研究那个技术,至少核心源码都读一下,一般一个技术专家级别的人,做到这一点,大概一两个月就够了。

一两个月之后,这个新技术就可以投入生产环境使用,如果出问题,那个人可以从源码级别来解决,我们根本不担心。

2.3 架构设计能力

首先,要知道,最优秀的那些开源技术,都是全世界最最顶尖的各种技术大牛写的,他们写的框架和系统,都是他们多年的技术积累和功底,才能写出来的。所以如果你去读各种知名开源框架或者系统的源码,相当于就是在学习人家设计框架、设计系统的设计思想,同时可以学习人家设计出来的大型框架或者大型分布式系统的架构设计。

如果你读了大量的开源项目之后,你的系统设计能力会得到大幅度的增强,你会不由自主的今后在自己设计系统的时候,将人家的各种架构设计理念、核心技术实现、复杂实现机制都学习后,应用到你自己的系统中去。

在这个层面上,你自己负责设计的系统,会设计的越来越好,而且你看过大量的别人设计的优秀系统之后,也能够让你有能力去设计优秀的系统。

否则,很多人,如果没读过什么源码,那么最后系统设计能力实际上是很弱的,因为完全凭借自己的很多年自己闭门造车的一些经验和思想在设计系统,那么始终设计不出来什么太好的系统架构。

2.4 职场竞争力

看完了一二三点,就会发现,读源码有很多的好处,最近的好处,就是立马可以让你秒变公司里、行业里这个领域的专家,出问题绝对能搞定;远一点儿的,就是以后学习新的技术,绝对会事半功倍;再远一点儿的,以后你设计系统,立马会不由自主吸收人家思想,自己设计的系统会越来越好。

这都是内功,慢慢积累出来的,但是你积累多了,量变产生质变,你的技术实力就跟普通人完全不一样了。你会发现你在公司里是顶梁柱,有问题人家都得来找你,公司里公认你是技术大牛;而且你学习新技术特别快,出了新东西,一周熟悉,一个月读完源码,精通;同时你发现你的系统设计能力越来越得心应手,因为你看过人家大量的系统是怎么设计的,自己设计的时候也非常的有章法,绝对不是那些年轻的生瓜蛋子可以比的。

最后一点,就是在职场上,你综合上面的一二三点,是不是发现你在公司里的职场竞争力很强悍?绝对不是一般人可以比的。同时你出去面试,有没有发现你成为了行业里的top 10%?你的简历各种精通和源码,面试的时候跟面试官侃侃而谈,而且人家也会认可你的技术功底。对不对?

这就是你的综合职场竞争力。

源码阅读的意义:技术功底、hold住全场、设计能力、职场竞争相关推荐

  1. gin context和官方context_gin 源码阅读(二) 路由和路由组

    " 上一篇讲的是gin 框架的启动原理,今天来讲一下 gin 路由的实现. 1 用法 还是老样子,先从使用方式开始: func main() { r := gin.Default() r.G ...

  2. MyBatis 源码阅读 -- 核心操作篇

    核心操作包是 MyBatis 进行数据库查询和对象关系映射等工作的包.该包中的类能完成参数解析.数据库查询.结果映射等主要功能.在主要功能的执行过程中还会涉及缓存.懒加载.鉴别器处理.主键自增.插件支 ...

  3. 多线程与高并发(四):LockSupport,高频面试题,AQS源码,以及源码阅读方法论

    补充几道面试题 锁升级过程:无锁.偏向锁.轻量级锁.重量级锁 StampedLock 自己看一下 面试题:syn和Reentrantlock的区别? LockSupport LockSupport.p ...

  4. zookeeper 源码阅读(2)

    接着zookeeper 源码阅读(1) Zookeeper服务器的启动,大致可以分为以下五个步骤 1. 配置文件解析. 2. 初始化数据管理器. 3. 初始化网络I/O管理器. 4. 数据恢复. 5. ...

  5. HashMap jdk1.7源码阅读与解析

    转载自  HashMap源码阅读与解析 一.导入语 HashMap是我们最常见也是最长使用的数据结构之一,它的功能强大.用处广泛.而且也是面试常见的考查知识点.常见问题可能有HashMap存储结构是什 ...

  6. bert模型简介、transformers中bert模型源码阅读、分类任务实战和难点总结

    bert模型简介.transformers中bert模型源码阅读.分类任务实战和难点总结:https://blog.csdn.net/HUSTHY/article/details/105882989 ...

  7. Rpc框架dubbo-client(v2.6.3) 源码阅读(二)

    接上一篇 dubbo-server 之后,再来看一下 dubbo-client 是如何工作的. dubbo提供者服务示例, 其结构是这样的! dubbo://192.168.11.6:20880/co ...

  8. 【源码阅读】Java集合之一 - ArrayList源码深度解读

    Java 源码阅读的第一步是Collection框架源码,这也是面试基础中的基础: 针对Collection的源码阅读写一个系列的文章,从ArrayList开始第一篇. ---@pdai JDK版本 ...

  9. 【转载】ubuntu下linux内核源码阅读工具和调试方法总结

    http://blog.chinaunix.net/space.php?uid=20940095&do=blog&cuid=2377369 一 linux内核源码阅读工具 window ...

  10. LeGo-LOAM激光雷达定位算法源码阅读(二)

    文章目录 1.featureAssociation框架 1.1节点代码主体 1.2 FeatureAssociation构造函数 1.3 runFeatureAssociation()主体函数 2.重 ...

最新文章

  1. 初识java类的接口实现
  2. mui 加载动画_mui 等待动画loading mui.showLoading
  3. Struts2框架学习Action命名空间创建方式
  4. 关于C语言中一些常用函数的说明
  5. 51cto 检测ip地址冲突_arping 检测IP地址冲突
  6. 安装i3_千元打造完美黑群晖——i3-8100,ITX蜗牛小机箱,显示CPU,支持Nvme缓存(硬件篇)...
  7. python3.7 中文汉化包
  8. iOS 健康 计步 卡路里
  9. linux arm 携程,如何安装ARM toolchain
  10. keil4 mdk安装教程
  11. 国风·召南·野有死麕
  12. apple授权登录(服务端)
  13. 《唐诗三百首》中的童年记录
  14. ArcMap地理配准
  15. 命运被转折改变--掌握java高性能分布式服务和海量大数据技术体系(第二期)
  16. git rebase 的几种用法
  17. 支撑马蜂窝「双11」营销大战背后的技术架构
  18. Python3 《零基础小白从入门到实战》之“continue 语句”
  19. 防止 “黑天鹅”事件需态势感知 态势感知又如何实现?
  20. html实现纸张撕边效果,如何打造纸张撕裂效果!(ps教程)

热门文章

  1. 微信小程序获取地理位置
  2. JavaScript框架的四个时代
  3. 这几个棘手的面试常见问题,如何高情商的回答?
  4. php api地址解析,百度地图API-根据地址解析坐标,根据坐标解析地址
  5. 芯片工程师成长之路_从入门到精通,电子硬件工程师的成长之路
  6. VMware 中Fedora系统连接网络问题!
  7. Springboot中Aspect实现切面(以记录日志为例)
  8. java 解压rar_java 解压rar文件
  9. 电磁场与电磁波 试题含答案
  10. Harbor启动访问502错误