肝了一个月,终于把Java学习路线、面试题资源和电子书资源都整理好了。

Java 从基础到微服务的学习路线,其中还包括科班知识、学习建议、后续的学习引导和相应的学习资源(视频、书籍、网站),还整理了Java 面试题,资源都在文末。

写这一篇文章的目的很明确,在个人能力的基础上给小伙伴一个循环渐进的 Java全栈学习路线。为小伙伴布好道路,让学习的路途尽可能的通畅。

在这里点缀下个人对编程的三个层次的理解:

  1. 从学会使用(知其表)

  2. 到深入架构设计原理(知其理)

  3. 再到自研技术(思想铸造)

而本文的学习路线只有前面两个层次,关于“自研层面”属于思想的再创作,恕我无能为力。

能力有限,如有不对,还望纠正。

0.知识广度和深度

对于从事技术开发行业,着重的是技术的应用,技术知识使用起来才能实现它的价值。技术知识的广度就像金字塔的底部,深度就像金字塔的高度,金字塔的底面积大小将决定金字塔的高低,知识面的广度决定深度,深度将决定你在这行业能不能混的好的基础,如果你是做技术的话。

广度:可通过不断学习新技术来拓宽;

深度:基于已有知识深入研究其奥妙。

在这学习路线一开始就先拓宽技术知识面,着重技术的基础使用;后续再深入学习,学习其中的架构设计原理,理解设计者的核心思想,从而提高知识的深度,不至于只知其表不知其理。深入学习后渐渐地就会感受到编程思想带来的质变,是编程能力提高最关键的一步,也是迈进“自研层面”的第一步。

每阶段都配有学习网站和相应书籍,还有阶段项目巩固所学知识。

1.第一部分:Java基础

必须理解面向对象编程,并掌握Java基础知识怎么使用,通过Java编程语言实现一些功能。比如:实现程序和文本的读写(内存和磁盘的交互),简单的多人聊天室(客户端和服务端的交互)。

领悟两点:

第一点:有了这些基础,你可以尝试看看源码(比如:String类的源码),部分源码看得懂了,可能比较费劲。

第二点:所有的服务端编程语言都具备IO流、网络编程、多线程等等这些基础能力,掌握一门编程语言基础对于学习其他编程语言基础那就简单多了。

2.第二部分:MySQL基础

掌握命令的方式操作MySQL 的基础使用;通过JDBC 技术实现对MySQL数据库数据的增删查改。

3.第三部分:JavaWeb

前面两部分是学习Java应用的开发,这部分开始学习Java的web系统开发,主要学习JavaWeb 基础和前端基础知识。学习完这部分,可以基于JavaWeb开发网站、管理系统等,比如:基于JavaWeb的后台管理系统、音乐网站。但是目前直接使用JavaWeb 基础技术开发web系统的很少,一般都是使用框架技术快速开发安全又美观的系统。所以接下来学习主流框架技术。

4.第四部分:主流框架和技术

框架技术主要分为前端和后端框架,目前国内前端以Vue全家桶为主,整合各种框架来完成前端开发;后端以SSM框架技术为主,整合其他框架来完成后端开发。开发框架的主要作用是避免重复造轮子,提高开发效率,降低运维难度,降低人员成本,降低项目风险等等。

学到这里应该知道一些网站架构模式:分层模式,集群模式,缓存模式。

  • 分层模式:常见的有MVC,MVVM,7层的网络通信协议等等。

  • 集群模式:多台服务器部署相同的应用构成一个集群,并通过负载均衡设备共同对外提供服务,提高可用性和并发数。

  • 缓存模式:使用缓存技术提高系统性能。

学习这些模式的使用带来新的问题

  • 集群模式带来的新问题,如:有/无状态服务。

  • 缓存模式带来的新问题,如:缓存穿透。

  • 通过缓存模式解决集群模式带来的新问题,如:会话记录。

先学会框架的使用,再通过阅读源码、相关文档来掌握框架中使用到的编程思想、编程技巧和架构设计,最后在开发的过程中是否能使用上这些编程思想、编程技巧和架构设计。

5.第五部分:回顾并进阶

这部分主要是进阶之前的学习内容和学习更多技术,这都是分布式功能实现需要用到的基础技术。当业务服务变得越来越复杂,部署的服务也越来越多,服务之间错综复杂,难于管理时,就需要自动化的东西替代人类劳动力去解决这一系列问题,所以下个部分内容就是学习分布式服务治理和微服务知识。

6.第六部分:微服务篇

学习各种各样的技术来解决分布式带来的新问题,这些技术的实现都是为了治理错综复杂的业务服务,并提高业务响应速度,服务可用性,性能,扩展性和安全性等等。

7.编程基础的扩展--科班知识(内功)

这一部分的学习是枯燥的,是要掉头发的,但又是必须学习的。关于必学的内容都放前面了,尤其是软件工程、计算机网络、操作系统、数据结构和算法。

8.学习更多

不断学习成长,往更高处走。这只是抛砖引玉,真的要深入学这几本书还真不够。比如架构设计,要从程序员走向架构师,这必须得学;想了解更多有关“云技术”,可以到阿里等各大云平台的开发者社区学习等等。这个就看自己的选择了。

9.学习的一些建议

以上是个人的一些建议。在这里给爱拖延的小伙伴一个行之有效的建议:别干想,行动起来。

10.面试篇

面试资源主要都是来源于网络,做了分类整理,也将部分不易于阅读的处理了(很费时间……)

比如:

处理前:朦胧和挡住了部分内容

处理后:

11.总结

从Java基础到微服务的学习路线和相应的电子书,都已经分享到GitHub,

