芋道源码 精尽学习指南

1. 概述

无论我们是工作多久的工程师,我们总是在某一刻会大呼“学不动了学不动了”。

并且,我们是无可避免需要有大量加班,比较好的是 985 ,比较苦逼的是 996 。一旦陷入其中,我们可能就忘却了学习这个事情。

另外,我们还会有一个困扰,技术栈这么多,我们应该怎么学习呢?

艿艿的想法是:

  • 线
  • 立体

什么是点?我们平时会在技术社区、公众号、博客上,学习一些技术,但是大家普遍会觉得比较琐碎。

什么是线?当我们学习了同一个技术的多个点之后,我们会逐渐形成这个知识线,对这个知识会相对有整体的认识。

什么是面?当我们学习了多个技术之后,我们会逐步自己的知识面,脑海里会有一颗若隐若现的知识树。

什么是立体?当我们形成自己的知识面之后,我们肯定会惊呼“老子会很多东西,但是好像没有什么擅长的”。有木有?哈哈哈。这个时候,我们需要针对自己感兴趣的技术栈,做深入的理解,慢慢形成某几个技术的深度,这样,我们就开始立体了。当然,一定是几个技术的深入,而不是方块,而是一个锥子,一锥刺骨的那种,杀手锏。

当然,本文暂时先对这个泛泛而谈,本文的重心在于如何先形成自己的“点 -> 线 -> 面”。我们先来看一个图:

  • 一切的核心,都是为了实战。
  • 入门,是为了让我们能够实战。
  • 原理,是为了让我们更好的实战。
  • 源码,是为了让我们更具象的理解原理,从而更好的实战。
  • 所以,一切的核心,都是为了实战。

也因此,一个技术栈的学习的逐步顺序是:入门 => 实战 => 原理 => 源码。

那么,这个和本文又有什么关系呢?我们再来看一张图:

路线图

  • 1、可能胖友会懵逼,卧槽,要学习的有这么多。
  • 2、可能胖友会说,为什么没有 Dubbo、Zookeeper 等等
  • 3、可能胖友会说,怎么没有 AI、大数据呢?

这个路线图,我们定位是让业务开发工程师,有一条相对明确的学习路线,最终实现搭建自己的知识体系。

2. 路线图

下面,我们来分块来看看路线图。

第一步,单体应用

第一步,我们先要学习,能够搭建一个最基本的单体应用。如下图所示:单体应用

在这个过程中,我建议观看视频。

在这一步中,我们需要对每个技术点只要达到“入门”和“实战”两点。

第二步,微服务架构

第二步,我们要再学习,能够搭建一个微服务架构的应用。如下图所示:微服务架构

在这个过程中,我建议以观看视频为主,同时能够认真看完 Spring Cloud 相关的书籍。

为什么要推荐开始看书?因为,到了这个阶段,我们要开始从被动的从视频学习,慢慢变成主动的观看书籍。

《精尽 Spring Cloud 学习指南》

  • Eureka
  • Hystrix
  • Zuul
  • Spring Cloud Config
  • RabbitMQ
  • Zipkin

那么,可能对微服务技术选型有一定的了解会问,为什么不是学习 Dubbo 呢?注意噢,我们是为了搭建知识体系,从这方面上来说,艿艿觉得 Spring Cloud 更适合达成这个目标,周边的书籍、资料更加完善。

当然,等未来回过头,艿艿还是建议大家去学习下 Dubbo 。

在这一步中,我们需要对每个技术点只要达到“入门”和“实战”和“原理”三点。

还有啊,其实每个类型的组件,还有其他的选择,胖友后续也要去学习下:

不要慌,知识这个东西,总是一通百通的。

还有噢,到了这个阶段的学习,我们要关注每个组件怎么实现高性能,怎么实现高可用。

第三步,其它中间件

第三步,我们还要学习,微服务架构需要的其他中间件。如下图所示:其它中间件

在这个过程中,我建议以看书、看博客为主,以视频为辅助。

为什么不再以视频为主呢?我们要能够更加更加更加主动的学习能力。

  • Quartz 或者 Elastic-Job 或者 XXL-Job

    TODO 待补充

  • Elasticsearch

    TODO 待补充

  • Sharding Sphere

    TODO 待补充

  • TCC Transaction

    TODO 待补充

  • ELK

    TODO 待补充

在这一步中,我们需要对每个技术点只要达到“入门”和“实战”和“原理”三点。

也就是说,在这一步中,我们已经不能简单的只会实战,要对原理有一定的认知。

关于工具

工具

Maven、Git、Jenkins ,学会常用的即可。

关于运维

运维

Linux 学会常用的命令即可。

Docker 和 Kuberante ,选择性,非必须。

关于基础

基础

关于如下的基础:

实际上,? 我们更多使用到的是面试的时候,哈哈哈哈。

当然,我们希望成为一个有趣的程序员,35 岁不被淘汰,这些基本功肯定要去补的。

不过呢,艿艿个人的建议是,基础放在【第一步】【第二步】【第三步】学习完之后,在回过头来干。

补充说明

在我们搭建知识体系,请对着每个知识点,认真看每个技术对应的《精尽 XXX 学习指南》里面推荐的书,踏踏实实在把每个技术栈体系化学习下。

在我们搭建知识体系,请对着每个知识点,认真看每个技术对应的《精尽 XXX 学习指南》里面推荐的书,踏踏实实在把每个技术栈体系化学习下。

在我们搭建知识体系,请对着每个知识点,认真看每个技术对应的《精尽 XXX 学习指南》里面推荐的书,踏踏实实在把每个技术栈体系化学习下。

另外,为了验证学习的结果,以及将来有复习的可能性,请做好笔记,可以下载一个【印象笔记】应用,记录、狠狠的记录。

再另外,也可以看看每个技术栈对应的《精尽 XXX 面试题》,验证验证自己学习的咋样~

什么时候看源码?

艿艿一开始看源码,单纯觉得好玩。后来一想,对于一个有追求的工程师,每年看掉几套源码,那么工作 5 年之后,基本主流的源码,都已经看过了。虽然这个过程会比较痛苦,但是前几年确实是我们时间最多的时候。我们不需要考虑家人、孩子。

关于选择看什么源码的顺序,我建议从应用层到基础层。我举个例子:

  • 先看 Spring MVC 源码,在看 Spring 源码。
  • 先看 Dubbo 源码,在看 Netty 源码。

然后呢,如果胖友真的不知道看什么源码,我建议可以星球给艿艿留言。

如下,是艿艿自己经历的,看源码的顺序,可能不一定能成为参考:

  • Spring Security
  • Spring MVC
  • Shiro
  • RocketMQ
  • MyCAT
  • Sharding JDBC
  • TCC Transaction
  • Eureka
  • Hystrix
  • Spring Cloud Gateway
  • SkyWalking
  • Dubbo
  • Netty
  • Spring
  • MyBatis

彩蛋

写的有点杂乱,但是想想,先出一个版本。省得自己的想法丢失。

万一的万一,对胖友有一些些帮助呢?

希望,我们至少能成为有趣的工程师,再然后,贪心一点,成为厉害的工程师。

  • 6
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值