写点什么

2021 Java 开发者路线图

  • 2021 年 11 月 23 日
  • 本文字数:2647 字

    阅读完需:约 9 分钟

2021 Java开发者路线图

 成为一名合格的 Java 开发人员需要多长时间?十个月、十周还是一天就能速成?


你可能会在各种线上社区找到关于这个问题的各种奇妙而模糊的答案,因为这完全取决于个人的学习能力。但是,一个人要学会 Java,所用的时间最长不会超过 3 个月到 12 个月。


本文这份路线图的核心目标就是帮助你确定下一步具体要学习哪些内容,而不是鼓励你选择一些流行的东西来跟风。你会在文中找到可以帮助你成为 Java 开发人员的一系列技术、工具和库。有了这份列表,你在选择具体工具的时候就能知道应该选哪一个了。

 

2021 年 Java 开发人员成长路线图


 

有些读者可能已经看过了我们之前关于 Java 开发人员路线图的博文。而这次我们会分享一份对你的旅程非常重要的扩展学习列表(如图所示)。这份路线图包括了你应该了解的所有必学内容、有益知识和可能用得上的技术、工具和库。

 

“学习和了解 Java”是什么意思?

简单来说,能够使用 Java 解决各种问题就表明你已经了解 Java 了。这些问题可能出现在 Java 开发人员的面试中,或者与某项具体的技术任务(例如创建项目或知道如何编写满足你要求的代码)有关。

 

当然,你对 Java 的了解程度也会随着时间推移而不断深化,因为你希望不断丰富自己的职业档案。但是你什么时候才能在简历中写上你会用 Java 呢?那就要等你彻底理解 Core Java 了。这是成为 Java 开发人员要迈出的第一步。这时你可能会想,“Core Java 都包含哪些东西呢?”。

 

具体来说,Core Java 包含了这种语言的基础。这些基础包括基本类型和对象、构造(循环、特殊运算符、分支)、包装类、I/O 流、多线程、OOP 概念和异常处理。它还包括库、框架、安全性、数据库访问、网络、GUI 开发和 XML 解析。

 

因此,你的首要目标应该是学习 Java 的基础知识。

2021 年成为 Java 开发人员所需的首要技能

在 2021 年,想要成为一名合格的 Java 开发人员应该做哪些准备呢?在进一步学习工具、API、框架、测试和数据库之前,我们先来了解成为 Java 开发人员所需的一系列必备技能。

  1. Linux

Linux 是一种广泛用于服务器、数据库、网站和应用程序的操作系统。Linux 命令行对开发人员来说是非常重要的工具。因此,强烈建议大家学习各种 Linux 命令和概念,特别是那些用于文件、磁盘空间检查、网络和进程管理的命令。

  1. Git 和 Github

Git 和 Github 分别是用于管理 Git 存储库的流行版本控制系统和基于云的托管服务。Git 和 Github 都为开发人员提供了好用的版本控制功能,可以帮助项目实现持续开发,而不必担心与其他部分混淆。作为一名开发人员,你需要熟悉一些基本概念,例如 master、分支、检查推送或拉取以及 checkout。除此之外,开发人员还应该了解 git diff 和 git commit 等命令。

  1. HTTP/HTTPS

HTTP/HTTPS 协议是互联网的基础。对于开发人员来说,我们必须了解它们之间的区别、它们的工作机制、不同 HTTP 方法的区别、安全性的差异、它们各自使用的端口以及两者目的差异。

  1. 数据结构和算法

程序员使用数据结构来存储和组织数据。另一方面,程序员使用算法来操作数据结构中的数据。你对数据结构和算法以及它们的工作机制了解得越多,你的 Java 程序员职业生涯就越顺利。你必须熟悉链表、数组、二叉树、堆栈、队列、图、哈希表等概念以及动态编程等技术。

  1. SQL

Java 程序员应该了解的另一项技术技能是 SQL。在 SQL 的帮助下,后端问题解决起来会轻松许多。SQL 提供了用于访问和处理存储在 Java 数据库中数据的 API。它可以通过 DriverManager 建立一个连接,提供 SQL 类型到接口和类的标准映射,提供完整数据库的综合信息等。在了解 SQL 的过程中,你会逐渐学会查询数据库和存储过程的相关知识,并搞明白如何确定问题出在数据库层还是 Java 层。SQL 是程序员在职业生涯中很容易学习和使用的一项技能。

  1. 设计模式

设计模式是对软件中一组常见问题的解决方案具体描述。它提供了一种行业标准方法来应对那些反复出现的问题。使用设计模式可增强可重用性,从而实现健壮的代码,同时降低软件的拥有成本。此外,设计模式让代码更容易理解和调试。Java 的设计模式分为三大类,即创建型、结构型和行为型。深入了解 Java 的各种设计模式后,你在遇到具体问题后就能判断应该使用哪一种模式,以及何时使用它们。

Java 程序员的分步路线图

现在我们已经对 Java 程序员应该了解哪些技能有了基本的概念。现在我们就可以进一步探索路线图,找出可以帮助你成为专业 Java 开发人员的工具、库、API 或框架了。



 1.准备工作

a.Java

b.Gradle 或 Maven

C.SQL


2.CLI 工具

a.Javac

b.Jar

c.Jstat

e.Jdeps


3.Web 框架+路由

a.Spring

b.Play Framework

c.Spark

d.Jersey

c.Spring boot


4.数据库

a.关系型数据库

i.SQL Server

ii.c.PostgreSQL

iii.d.MariaDB

iv.MySQL

v.Oracle


b.云数据库

i.CosmosDB

ii.DynamoDB


c.搜索引擎

i.ElasticSearch

ii.Solr

iii.Sphinx


