Java学习路线规划
1.JAVA语言基础
第一本书《Head First Java》
学习基础语法,集合、多线程、网络、面向对象设计等
第二本书《Java并发编程实战》
要写出工业级的代码,必然和并发脱离不了干系。程序员面试,并发也是必考知识点之一。
代码规范
Java服务端遵循的是Oracle的Java语言编码规范,在编写代码之前,要先熟悉:
英文原址:https://www.oracle.com/java/technologies/javase/codeconventions-contents.html
中文机翻参考:https://www.cnblogs.com/bluestorm/archive/2012/10/04/2711540.html
2.Java语言进阶
掌握基本的调优技能、常见开发框架以及面向对象设计的思想,目标:服务端项目开发
第三本书《深入理解Java虚拟机》和《深入理解java内存模型》
了解JVM
第四本书《Java性能权威指南》
通过使用JVM和Java平台,以及Java语言和应用程序接口,本书详尽讲解了Java性能调优的相关知识,帮助读者深入理解Java平台性能的各个方面,最终使程序如虎添翼。
第五本书《大话设计模式》
如果以前未接触过面向对象程序设计,那么本书必读,毕竟面向对象程序设计和C语言中面向过程设计有很大的不同。
3.分布式
学习目标:中间件开发和分布式系统
学习内容:
- 开源项目:学会分析项目中的设计思路、中间件开发和项目源码,比如RocketMQ、Netty等。
- 知识体系构建。回顾自己的学习过程,建构自己的知识体系,多看大型网站系统和技术建构,了解核心原理和Java实践过程。
- 参与项目。参与项目的过程是提高深化的过程。在这个过程中你就能发现自己对那些知识掌握不足,也能够提高自己的能力,多参加项目才会提高更快。
- 根据自己的实际需求提升某方面技能。这就是个查漏补缺、优势扩大的过程。在流式计算上有优势,就进一步提升,在找一些相关的书籍精读。
第六本书《数据密集型应用系统设计》
分布式领域圣经
包含:分布式系统的存储(第三章存储、第五章复制、第六章分片)、分布式一致性、实时计算(第十章和十一章的批处理和流处理)。书中更是给出了相当多的参考文献链接,值得深入研究。
第七本书《高性能MySQL》
数据库,本书深度讲解了mysql引擎架构、索引设计、SQL查询优化的实战技巧、复制、分片等原理,还有运维技能。
4.java内功修炼
第八本书《重构》
改善既有代码设计
5.进阶学习
Web基础
掌握Cookies和Session、转发和重定向、过滤器、监听器的相关知识
数据库
学习数据库索引优化、连接池的使用方法,为什么要使用数据库连接池以及数据库死锁、数据库SQL 注入相关概念
Java 语言
学习Java 应用框架,例如mybatis、Spring、netty、rocketmq、dubbo、flink,这些框架可以帮助我们更加高效的构建Java 工程。在框架学习过程中,我认为不仅要学习如何基于框架开发系统,更要注重框架自身设计思想,这对于开发者提升自己的代码架构能力是非常有帮助的。
设计模式
学习第五本书*《大话设计模式》或《Head First 设计模式》**,学习23种设计模式
数据库
学习第七本书《高性能MySQL》
常见框架
1.spring
2.dubbo-阿里巴巴开源rpc框架
官网:https://dubbo.apache.org/zh/
github:https://github.com/apache/dubbo
3.mybatis-ORM框架
4.redis
5.rocketmq
官网:https://rocketmq.apache.org/
github:https://github.com/apache/rocketmq
分布式系统设计
第六本书《数据密集型应用系统设计》
6.实战
1、电商系统mall
github:https://github.com/macrozheng/mall
2、秒杀系统
github:https://github.com/qiurunze123/miaosha
3、一个基于Spring Boot & MyBatis的种子项目
github:https://github.com/lihengming/spring-boot-api-project-seed
4.一个博客系统ForestBlog
github:https://github.com/saysky/ForestBlog
文档编写
编写详细设计文档也是程序员必须具备的一项技能,要学习设计文档的编写格式,编写规范。
设计模式
代码编写时要注意设计模式,尽可能提高代码的可读性、可重复使用性。
边界条件的校验和处理
在实际开发过程中,系统出现最多的问题都集中在边界条件的校验和处理上,所以在实际开发过程中,应该要有意识的考虑这些问题。
规划参考链接1:https://www.zhihu.com/question/36673373?rf=454783211
规划参考链接2:https://www.zhihu.com/question/269505829/answer/1791006152

浙公网安备 33010602011771号