Skip to content

Latest commit

 

History

History
111 lines (63 loc) · 10.2 KB

Java学习路线_2019版.md

File metadata and controls

111 lines (63 loc) · 10.2 KB

上次文章写了 Linux C/C++ 的学习路线,包括从基础、到 C++ 入门、进阶、提升的视频、书籍推荐,这些都是我大学期间真实走过的路,还没看过的,先看下上篇文章:Linux C/C++ 学习路线(已拿腾讯、百度 offer)

公众号、以及朋友圈下面留言,有不少读者希望我写一篇 Java 的学习路线,以及我对于 Java 方向的看法。

我仔细想了一下,虽然我只接触过 Java 基础,但是丝毫不影响我对于 Java 学习路线的思考,毕竟网上那么多资源(知乎、牛客、简书,学会自己搜索、自己规划路线)。

对于 Java 方向,我只会把我知道的,我看过的推荐出来,希望对于 Java 方向迷茫的同学有所帮助。

一、Java 方向的思考

目前最常见的三大后台开发语言,分别是 C++、Java、Go,C++ 现在学习的人比较少,偏底层而且入门较难;Go 才兴起,百度、滴滴、头条有部分架构转型 Go;而其中 Java 方向,是现阶段招聘需求最多,学的人也特别多,其应用场景特别的广,如果作为后台的学习方向,是没有问题的。

对于 Java 系的公司,阿里、京东、美团都是纯 Java 技术栈,百度、滴滴、头条、网易也有 Java 岗;我认识的很多同学,本科、研究生都有,其中选择走 Java 后台方向的,很多都去了大厂,从普遍情况看:只能说在这个方向上,概率还是大一点;对于其他方向,前端、测试、运维、安卓等,有兴趣也可以走。

对于要走 Java 方向的读者,基础是同等重要的(上篇文章写过基础了),选择 Java 方向,只是在方向上的深入;基础这块,我还想在强调一下,C 语言是基础,不是方向,有时间的话,把 C 语言加强加强,对于编程理念、底层的知识,能多了解一下,是有帮助的。

很多人由 Java 后台入门,在转型大数据、架构师方向,这个的根据自己的情况定就好了,对于自己感兴趣的公司,可以到招聘官网上,看看详细要求的技术栈有哪些,按照着准备、学习就好了。

二、Java 学习路线

(黑马 java 后台路线 )

国内 Java 视频,黑马算是比较经典的了,按照路线图学习就好。

1、Java 基础

Java 基础:基本的数据类型、流程控制语句(if、for、while 等)、面向对象的理解(对象、封装、继承、多态)、一些关键字的理解(super、this 等)、接口、抽象类、ArrayList、String、Random、Math 等等;先把 Java 语言入门,Java 相关的基础打牢,熟练使用 Java,可以先完成一些小的 demo 作为实战。

对于初学 Java 的读者,可以先配置 java、javac 环境(熟悉熟悉 cmd 命令),建议先拿 .txt 文件写代码,一个一个字母敲,培养一下编程的感觉;刚开始接触编程,关键是找到一定的感觉和兴趣,在 Java 基础阶段,把每一个细节都要弄明白,对于 .txt 敲 Java 代码,可以保持三个月左右的时间,充分的让自己熟悉起来。

2、Java 进阶

Java 进阶:Date、StringBuilder、List、Set、Map、HashMap、异常、自定义异常、泛型、线程、线程同步、线程池、函数式思想、文件、字节流、网络编程相关等等;在这个阶段,不仅仅是会调用 Java 的一些 API,还需要把 List、Set、Map、HashMap 等底层源码看看,自己能掌握理解,核心代码能手写。

对于学习 Java,在校期间大部分都是用:eclipse 或 myeclipse,我当时初学 Java 用的就是 eclipse 写的代码,工欲善其事必先利其器,先把 eclipse 或 myeclipse 的使用技巧好好学学;对于工作了的,基本上都用 IntelliJ IDEA 写的 Java 项目,IDEA 是 Java 编程语言开发的集成环境,被公认是最好的 Java 开发工具之一,我也装的这个软件。

3、JavaWeb

JavaWeb:mysql、tomcat、nginx 的安装、配置、部署、jsoup 使用、xml 基础、html + css + js(前端基础、前端框架 jQuery 有时间可以学学)、maven 的常用命令,依赖管理等等;在这个阶段,就需要做一些简单的项目,项目中需要的技术点就是上面列出来的;前 3 个阶段,一步一步走,基本上走到这里,就可以做一些有意思的项目了,比如:扫雷、坦克大战、各种管理系统都是可以一个人完成的。

