【非广告】2021 入门级的 Java 程序员学习路线图 1.0

简介: Hello,大家好,我是阿粉,最近看文章发现一个 Java 学习路线图的资料,觉得很不错就拿过来分享给大家,目前这个版本是 1.0 的,之所以说这个是 1.0 的版本主要是因为还有一些高级内容没有加进去,比如 JVM,容器,消息队列,云原生等都还没有提到,不过对于初学者来说这个路线图已经可以上手完成工作了。

Hello,大家好,我是阿粉,最近看文章发现一个 Java 学习路线图的资料,觉得很不错就拿过来分享给大家,目前这个版本是 1.0 的,之所以说这个是 1.0 的版本主要是因为还有一些高级内容没有加进去,比如 JVM,容器,消息队列,云原生等都还没有提到,不过对于初学者来说这个路线图已经可以上手完成工作了。

作为 Java 程序员的阿粉不得不说,现在的小伙伴们是真的很幸福,互联网如此的发达,网上各种学习资料以及开源项目可以免费学习。虽然说这些资料方便了小伙伴们的学习,但是同样也会带来一个问题,那就是对于琳琅满目的资料显得无从下手,没有体系,不知道工作中到底会用到哪些,抓不到重点。这个时候 Java 学习路线图就可以起到一个辅助的作用了。公众号回复【路线图】获取高清图片。

13.png

Git

Git 作为目前最流行的版本控制软件没有之一,作为每个开发人员,不单单是 Java 程序员而是每个程序员都需要学习使用的。我们进入一家公司,刚开始的时候除了阅读文档之外能做的第一件事情就是把自己所在的小组的代码克隆下来。所以 git clone 相信是大家使用的第一个命令。另外虽然说都是在 IDE 里面使用git 的命令操作,但是还是强烈建议大家把 git 的常用命令给记下来,通过 git bash 或者其他命令窗口手动执行,可以加深大家这 git 的使用理解。如果说对于还没有步入职场的小伙伴没有实际的项目练手的话,可以考虑通过 GitHub 来练手。毕竟 GitHub 作为全球最大的同性网站,在互联网行业有着举足轻重的地位。

Linux

Linux 同样的作为后端程序员也是要学习的一个知识点,不过针对 Linux 我们刚开始可以先学习一些简单的基础,随着使用频率的增加再慢慢深入,毕竟很多时候我们在服务器上面查看日志,查找文件,以及编写一些简单的 shell 来处理一些任务。学习 Linux 我们需要循序渐进,毕竟一个操作系统要想完全搞透对于我们普通人来说那是不太可能的。

数据结构与算法

数据结构与算法这个更不用说了,是一个老生常谈的话题,虽然说在科班出身的在大学会学习相关内容,但是相信很多人都没有好好学习过,社会会告诉你该来的还是会来,有些东西是躲不掉的,除非不干这一行。学习数据结构和算法的唯一途径就是不断练习,而且一个题目要练习很多遍,尝试不同的方案去解决,只有这样才能熟练的掌握。刷题可以在 LeetCode 或者牛客网都是可以的,海量的题目足够练手。

通用编程技能

通用编程技能主要包含一些网络知识比如 HTTPHTTPSTCPUDP,设计模式,可能很多时候大家会觉得真正在工作中这些东西用到的会很少,有必要学习吗?有必要!有必要!有必要!重要的事情说三遍,要知道我们的日常工作除了写业务代码之外,很多时候还会涉及到组件,框架的封装或者代码的阅读,这个时候如果不具备这部分的知识,那看起来会很吃力的。所以建议大家一定要把基础知识给打牢,这样才能再需要的时候得心应手。

Java

讲到这里终于到了核心模块,在 1.0 的路线图中 Java 的学习主要包含工具,JDK,框架,单元测试,数据库相关知识。这块的东西就相对较多了,而且很多内容都需要结合项目来实际操作才能更好的掌握,单独看资料代码是不怎么能掌握的。

工具

工具这块主要要学习IDEAMavenGradle 还有 Docker 容器部署相关的内容。图中的有些东西可以不用学,比如 EclipseANT,这些现在很多公司都不用了,就没必要在浪费时间了,毕竟要学习的东西还有很多。JDK 这块的内容就更多了,1.0 的路线图中提到了集合,并发,IO,和JDK8 的一些特性,这些内容需要好好的学习,因为在工作中占据了很大的一部分场景。并且如果在找工作面试的过程中也是必问的一些内容。特别是集合和并发这块的内容,阿粉经历的面试基本上都有被问到过相关的内容。IO 这块的内容是很多网络工具的底层核心,特别是一些 RPC 服务,底层的 Netty 都会使用到 IO 相关的内容。

框架

框架这边就更不用多说,现在 Java 主流的编程框架非 SpringSpringBoot 莫属,这块的内容确实很难啃,需要找一些资料或者视频去学习,如果条件和时间允许的话也可以去报一些线上或者线下课程,这个根据自己的情况去决定就好。GitHub 上面也有很多基于 SpringSpringBoot 的开源项目,特别是一些大公司开源的优秀项目,比如阿里的 DubboSpringCloud Alibaba,都可以下载下来阅读一下。阿粉上家公司使用的微服务框架就是 SpringCloud Alibaba,他的注册中心 Nacos 是基于服务发现与配置中心一体的注册中心,还是挺好用的。

