为什么要读源码 暨 我后面的个人提升计划

缘起

其实源码是挺枯燥的. 但是作为一个有追求的程序员又是不能不跨过去的一道坎. 否则的话,说好听点——技术对你永远透明,说难听点,你永远是一个被愚弄的傻瓜. 所以让”不要重复造轮子”这种鬼话见鬼去吧!!!!

为什么有的高手见到功能就大概能猜出源码的架构是什么? 而你只是天天调API完成功能开发?

如果不经常读源码,代价就是来一门新技术你就要熟悉一套API,不胜其烦, 你追求的完么?~ 根治的办法就是多读源码,了解其底层设计思想. 新来一门技术,不需要很大力气就可以玩转它.

不读源码的话,你永远是被奴役的对象——你永远没办法站在和设计者一个level讨论问题. 这是我极度不爽的.

分析

讲到这里,谈一下后面我的个人提升计划——我已经花了近两年时间学会用(注意,仅仅是用,都不深入)市面上的通用技术——不论是前端还是后端还是大数据端。 现在已经对这样简单搭环境–>调用API开发的模式有点厌烦了. 我要掏它的底!!!

计划如下

  1. 多读源码,现在已经在读Spring的源码. 读源码的方法是带着问题去读(不论这个问题是你自己问的,还是你在工作中做项目遇到的)——抓主线. 不然陷入其中,代价就是丈二和尚摸不着头脑. 读完这个Spring的事务的源码之后就可以开始读springboot的,后续再考虑将一些集成的组件,如spring-security、oauth2的源码接着读. 最后要熟悉3个东西的架构,一个是缓存,一个是消息, 最后一个是权限. 要能仿照着既有项目写出自己的来, 哪怕弄懂原理的前提下能抄一遍我都认可~
  2. 多学习算法. 现在已经在学习各种算法,并且有时间会做点oj的题目,并且都会写解题报告——一定要求ac,不ac的算法都是耍流氓——都是有bug的.
  3. 夯实并发. 阅读并发编程实践这本神书以及极客上王宝令老师的订阅. 注意,1是架构的极致,2是单线程任务的性能的极致, 3就是调度的极致. 只有这三点并驾齐驱,一个项目才可能高效运行起来.

我目前理解的,一个项目大抵不过这三个东西,所以目前第二阶段提升计划就是这3项任务. 一定可以让我和其他程序员与众不同.

后续慢慢接入第三阶段的时候就会把 “操作系统–>网络协议–>编译原理–>数据库理论” 基本按照这个顺序接进来. 当然,第二阶段不能偏废~ 也要适当跟进. 只是那个时候已经不需要多大力气就可以弄清一个系统的源码以及搞定一道oj题目或者弄懂一个算法了, 常见的并发设计模式也比较清楚.

任重而道远!!!向互联网行业35岁定律说不!!!