成为一名合格的 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 开发人员所需的一系列必备技能。
Linux
Linux 是一种广泛用于服务器、数据库、网站和应用程序的操作系统。Linux 命令行对开发人员来说是非常重要的工具。因此,强烈建议大家学习各种 Linux 命令和概念,特别是那些用于文件、磁盘空间检查、网络和进程管理的命令。
Git 和 Github
Git 和 Github 分别是用于管理 Git 存储库的流行版本控制系统和基于云的托管服务。Git 和 Github 都为开发人员提供了好用的版本控制功能,可以帮助项目实现持续开发,而不必担心与其他部分混淆。作为一名开发人员,你需要熟悉一些基本概念,例如 master、分支、检查推送或拉取以及 checkout。除此之外,开发人员还应该了解 git diff 和 git commit 等命令。
HTTP/HTTPS
HTTP/HTTPS 协议是互联网的基础。对于开发人员来说,我们必须了解它们之间的区别、它们的工作机制、不同 HTTP 方法的区别、安全性的差异、它们各自使用的端口以及两者目的差异。
数据结构和算法
程序员使用数据结构来存储和组织数据。另一方面,程序员使用算法来操作数据结构中的数据。你对数据结构和算法以及它们的工作机制了解得越多,你的 Java 程序员职业生涯就越顺利。你必须熟悉链表、数组、二叉树、堆栈、队列、图、哈希表等概念以及动态编程等技术。
SQL
Java 程序员应该了解的另一项技术技能是 SQL。在 SQL 的帮助下,后端问题解决起来会轻松许多。SQL 提供了用于访问和处理存储在 Java 数据库中数据的 API。它可以通过 DriverManager 建立一个连接,提供 SQL 类型到接口和类的标准映射,提供完整数据库的综合信息等。在了解 SQL 的过程中,你会逐渐学会查询数据库和存储过程的相关知识,并搞明白如何确定问题出在数据库层还是 Java 层。SQL 是程序员在职业生涯中很容易学习和使用的一项技能。
设计模式
设计模式是对软件中一组常见问题的解决方案具体描述。它提供了一种行业标准方法来应对那些反复出现的问题。使用设计模式可增强可重用性,从而实现健壮的代码,同时降低软件的拥有成本。此外,设计模式让代码更容易理解和调试。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
评论 1 条评论