单元测试

单元测试这个也是一个很有必要学习的内容,优秀的代码单元测试的用例要覆盖 80% 以上才算合格,但是实际工作中往往很少会有人写单元测试。这个不是个好习惯,该写的单元测试还是要写的,这样再后续代码有所改动的时候我们可以直接测试一下,避免新的改动导致了新的 bug。关于测试框架 Mockito 公众号前几天有发过一篇介绍的文章,感兴趣的可以看看 Mockito

数据库

线路图中的数据库主要想表达的是 JDBC 以及一些 ORM 的内容,其实关于数据库的知识是很复杂的,作为 Java 程序员只关注这么一点是不够的,特别是对于 MySQL 数据库,我们必须熟练的掌握,包括事务,锁,索引等内容,相应的内容大家可以看看公众前面的文章,有很多关于 MySQL 的内容。

上面的内容比较多,但是阿粉觉得还少了一个重要的内容,那就是前端知识,不会写页面的的 Java 开发不是一个好开发,简单的页面和JS 我们还是要会写的,不说多么精通,至少能看懂代码并且能实现功能。

总结

今天给大家分享了一个 Java 学习路径图,可以帮助初学者更好的入门,对于我们程序员来说,真的有很多东西需要学习,新的技术层出不穷,唯一不变的就是变化。最后借用乔帮主的一句话:Stay foolish,Stay hungry!

相关文章
|
1月前
|
Java 程序员
JAVA程序员的进阶之路:掌握URL与URLConnection,轻松玩转网络资源!
在Java编程中,网络资源的获取与处理至关重要。本文介绍了如何使用URL与URLConnection高效、准确地获取网络资源。首先,通过`java.net.URL`类定位网络资源;其次,利用`URLConnection`类实现资源的读取与写入。文章还提供了最佳实践,包括异常处理、连接池、超时设置和请求头与响应头的合理配置,帮助Java程序员提升技能,应对复杂网络编程场景。
58 9
|
2月前
|
XML Java 编译器
Java学习十六—掌握注解:让编程更简单
Java 注解(Annotation)是一种特殊的语法结构,可以在代码中嵌入元数据。它们不直接影响代码的运行,但可以通过工具和框架提供额外的信息,帮助在编译、部署或运行时进行处理。
95 43
Java学习十六—掌握注解:让编程更简单
|
23天前
|
SQL 存储 Java
面向 Java 程序员的 SQLite 替代品
SQLite 是轻量级数据库,适用于小微型应用,但其对外部数据源支持较弱、无存储过程等问题影响了开发效率。esProc SPL 是一个纯 Java 开发的免费开源工具,支持标准 JDBC 接口,提供丰富的数据源访问、强大的流程控制和高效的数据处理能力,尤其适合 Java 和安卓开发。SPL 代码简洁易懂,支持热切换,可大幅提高开发效率。
|
1月前
|
Java 大数据 API
14天Java基础学习——第1天:Java入门和环境搭建
本文介绍了Java的基础知识,包括Java的简介、历史和应用领域。详细讲解了如何安装JDK并配置环境变量,以及如何使用IntelliJ IDEA创建和运行Java项目。通过示例代码“HelloWorld.java”,展示了从编写到运行的全过程。适合初学者快速入门Java编程。
|
2月前
|
存储 SQL 小程序
JVM知识体系学习五:Java Runtime Data Area and JVM Instruction (java运行时数据区域和java指令(大约200多条,这里就将一些简单的指令和学习))
这篇文章详细介绍了Java虚拟机(JVM)的运行时数据区域和JVM指令集,包括程序计数器、虚拟机栈、本地方法栈、直接内存、方法区和堆,以及栈帧的组成部分和执行流程。
36 2
JVM知识体系学习五:Java Runtime Data Area and JVM Instruction (java运行时数据区域和java指令(大约200多条,这里就将一些简单的指令和学习))
|
1月前
|
SQL Java 程序员
倍增 Java 程序员的开发效率
应用计算困境:Java 作为主流开发语言,在数据处理方面存在复杂度高的问题,而 SQL 虽然简洁但受限于数据库架构。SPL(Structured Process Language)是一种纯 Java 开发的数据处理语言,结合了 Java 的架构灵活性和 SQL 的简洁性。SPL 提供简洁的语法、完善的计算能力、高效的 IDE、大数据支持、与 Java 应用无缝集成以及开放性和热切换特性,能够大幅提升开发效率和性能。
|
2月前
|
IDE Java 程序员
C++ 程序员的 Java 指南
一个 C++ 程序员自己总结的 Java 学习中应该注意的点。
24 5
|
1月前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
2月前
|
小程序 Oracle Java
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
这篇文章是关于JVM基础知识的介绍,包括JVM的跨平台和跨语言特性、Class文件格式的详细解析,以及如何使用javap和jclasslib工具来分析Class文件。
52 0
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
|
2月前
|
前端开发 Java 应用服务中间件
Javaweb学习
【10月更文挑战第1天】Javaweb学习
33 2