Java到底该不该学,学又该如何学习?
文章目录
- 前言
- 1、Java前景与现状
- 2、Java学习路线
- Java基础
- JavaWEB
- 常用框架技术
- 微服务开发
- 分布式高级
- 项目实战
- 面试
- 3、Java各级薪资要求一览表
- Java初级(10k-15k)
- Java中级(15k-25k)
- Java高级(25k-50k)
- 总结
- Java架构师(冲击年薪50W+)
- 架构师之路
- 附录一:暗黑心法图书
前言
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念。
因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
1、Java前景与现状
Java主要分为三大版本JAVAME,JAVASE,JAVAEE。
JavaME: 是为机顶盒、移动电话和嵌入式消费电子设备提供的Java语言平台,包括虚拟机和一系列标准化的Java API。
JavaSE: 标准版Java技术的核心和基础,也是Java ME和Java EE编程的基础,尝尝使用于桌面应用,服务器,基础框架。
JavaEE: 企业级的应用开发,网站应用,大型分布式应用的开发,互联网研发。
先看两张图,图片截图来源
看到,Java一直是稳居前三的,相对来说是比较稳定的,Java的应用面是非常广的,再跌也不可能跌的太离谱。
2、Java学习路线
Java基础
项目 | Value |
---|---|
JAVA核心技术 | 链接 |
IDEA使用 | 链接 |
MySQL基础进阶 | 链接 |
JDBC核心技术 | 链接 |
JVM全套教程 | 链接 |
JUC并发编程 | 链接 |
JavaWEB
项目 | Value |
---|---|
JavaWEB全套教程 | 链接 |
常用框架技术
项目 | Value |
---|---|
Maven零基础入门 | 链接 |
Spring5框架 | 链接 |
SpringMVC教程 | 链接 |
MyBatis实战教程 | 链接 |
MyBatis-Plus教程 | 链接 |
SSM整合 | 链接 |
Git入门到精通 | 链接 |
微服务开发
项目 | Value |
---|---|
Linux入门 | 链接 |
Redis 6 入门到精通 | 链接 |
经典Redis教程 | 链接 |
SpringBoot2零基础入门 | 链接 |
SpringCloud框架开发教程 | 链接 |
分布式高级
项目 | Value |
---|---|
Docker与微服务实战 | 链接 |
Nginx教程由浅入深 | 链接 |
Zookeeper教程 | 链接 |
ElasticSearch教程入门到精通 | 链接 |
Kubernetes(k8s)入门到实战教程 | 链接 |
项目实战
项目 | Value |
---|---|
尚医通项目 | 链接 |
尚融宝项目 | 链接 |
尚筹网项目 | 链接 |
谷粒学苑项目 | 链接 |
谷粒学院项目 | 链接 |
谷粒商城项目 | 链接 |
云原生实战项目 | 链接 |
面试
项目 | Value |
---|---|
经典面试题 | 链接 |
大厂面试题第2季 | 链接 |
大厂面试题第3季 | 链接 |
3、Java各级薪资要求一览表
Java初级(10k-15k)
序号 | 要求 |
---|---|
01 | 大专以及以上学历,计算机优先 |
02 | 至少1年以上Java开发经验 |
03 | 熟悉掌握主流的Spring,SpringMVC,Mybatis,JPA,Vue等技术框架 |
04 | 熟悉分布式,缓存,消息的实现机制 |
05 | 熟悉Unix/Linux系统,熟悉常用的shell命令 |
06 | 熟悉Oracle,MySQL,Sql Server,DB2等数据库至少一种和常用的SQL语句 |
07 | 熟悉SVN,Maven,Git版本控制工具的使用 |
08 | 有Java多线程高并发的开发经验 |
09 | 代码编写规范,熟悉JVM调优以及常见的Java设计模式 |
10 | 熟悉SpringBoot以及SpringSecurity+Mongo+Redis+MySQL等组件的组合使用 |
11 | 熟悉SpringBoot,SpringCloud等微服务技术栈 |
12 | 熟悉HTTP网络协议 |
13 | 熟悉基本的SQL调优 |
14 | 熟悉WEB前端技术(HTML,CSS,JavaScript,Ajax,Vue等) |
15 | 具备Redis,Kafka,Zookeeper,Netty等开发经验优先 |
16 | 熟悉Redis,MQ等中间件的使用 |
17 | 熟悉应用服务器Nginx与Tomcat服务器的开发配置 |
18 | 具有基本面向对象分析,设计,开发的能力 |
这个阶段一般是1-3年,主要针对一些框架的使用能够完成基础的开发功能
Java中级(15k-25k)
序号 | 要求 |
---|---|
01 | 大专以及以上学历,具有3年以上互联网行业的工作经验 |
02 | 熟练使用基本的数据结构与算法,深入理解多线程,Socket等相关技术 |
03 | 熟悉掌握主流的Java框架,深入了解这些开源框架的特性与实现原理 |
04 | 熟悉掌握一种以上非关系数据库,如Redis,MogoDB理解使用场景与限制 |
05 | 具备系统调试,性能调优的技能,对系统出现的问题及时排查出问题 |
06 | 有大规模,高吞吐量的开发系统经验优先 |
07 | 有分布式架构开发经验或业务平台建设的经验优先, |
08 | 具有前端开发经验与基本数据处理能力的优先 |
09 | 熟悉数据库优化,消息队列与缓存 |
10 | 较强的实战能力,精通Spring框架 |
11 | 熟悉Hbase,Hive,Impala |
12 | 熟悉Redis,MQ等中间件的使用,深入存储技术 |
13 | 深入了解分布式缓存方案的原理与实现:分布式缓存,SOA,消息中间件,负载均衡,连接池等 |
13 | 服务器迭代开发,处理高并发,高性能场景优先以及JVM优化 |
这个阶段一般是3-5年,主要关键词就是数据结构与算法,多线程,Socket,系统调试,性能调优,分布式架构,JVM,设计模式与高并发。
Java高级(25k-50k)
序号 | 要求 |
---|---|
01 | 熟悉常用的存储OBS,NAS的使用 |
02 | 精通Java编程,以及各种框架的原理 |
03 | 技术方面有一项特别擅长,比如分布式系统设计,业务建模,数据分析,数据交换,流程引擎等 |
04 | 精通JVM各种调优 |
05 | 有Hadoop项目经验,掌握MapReduce |
06 | 数据分析,推荐,机器学习,数据挖掘相关工作优先 |
07 | 主导或参与过高可用性能系统的设计开发 |
08 | 善于跨职能沟通,擅长带领团队进行高质量交付 |
09 | 具有分库分表,微服务拆分,分布式处理事务处理的相关知识 |
10 | 较强的抽象思维能力,能将共性需求提炼成产品 |
11 | 熟悉事务,锁,高并发等机制 |
12 | 有用户增长,自动化营销或数据化智能运营系统建设经验优先 |
13 | 熟悉前后端高校服务传输机制 |
14 | 服务器迭代开发,处理高并发,高性能场景优先以及JVM优化 |
这个阶段一般是5年以上,框架已经远去,主要是定位系统出现的问题并解决一些高并发性能的问题 | |
总结
完成以上顶多算个中级开发工程师,要想继续内卷下去, 还需要对大数据,运维,以及前端有一个清楚的认识。
同时对Docker与K8s体系平台较为熟悉,各种技术原理的深入了解,另外掌握多门语言也是很有帮助的。继续深造,下面来看看成神之路。
Java架构师(冲击年薪50W+)
如果还想卷下去,Java架构师是必须走的一步,也是成神的一步。
架构师之路
基本素养
- 常见领域熟悉:开发,运维,大数据
- 纵深:开发架构师(50W+),运维架构师(60W+),运维开发架构师(80W+),大数据架构师(70W+)
工作内容
- 产品模块与划分
- 开发技术选型
- 中间件选型与优化
- 亲自编码场景较少
- PPT与邮件玩的溜
- 基本的管理技巧(PMP)
内功基础
- 基本的数据机构预算法
- 设计模式
- 计算机网络
- 操作系统
- JVM
核心框架源码
- Java核心源码
- Spring5框架源码核心
- SpringBoot,SpringCloud(原生系,阿里系),SpringMVC核心源码
- Tomcat,MyBatis,Netty,Zookeeper等
常用的中间件
数据库,消息队列,缓存,检索,存储,调度等
分布式系统原理与技术
- 服务注册
- 服务发现
- 远程调用
- 负载均衡
- 服务熔断
- 配置管理
- 链路追踪
- 认证授权
- 三高问题
- 分布式计算
- 分布式事务
- 分布式缓存
- 服务代理
- 监控告警
每个模块必须知道一个代表性框架的源码,有个大概。
架构师增强技能
- 容器化
- 服务编排
- CI/CD 持续集成、交互、部署
- 云平台应用架构与设计
- 边缘计算
附录一:暗黑心法图书
序号 | 书籍 |
---|---|
01 | 计算机科学导论 |
02 | 深入理解计算机系统 |
03 | 计算机网络 |
04 | 设计模式 |
05 | 数据库系统概念 |
06 | 数据结构与算法分析 |
07 | 算法导论 |
08 | 计算机组成原理 |
09 | 软件工程 |
10 | 现代操作系统 |
11 | 编译原理 |
Java到底该不该学,学又该如何学习?相关推荐
- 【C/C++】从技术学习和实际运用的角度来看,C/C++和Java到底区别在哪?C语言、C++学习路线?
转自羊哥的公众号 这几个问题都是私信里常被问到的,也是我当时学习过程中的一些疑惑.谁说黑乎乎的命令行里运行的程序就没有用!这跟学什么编程语言.后续从事什么编程方向均无关,只要做编程开发,这四个计算机基 ...
- 什么都不懂的学java难不难_零基础转行学java到底难不难
不少零基础的新手想要转行学习java可是不知道难度,南京学码思下面就给大家详细的说一说转行java的难度,希望能帮助到各位想要了解java的同学. 零基础转行学java到底难不难 新手转行学java到 ...
- 为什么会有那么多的人选择Java?学Java到底好不好?
TLOBE指数显示,Java编程已经超过了20%的普及门槛,这意味着每五行源代码当中就有一行采用Java编写,因此Java被称为世界第一的语言. 瞬间好奇有没有?但为什么会有那么多的人选择Java?学 ...
- 学Java到底用什么电脑好呢?
士兵打仗武器十分重要,对于编程人员来说武器就是电脑了,那么你知道学Java编程到底是用什么电脑好一些呢? Java编程用什么电脑? 首先对于Java编程来说,没有特殊要求的话,市面上你能见到的还在生产 ...
- 零基础转行学Java到底难不难?
2019独角兽企业重金招聘Python工程师标准>>> 74%的人认为不难 有人曾经做过统计,询问500多已经参加工作的 Java开发者,"学习java是否困难?" ...
- 西安达内:学Java到底好在哪里
大多数人选择Java可能只是因为听说Java前景好.Java比较好找工作.Java语言在TIOBE排行榜上一直位于前三等等之类的原因,但是Java具体好在哪里,心里却是没有什么概念的. 其实我选择Ja ...
- 五分钟学Java:Java到底是值传递还是引用传递?
在逛 Stack Overflow 的时候,发现了一些访问量像阿尔卑斯山一样高的问题,比如说这个:Java 到底是值传递还是引用传递?访问量足足有 188万+,这不得了啊!说明有很多很多的程序员被这个 ...
- Java就业前景怎么样?值得学吗?
Java作为目前主流的热门编程语言,越来越多的人选择学习Java.但是也有一部分人仍在驻足不前,四处打听Java开发的就业前景,现在小千就带你一起去详细的了解一下Java的就业前景,让你明白Java到 ...
- 为什么说Java是2021年最值得学的技术?
随着时代的发展,互联网行业越来越普及,想加入这个行业的人也越来越多.Java的主要优势就体现的很明显,可以说Java是2021年最值得学的技术!为何这样说呢?Java到底有哪些优势?接下来,小千为答疑 ...
- amigo幸运字符什么意思_OMG,12 个精致的 Java 字符串操作小技巧,学它
字符串可以说是 Java 中最具有代表性的类了,似乎没有之一哈,这就好像直播界的李佳琪,脱口秀中的李诞,一等一的大哥地位.不得不承认,最近吐槽大会刷多了,脑子里全是那些段子,写文章都有点不由自主,真的 ...
最新文章
- Linux 查看进程命令
- SpringBoot 2.0 教程实战 MySQL 读写分离
- cisco tftp 操作
- BZOJ2675 : Bomb
- android 双人黑白棋开发博客,黑白棋 - 软件资讯 - 课堂党年级博客
- 韦冬雪计算机应用,捕获效应下RFID防碰撞算法的研究与应用
- mysql_fetch_bit_mysql_fetch_array()
- python怎么变成exe_Python怎样打包成exe?
- thinkjs——两表联查
- 问题 L: 一年中的第几天
- 【最短路径问题笔记】Floyd算法求多源最短路径问题
- iNeedle系统之国舜项目
- 线程令牌桶的实现及条件变量改进版本
- 概率论————思维导图(上岸必备)(一维随机变量及其分布)
- 电信行业数据安全风险评估案例 - 数据安全治理之数据安全风险评估白皮书
- 模拟游戏--鸭子的种类
- Swift 下标用法
- Vba Excel 到 word 实例
- 清华大学计算机国际大赛,动态 | 清华大学超算团队摘得 SC 2018 总冠军,包揽三大国际大学生超算竞赛总冠军...
- Buck-Boost 变换器和红外 LED 驱动器