其实,对于学习 Java 后台开发的,多少的懂点前端知识,毕竟的做前后端的交互、接口协议的制定,会前端的,整个项目可以自己独立完成,对项目的认知会非常的深;学前端的,现在多少的懂点后台知识,才有更大的机会进入大厂,现在都是在往全栈方向发展。

4、Java 后台三大框架

Java 后台三大框架:快速掌握之后,可以搭建出一个 MVC 模型出来,开发大型应用可以节省时间,spring,这个框架我是觉得最重要的,工作工程中使用较多(springmvc、spring-boot 这些)。

对于后台三大框架,不能只停留在调用 API 的阶段,对于底层源码的实现机制、系统调用模块之间的关系得梳理清楚(看时间安排,至少的熟悉一个框架的源码)。

5、Java 中一些核心技术点(GC、JVM、redis 等)

Java 中一些核心技术点(GC、JVM、redis 等):GC(垃圾收集器),对于执行机制、内存泄漏问题、回收原理等掌握;JVM 是虚拟机,实现了跨平台运行,是 Java 的核心,是 Java 一次编译到处运行的本质所在,对其组成、运行原理、内存管理、垃圾回收等各种算法都得掌握。

redis 是开源,使用 C 语言编写的 k-v 数据库。

  1. 对 redis 的持久化怎么理解?为什么读写速率快、性能好?
  2. 什么场景下使用 redis?以及 redis 的优点有哪些?
  3. redis 单线程、多线程相关
  4. redis 集群

6、大数据

大数据:Java 后台开发的能力具有了,大数据基础的掌握是亮点、是加分项。

毕竟我不是学 Java 出身的,对于 Java 的理解如上,大致的学习路线梳理,核心知识点都有写到,当然了,肯定缺失很多,需要你自己在学习的时候,查漏补缺,把相关的知识点都学到位。

Java 相关的技术书籍。我看的很少,所以就不推荐书籍了,我有一个原则:我推荐的前提是,自己真的看过、对我很有帮助,就推荐给大家,自己没有看过的,只是听别人说的,就不推荐了。

对于 Java 经典的书籍,太多太多了,去 Google、牛客网、知乎上面搜一下,一大堆推荐的书籍;对于 Java 相关 API 的官方文档是个好东西,还有阿里巴巴 Java 的开发准则,对于变量的命名、开发的规范都有限制,这些最好都看看。

视频推荐:黑马 Java 全套,包含上面 6 个阶段的所有视频。

链接:

https://pan.baidu.com/s/1pg4lIeb4uaCzIaauQD3R6w

密码:s820

三、总结

(搜 java 面经)

牛客网搜 “java面经” 学习路线都有的,包括 Java 面经、书籍推荐、学习路线这些,要啥有啥,要学会自己搜索,主要是很多人不会用牛客网,这次教一下大家,需要什么搜什么,拿 java 面经举个例子。

不管你是选择什么方向,Linux C/C++、Java、Python、Go、算法、前端、测试、运维等,基础都是核心,没有哪个方向绝对工资高、没有哪个方向绝对好,关键不在于方向,在于你自己的技术能力。

说到底,不管走啥方向,都按照三步走战略、五大能力的提升走,这是我在大学时代实践过的,帮助很大,是最正确的打法(尤其对于学校不好的、非科班的学生),一定要有自己的打法。

学习编程,一开始在于多接触不同的方向、领域,多去尝试;当你找准方向之后,再围绕一个点,先深扎下去,在某个技术点上,形成自己的技术优势,这就是最大的亮点,举个例子:我面试就敢说自己熟练掌握 C 语言中指针的方方面面,熟练掌握各种数据结构、常用算法等,这些其实就是我的技术优势。

优势是什么,就是你跟别人最大不同的地方,就是为啥这么多面试者,要给你发 offer 的原因;数据结构很多人学的都是一知半解,C 语言中的指针都是不清不楚,而我真正的掌握了,我就敢说出来,一定是十分有把握的优势在说出来,不然问住了很尴尬,有时候得具有一点冒险精神,这些都是看情况而定的。

现阶段,岗位需求最多的,最火的方向就是:Java 后台开发、算法岗(机器学习、cv、nlp。。。)。

脚踏实地,一步一步走!

四、说明

原创文章链接:Java 学习路线(2019版)