GitHub链接:https://github.com/yuantingyue/JavaLearningRoutes-Books

后续会不断完善学习路线和学习资源,分享更多的知识和更多资源,一起成长,共勉

想获得最新消息可关注WX公众号:Java全栈布道师

点赞走起

原创不易,转载指明出处,违者必究!!!

Java全栈学习路线、学习资源和面试题一条龙的更多相关文章

  1. 2019年java全栈工程师学习大全

    技术更新日新月异,对于初入职场的同学来说,经常会困惑该往那个方向发展,这一点我是深有体会的. 我刚开始学习 Java 那会,最大的问题就是不知道该学什么,以及学习的顺序,我相信这也是很多初学者经常面临 ...

  2. Java后端完整学习路线及资源记录

    Java后端完整学习路线及资源记录 Java语法基础 书籍教程: 视频教程: IDEA的使用 视频教程:JAVA开发利器-IntelliJ IDEA使用教程 Servlet和Web基础 书籍教程: 视 ...

  3. 2019 Java 全栈工程师进阶路线图,一定要收藏

    技术更新日新月异,对于初入职场的同学来说,经常会困惑该往那个方向发展,这一点松哥是深有体会的. 我刚开始学习 Java 那会,最大的问题就是不知道该学什么,以及学习的顺序,我相信这也是很多初学者经常面 ...

  4. JAVA全栈工程师应具备怎样的知识体系?

    Java是超高人气编程语言,拥有跨平台.面向对象.泛型编程等特性.在TIOBE编程语言排行榜中,连续夺得第一宝座,而且国内各大知名互联网公司,后端开发首选语言:非Java莫属. 今天是针对各类目有更详 ...

  5. java全栈商业小程序开发

    此次开发只为学习和巩固,第一次学习开发 一.开发前需要了解: 开发框架MVVM.痛点.开源工具.VUE前端框架.微信支付模块.uni-app前端框架.小程序申请.开发工具下载.编写测试小程序.小程序结 ...

  6. Java全栈工程师知识体系介绍

    Java全栈工程师,是指掌握多种技能,并能利用多种技能独立完成产品的人,也叫全端工程师(同时具备前端和后台能力),英文Full Stack developer. 那么想要成为一名合格的Java全栈工程 ...

  7. Java全栈,MySQL搞透,架构手到擒来,还有面试官搞不定?

    五月最后一天啦,时间过得真快,做技术的难免做了几年就感觉很迷茫,那就需要多读点书,多学点技术才能有安全感. 栈长之前推荐过不少极客时间的课程,几乎每周都推荐一个,很多朋友评论说,课程太多学不过来,今天 ...

  8. Ninja:Java全栈Web开发框架-Ninja中文网

    相信不少业界人士都还停留在SSh的时代 其实我想给大家推荐的一个轻量级框架那就是Ninja; Ninja是一个Java全栈Web开发框架,稳定.快速.非常高效. 商业价值 在你的下一个项目中,Ninj ...

  9. java全栈day04--方法

    day04内容介绍 1  方法基础知识 2  方法高级内容 3  方法案例 一  方法的概念 A:为什么要有方法 提高代码的复用性 B   什么是方法 完成特定功能的代码块 修饰符  返回值类型  方 ...

随机推荐

  1. HBase环境搭建(hbase1.2.5+zookeeper3.4.6)

    注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6627857018461880836/ 系统版本,Hadoop已安装完成 Mysql安装完成 Hive版本 Sqoo ...

  2. 还在用visio?这款画图工具才是真的绝!

    最近有读者私信我,问我推文的配图是用什么工具画的,很好看,也想学习一下.今天就给大家介绍一下这款画图工具--Draw.io 概述 draw.io是一款免费的网页版画图工具(也有桌面版),支持流程图.U ...

  3. Android官方文档翻译 九 2.2Adding Action Buttons

    Adding Action Buttons 增加动作按钮 This lesson teaches you to 这节课教给你 Specify the Actions in XML 在XML中指定动作 ...

  4. Solon 开发,三、构建一个Bean的三种方式

    Solon 开发 一.注入或手动获取配置 二.注入或手动获取Bean 三.构建一个Bean的三种方式 四.Bean 扫描的三种方式 五.切面与环绕拦截 六.提取Bean的函数进行定制开发 七.自定义注 ...

  5. 走进Task(1):什么是Task

    目录 前言 从表象讲起 Task 从何而来 Task 常见用法 Task 的分类 按是否包含 Result 分,也就是是否是泛型 Task 按得到 Task 的方式,可以分为 对 Task 进行分解 ...

  6. virtual stuido同时调试多个控制台

    问题 UDP作业需要服务器端和客户端收发信息完成交互,需要同时调试多个窗口. 解决办法 但是缺点依然是无法调试2个,修改另一个测试. 所以多开可能依然是好办法.

  7. Cesium入门4 - 创建Cesium Viewer

    Cesium入门4 - 创建Cesium Viewer Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ 任何Ce ...

  8. 微服务架构 | 2.2 Alibaba Nacos 的统一配置管理

    目录 前言 1. Nacos 配置中心基础知识 1.1 Nacos 在配置中心中的功能 1.2 Nacos 配置管理 Data ID 的构成 1.3 Nacos 配置的回滚机制 1.4 Nacos 配 ...

  9. Node内部架构图

    1.Node内部架构图 先来看一下Node节点的内部实现架构图. 首先最上层入口是Restful风格和javaTcp风格的API入口,RestFul请求映射到处理器RestControl.JavaAp ...

  10. 搭建sublime.txt环境结合使用python

    { "cmd": ["python3", "-u", "$file"] }