赞
踩
无论我们是工作多久的工程师,我们总是在某一刻会大呼“学不动了学不动了”。
并且,我们是无可避免需要有大量加班,比较好的是 985 ,比较苦逼的是 996 。一旦陷入其中,我们可能就忘却了学习这个事情。
另外,我们还会有一个困扰,技术栈这么多,我们应该怎么学习呢?
艿艿的想法是:
什么是点?我们平时会在技术社区、公众号、博客上,学习一些技术,但是大家普遍会觉得比较琐碎。
什么是线?当我们学习了同一个技术的多个点之后,我们会逐渐形成这个知识线,对这个知识会相对有整体的认识。
什么是面?当我们学习了多个技术之后,我们会逐步自己的知识面,脑海里会有一颗若隐若现的知识树。
什么是立体?当我们形成自己的知识面之后,我们肯定会惊呼“老子会很多东西,但是好像没有什么擅长的”。有木有?哈哈哈。这个时候,我们需要针对自己感兴趣的技术栈,做深入的理解,慢慢形成某几个技术的深度,这样,我们就开始立体了。当然,一定是几个技术的深入,而不是方块,而是一个锥子,一锥刺骨的那种,杀手锏。
当然,本文暂时先对这个泛泛而谈,本文的重心在于如何先形成自己的“点 -> 线 -> 面”。我们先来看一个图:
也因此,一个技术栈的学习的逐步顺序是:入门 => 实战 => 原理 => 源码。
那么,这个和本文又有什么关系呢?我们再来看一张图:
这个路线图,我们定位是让业务开发工程师,有一条相对明确的学习路线,最终实现搭建自己的知识体系。
下面,我们来分块来看看路线图。
第一步,我们先要学习,能够搭建一个最基本的单体应用。如下图所示:
在这个过程中,我建议观看视频。
Java
《精尽 Java【基础】学习指南》 入门即可。
艿艿当前看的马士兵。
Servlet & JSP & JDBC
这个的视频资源,自己找,艿艿当前看的马士兵。
MySQL
《精尽 MySQL 学习指南》 入门即可。
MyBatis
《精尽 MyBatis 学习指南》 入门即可。
Spring MVC
《精尽 Spring MVC 学习指南》 入门即可。
Spring Boot
- 舍得花钱,就直接买小马哥的 《Java 微服务实践 - Spring Boot 系列》 。
- 当然,看看尚硅谷的《Spring Boot 视频教程》也是可以的。
Redis
《精尽 Redis 学习指南》 入门即可。
MongoDB
《精尽 MongoDB 学习指南》 入门即可。
Spring Security
TODO 待补充
Nginx
《精尽 Nginx 学习指南》 入门即可。
在这一步中,我们需要对每个技术点只要达到“入门”和“实战”两点。
第二步,我们要再学习,能够搭建一个微服务架构的应用。如下图所示:
在这个过程中,我建议以观看视频为主,同时能够认真看完 Spring Cloud 相关的书籍。
为什么要推荐开始看书?因为,到了这个阶段,我们要开始从被动的从视频学习,慢慢变成主动的观看书籍。
- 推荐的视频是,小马哥的 《Java 微服务实践 - Spring Cloud 系列》 。
- 推荐的书籍是,翟永超的 《Spring Cloud微服务实战》
那么,可能对微服务技术选型有一定的了解会问,为什么不是学习 Dubbo 呢?注意噢,我们是为了搭建知识体系,从这方面上来说,艿艿觉得 Spring Cloud 更适合达成这个目标,周边的书籍、资料更加完善。
当然,等未来回过头,艿艿还是建议大家去学习下 Dubbo 。
在这一步中,我们需要对每个技术点只要达到“入门”和“实战”和“原理”三点。
还有啊,其实每个类型的组件,还有其他的选择,胖友后续也要去学习下:
Eureka VS Zookeeper
TODO 待补充
Hystrix VS Sentinel
TODO 待补充
Zuul VS Spring Cloud Gateway
TODO 待补充
Spring Cloud Config VS Apollo
TODO 待补充
RabbitMQ VS RocketMQ VS Kafka
Zipkin VS SkyWalking
TODO 待补充
不要慌,知识这个东西,总是一通百通的。
还有噢,到了这个阶段的学习,我们要关注每个组件怎么实现高性能,怎么实现高可用。
第三步,我们还要学习,微服务架构需要的其他中间件。如下图所示:
在这个过程中,我建议以看书、看博客为主,以视频为辅助。
为什么不再以视频为主呢?我们要能够更加更加更加主动的学习能力。
Quartz 或者 Elastic-Job 或者 XXL-Job
TODO 待补充
Elasticsearch
TODO 待补充
Sharding Sphere
TODO 待补充
TCC Transaction
TODO 待补充
ELK
TODO 待补充
在这一步中,我们需要对每个技术点只要达到“入门”和“实战”和“原理”三点。
也就是说,在这一步中,我们已经不能简单的只会实战,要对原理有一定的认知。
Maven、Git、Jenkins ,学会常用的即可。
Linux 学会常用的命令即可。
Docker 和 Kuberante ,选择性,非必须。
关于如下的基础:
Java 并发
NIO & Netty
设计模式
JVM
算法
TODO 待补充
实际上,? 我们更多使用到的是面试的时候,哈哈哈哈。
当然,我们希望成为一个有趣的程序员,35 岁不被淘汰,这些基本功肯定要去补的。
不过呢,艿艿个人的建议是,基础放在【第一步】【第二步】【第三步】学习完之后,在回过头来干。
在我们搭建知识体系,请对着每个知识点,认真看每个技术对应的《精尽 XXX 学习指南》里面推荐的书,踏踏实实在把每个技术栈体系化学习下。
在我们搭建知识体系,请对着每个知识点,认真看每个技术对应的《精尽 XXX 学习指南》里面推荐的书,踏踏实实在把每个技术栈体系化学习下。
在我们搭建知识体系,请对着每个知识点,认真看每个技术对应的《精尽 XXX 学习指南》里面推荐的书,踏踏实实在把每个技术栈体系化学习下。
另外,为了验证学习的结果,以及将来有复习的可能性,请做好笔记,可以下载一个【印象笔记】应用,记录、狠狠的记录。
再另外,也可以看看每个技术栈对应的《精尽 XXX 面试题》,验证验证自己学习的咋样~
艿艿一开始看源码,单纯觉得好玩。后来一想,对于一个有追求的工程师,每年看掉几套源码,那么工作 5 年之后,基本主流的源码,都已经看过了。虽然这个过程会比较痛苦,但是前几年确实是我们时间最多的时候。我们不需要考虑家人、孩子。
关于选择看什么源码的顺序,我建议从应用层到基础层。我举个例子:
然后呢,如果胖友真的不知道看什么源码,我建议可以星球给艿艿留言。
如下,是艿艿自己经历的,看源码的顺序,可能不一定能成为参考:
写的有点杂乱,但是想想,先出一个版本。省得自己的想法丢失。
万一的万一,对胖友有一些些帮助呢?
希望,我们至少能成为有趣的工程师,再然后,贪心一点,成为厉害的工程师。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。