java学习路线图
下图描述了一个java程序员在成长过程中,需要逐步学习的知识。必须声明,下图不是本人原创,是github项目sorenduan/awesome-java-books ,原作者的项目还是要说明一下。大家可以去github上去看这个项目。但是因为原文是英文的,我谨在此向原作者表示敬意,并对英文内容进行翻译,希望可以帮助到大家!
图中的
黄色是优先,重点掌握的内容,优先级比较高褐色是进阶的内容,需要有一定工作经验再去学习灰色的内容,有时间有精力,自己有兴趣或者明确需求的可以去学习一下最重要的宗旨是:持续学习,Keep Learing
路线图中文解释Prerequisites 必备基本
Java java基础Gradle or Maven 项目构建及管理工具SQL SQL基础是必须要会而且要精的内容General Development Skills
Learn GIT, 代码版本管理工具git,几乎所有的开源世界的代码都是git管理的,如果不会,你就只能闭门造军,无法吸收大神们的精髓知道HTTP及HTTPs原理,及常用的HTTP方法(GET, POST, PUT, PATCH, DELETE, OPTIONS)学会使用搜索引擎,如果有可能,尽量用google,你懂的学习一些算法和数据结构的知识学一些基础的权限管理相关的设计知识常用的代码开发及设计原则,如:SOLID系列原则命令行及参数解析工具
args4jJCommanderairlineweb框架
Spring 这个不说了,必学必会Play Framework 一个full-stack(全栈的)Java Web的应用框架Spark 一个简单易用的web应用框架(这里说的不是,在大数据流式处理领域的那个spark)Jersey RESTful 框架是开源的RESTful框架nanohttpd 一个开源的http库,只需要一个类便可轻易实现http服务Databases 数据库
Relational 关系型数据库,这个不多说,掌握SQL ServerPostgreSQLMariaDBMySQLOracleCloud Databases 云数据库(说实话这两个笔者没用过)CosmosDBDynamoDBSearch Engines 全文检索引擎类ElasticSearch 适用于海量数据存储及全文检索Solr 全文检索引擎Sphinx 一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索NoSQL MongoDB 文档类数据库,较常用Redis 键值对内存数据库,常用Apache Cassandra 分布式的Key-Value数据库,性能较好LiteDB 轻量级的Serverless 文档数据库LiteDBRavenDB CouchDB 一个开源的面向文档的数据库管理系统ORMs ORM框架类(笔者在这里加上一个Mybatis,国内用的多)
Hibernate(JPA) 即使不用也要学,思想EbeanBelleORMCaching 缓存数据存储
CaffeineEHCacheCache2kDistributed Cache 分布式缓存Java-Redis 这种最常用Java-MemcachedInfinispanLogging 日志
Log Frameworks 日志框架(笔者在这里加上logback)ZapTinyLoglog4j、log4j2 常用Log Management System 日志管理系统Sentry.ioLoggly.comTracerReal-Time Communication 实时通信
Socket.IOatmospherewebbitAPI Clients API客户端
REST REST接口-JSON格式,基于HTTP协议okhttpretrofitGraphQL 一种为你的 API 而生的查询语言Good to Know 最好要会
Beanvalidation 通常用于参数校验bouncycastlegson JSON数据处理工具Apache Shiro 权限管理JJWT 接口访问token授权RxJava 一套异步编程的 APITesting 测试相关
Unit, Behavior, Integration, Load TestingJUnit 最常用CitrusFrameworkGatlingTsungMockito 模拟测试,常用TruthAssertj cucumber-jvmcukeshoverfly-javarest-assuredjbehaveE2E Testing 端到端测试Selenium 常用Task Scheduling 定时任务管理
AuroraelasticjobSundialcron-utilsMicroServices 微服务
Message-Broker 消息中间件RabbitMQ 常用Apache Kafka 常用ActiveMQ 常用Azure Service BusMessage-Bus 消息总线mbassadorrmqFrameworks 框架Apollo 分布式配置中心lagom-frameworkmicronauteureka 服务注册中心 helidonarmeriaRPC 远程接口调用(序列化、反序列化)Protocol BuffersgRPC-JavathriftJava-Patterns java设计模式
虽然这张路线图,已经相对完整,但是相对于国内一些公司的要求还有很多可以补充的地方。如果想成为架构师,可能要学会
linux 不会的话,开源分布式软件,你安装不上,你怎么学?docker & devops 持续集成、运维优化等spring cloud 和国内常用的 dubbo,负载均衡haproxy、nginx等甚至你还要去学前端知识,css、html自不必说。目前国内最流行的vue。总之一句话:Keep Learing,持续学习。笔者一直觉得程序员的投入与回报是不成正比的,我觉得没有一个行业有程序员需要的知识更新速度快,目前还没发现。也许有些人不认可,但是入这行时间久了就会明白!所以不要忘了你为什么出发?如果单纯是因为钱,而不是因为热爱,在适当的时间需要转向或回头!
Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有