d.NoSQL 数据库

i.MongoDB

ii.Redis

iii.Apache Cassandra

iv.CouchDB


5.ORM

a.Hibernate

b.Eclipse Link

c.Apache OpenJPA


6.缓存

a.Caffeine

b.EHCache

c.ache2k

d.分布式缓存

  • Java-Redis

  • Java-Memcached

  • Commons JCS

7.日志

a.日志框架

  • Houston

  • TinyLog

  • log4j

b.日志管理系统

  • ELK Stack

  • Logstash

  • Loggly.com

  • Retrace

8.实时通信

  • Socket.IO

9.API 客户端

a.REST

  • OkHttp

  • Retrofit

  • GraphQL

10.应用程序服务器

11.有用的东西

a.Bean validation

b.Bouncy castle

c.Gson

d.Apache Shiro

e.JJWT

f.RxJava

12.测试

a.单元、行为、集成、负载测试

  • JUnit

  • CitrusFramework

  • Gatling

  • Tsung

  • Mockito

  • Truth

  • AssertJ

  • JBehave

  • Mock Server

b.端到端测试

  • Selenium

13.静态代码分析

a.Apache Yetus

b.Code DX

c.CodeScene

d.PMD

e.SonarQube

14.任务计划

a.Aurora

b.Elastic job

c.Sundial

d.cron-utils

15.设计模式

a.Singleton(单例模式)

b.Factory(工厂模式)

c.Observer(观察者模式)

d.Decorator(装饰器模式)

e.Adapter(适配器模式)

f.Template Method(模板方法)

g.Mediator(中介者模式)

h.Composite(组合模式)

i.Facade(外观模式)

j.Iterator(迭代器模式)

k.Proxy(代理模式)

16.微服务

a.消息-代理

  • RabbitMQ

  • Apache Kafka

  • ActiveMQ

  • Azure Service Bus

b.消息-总线

  • mabassador

  • rmq

C.框架

  • Apollo

  • Lagom-framework

  • Micronaut

  • eureka

  • Helidon

  • Armeria

d.RPC

  • Protocol Buffers

  • gRPC-Java

  • Thrift 

准备好持续学习

最后一点也是非常重要的,那就是你需要一直学习下去。就算你的进展很慢,也要一步一个脚印向前推进。平均而言,你应该定期拿出大约 1-3 个小时的时间来学习 Java。另外要注意,人们在学习编程时犯的一大错误就是只看书不练习!如果不去实际动手写代码,你就不可能学会编程技能。编程是一项实践活动,想成为专业的 Java 程序员,就开始练习吧。

 

原文链接:

 

https://www.decipherzone.com/blog-detail/java-developers-roadmap-2021

2021 年 11 月 23 日 12:553406
用户头像
刘燕 InfoQ记者

发布了 734 篇内容, 共 236.8 次阅读, 收获喜欢 1393 次。

关注

评论 1 条评论

发布
用户头像
标题应该改为《2021年12月java开发路线图》
2021 年 11 月 23 日 21:55
回复
没有更多了
发现更多内容

面试一轮游,为何大厂Java开发岗面试越来越难?

不想秃头

程序员 面试 java

linux之pkill命令

入门小站

Linux

1-3年Android开发工程师面试经验分享,程序员去大公司面试

android 面试 移动开发

区块链军事应用探析

Geek_987812

Mp3文件结构全解析(一)

轻口味

android 音视频 9月日更 9 月日更

🔥[深圳/北京/社招] 字节跳动-中台测试部门-移动端专项测试或测开,急招极速面试

zingphoy

招聘 社招

架构实战营 - 模块四作业

en

架构实战营

python学习:day3-流程控制

秦时明月

Python编程

Kotlin DSL实现原理介绍

maijun

kotlin dsl

1-3年Android开发工程师面试经验分享,资深大牛带你了解源码

android 面试 移动开发

Go 语言嵌入和多态机制对比

程序员历小冰

后端 引航计划

服务实体经济,银行区块链应用正在画一个更大的圆

Geek_987812

【初恋系列】那年的雨还在下...

人工智能~~~

Golang正确使用kafka的姿势-细节决定成败

OpenIM

漏洞挖掘:一次反序列化漏洞学习

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 安全漏洞

人类高质量家庭成员:会自己赚钱的成熟卡车香吗?

脑极体

“清洁地球日”看AI与碳中和:百度OCR成无纸化办公利器

百度大脑

人工智能

数据仓库的特性

奔向架构师

数据仓库 9 月日更

云栖大会抢先看,提前探秘云栖数字谷

阿里巴巴云原生

阿里巴巴 云原生 云栖大会

解决了

IT蜗壳-Tango

9 月日更

字节跳动灵魂拷问算法,三轮面试结局我哭了,但下次还敢

android 程序员 移动开发

WEB架构的演变

Regan Yue

9月日更 9 月日更 WEB架构

聊聊最近看的几本书

卢卡多多

读书感悟 9 月日更

22. 哪种工作最容易被AI取代

数据与智能

人工智能

Go 中队列的实现

baiyutang

9月日更

浅谈函数式编程与 Stream

Dobbykim

谈 C++17 里的 Observer 模式 - 4 - 信号槽模式

hedzr

c++ 算法 设计模式 Design Patterns c++17

矿山中的鸿蒙花开

脑极体

JDK 内置命令行工具学习笔记一

风翱

JVM 9 月日更

在线MySQL,SQL Server建表语句生成JSON测试数据工具

入门小站

工具

Prometheus 2.25.0 新特性

耳东@Erdong

release Prometheus 9 月日更

基于英特尔x86平台构建AI软件生态系统

基于英特尔x86平台构建AI软件生态系统

2021 Java开发者路线图-InfoQ