网络知识 娱乐 【学前篇】Java到底该不该学,学又该如何学习?

【学前篇】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编译原理