学习路线
funnycoding opened this issue · 0 comments
funnycoding commented
-
语言:Java
- 语言特性 —— 《On Java8》《Core Java》 《EffectJava》 这三本书作为语言特性的学习线索,足够了。 配合自己的思考
- 语言底层 —— JVM 。 《深入理解 JVM 第三版》《The Java® Virtual Machine Specification》(官方文档) 这两本就足够了。官方文档尽量看吧。
- 并发 —— 单独拿出来说,是因为这块非常复杂,阅读就读DougLee 的《Java 并发编程实战》吧。
- JDK 源码的阅读,尤其是并发包的阅读。
- Java 官方的 Web 知识 —— Servlet 相关,JavaWeb 最基础的东西。
- Java 系最常用的开源框架
- Spring 全家桶,重点学习 SpringBoot 以及 SpringCloud(分布式)
- Netty —— 高性能网络框架
- Tomcat —— 可以直接学习 SpringBoot 内嵌的 Tomcat,Servlet 的容器,有很多设计模式
-------- 前三个是最重要的 -------- - Mybatis,JPA —— 具体工作中使用的是 MyBatis Plus 。 其他类型的 ORM 框架也需要学习。
- Rx Java —— 异步的 Java 框架,完全不一样的编程风格,拓宽视野
------------------- 中间件 -------------------
-
中间件
-
MQ:现在分布式这么火,消息中间件必不可少,负责服务之间通信
- 了解其原理
- 了解其实现
- 了解不同中间件的不同适用场景
- 了解其可能出现问题的场景以及解决方法
-
ES:也挺重要的
- 基本上套用MQ的就可以,那4点掌握哦了就差不多了
--------------- 框架暂时就想了这么多, 能精神的学习前三个,就足够了,其他作为使用即可。 ---------------
- 基本上套用MQ的就可以,那4点掌握哦了就差不多了
-
Java 的 基础,底层,框架 基本就差不多了,剩下就是项目了,这里分为以前做过的项目,以及这半年准备做的开源项目:项目需要有明确的不同的侧重点:
- 具有并发性的项目
- 解决了疑难杂症的项目
- 魔改框架的项目
- 个人折腾的项目
- 抄 开源框架 并自己修改的项目
-
Java 项目到这就差不多了,剩下的就是后端的通用技能:
-
-
数据库
- Mysql
- MySQL 是重点,以其为关系型数据库的代表进行学习。
- MySQL 的使用,各种 SQL 的编写
- MySQL 的底层机制的学习,其索引、数据结构,搜索引擎,事务等机制的深入学习。
- Redis
- 了解其使用场景
- 了解其核心机制
- 了解其数据结构
- 了解其基本实现
- 了解其可能存在的踩坑场景
- Mysql
-
数据结构
- 最底层的东西了,计算机编程的核心。
- 学习线性表与其对应的实现
- 学习图/树 并了解其实现
- 预计这里会遇到很多困难
-
算法
- 算法对于野生程序员肯定是 大山之一,那么怎样在边际递减效应之前收获最多的知识
- 策略:
- 对于常用的算法,也非常熟练
- 能将算法与数据结构进行关联
- 能将算法与 JDK 的源码进行关联
- 能降算法与真正的使用场景做关联
- 具体刷题策略:
- LeetCode:总共 1377 题,这个可以归类为很多类, 1377 每天10道 也要137 天,何况不可能10道,把每个大方面的题刷一遍就行,目测刷个3-400题就可以有较大的提升了
------------------- 工程能力 -------------------
- LeetCode:总共 1377 题,这个可以归类为很多类, 1377 每天10道 也要137 天,何况不可能10道,把每个大方面的题刷一遍就行,目测刷个3-400题就可以有较大的提升了
-
设计模式
- 看书上说,设计模式是对语言的补充,因为语言不支持某些特性,才需要在特定场景下的最佳实践。
- 设计模式需要掌握最常用的,总结成自己的
- 找出 JDK 中的设计模式并总结
- 找出 Spring 中的设计模式
- 找出别的开源框架中用的好的设计模式
- 自己使用的设计模式
-
《重构》,《CleanCode》
- 这两本书作为代码能力提升的索引
-
《代码大全》《冒号课堂》
- 这两本书作为整体工程能力的提升
---------- 系统设计能力 ----------
- 看 Github 那个 System Design 仓库就行了,对常用的技术都了解之后跟拼积木差不多,多积累几个场景,有自己的理解就可以了。
----------------- 方法论 -----------------
- 《暗时间》 ---> 相当多的方法论知识都从这里来
- 基于暗时间可以有很多引申的心理学的书籍,不过很多都是英文版的,但是这部分现在又记不起来,所以暂时把暗时间作为最明显的索引就可以了
- 《左耳听风》 ---> 极客时间的专栏,有程序员练级攻略。算是一个比较有价值的资源索引集中地,还有一些作者自己的方法论,英文材料比较多,值得慢慢消化
- 《10x程序员工作法》 ---> 极客时间专栏,侧重于描述怎样解决问题,提高沟通能力,不错的专栏。
----------------- 论坛 -----------------
-
InfoQ 不错的技术网站
-
V2EX
-
黑客派
-
ThoughtWorks 技术雷达