我是靠谱客的博主 神勇嚓茶,最近开发中收集的这篇文章主要介绍java技术栈与技能要求大纲前言技能树程序员段位更新版本,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

  • 前言
  • 技能树
    • java
      • 编译与执行
      • java常用功能与核心类库
      • 主要框架
        • Spring
      • 其他实用工具
    • 中间件
      • 关系型数据库
        • Mysql
      • 文档型数据库
        • MongoDB
      • 键值对数据库
        • Redis
      • 消息队列
        • RabbitMQ
    • 运维
      • 容器
        • Docker
      • 服务器
        • Nginx
    • 网络
      • 网络协议
    • 设计
      • 设计模式
    • 算法与数据结构
      • 通用数据结构
      • 算法基础
  • 程序员段位
      • java实习生
      • java初级工程师
      • java中级工程师
      • java高级工程师
      • java架构师
      • 技术专家
  • 更新版本

前言

要写这个东西的主要原因,发问,我现在是什么,我要将要成为什么。是要给自己一个定位,给自己一个发展方向,通过翻阅网络上行业内对各级工程师的定义以及自己数十月的工作经验来做个记录。

相信很多人也是工作一段时间很迷茫,常用的都会了,不常用也不知道学什么,不知道值不值得花费时间和精力去学,慢慢地成为职场老油条,慢慢的丧失跳槽和升级的能力。

实用主义是我最崇尚的,一切知识都是为解决实际问题,程序员的等级是解决问题的能力决定的,与工作多少年没有直接关系。只是工作的时间长与能力有相关性,对不同的人可以有天壤之别。

时间到了2021年底,最近看了一些别人的面试,感觉自己一些知识又生疏了,于是开始学习,对于之前的整理,我还是感觉要学习要查询知识很不方便,需要做一个能很好等引导我的东西,虽然有百度脑图,总感觉功能还是少了些,用markdown的优点是,有双重目录,一个主目录点进去,每一个叶子节点又是一个Mermaid流程图,还支持html相当灵活。缺点就是不能折叠。

技能树

java

编译与执行

前端编译器执行结束生成class文件,后面的由JVM执行和存储临时数据

编译与执行
前端编译器
类加载子系统
运行时数据区
执行引擎
系统资源
词法分析
语法分析
语义分析
字节码生成
加载阶段
引导类加载器
扩展类加载器
系统类加载器
链接阶段
验证
准备
解析
初始化阶段
初始化
使用
卸载
元空间
程序计数器
本地方法栈
解释器
即时编译器
垃圾回收器
本地方法库
本地方法接口

java常用功能与核心类库

java知识点
核心语法
面向对象
抽象类
对象
接口
注解
枚举
关键字
修饰符
volatile
transient
synchronized
数据类型
异常
java
lang
字符串
包装类
线程
异常
Math
System
引用
io
字符流
Reader
BufferedReader
InputStreamReader
FileReader
StringReader
Writer
字节流
InputStream
FileInputStream
ObjectInputStream
OutputStream
util
容器
List
set
map
net
HttpClient
Cookie
Socket
URL工具
sql
security
javax
servlet
mail
net
websocket
crypto

主要框架

Spring

Springboot
web
内嵌web容器
请求与响应
Controller
RestController
RequestMapping
自动装配
yml配置
Spring核心
控制反转
Component等4个
Bean
依赖注入
面向切面
Aspect
动态代理
jdk方式
Cglib方式
SpringCloud
注册发现
配置中心
网关
负载均衡
熔断
监控
全链路追踪
自动化部署
降级
消息队列

Zookeeper、Consul注册中心
Nacos注册中心、配置中心、服务总线
Ribbon、LoadBalancer负载均衡
Geteway网关
Sentinel、Resilience4j熔断、降级
监控
全链路追踪
自动化部署
RabbitMQ、kafka消息队列

SpringSecurity

其他实用工具

中间件

关系型数据库

Mysql

Mysql
结构和原理
B+Tree
执行顺序
索引
数据类型
DDL
创建库表
修改库表
删除库表
DML
创建数据
修改数据
删除数据
DQL
关联查询
join
子查询
distinct
group
order
函数
like
having
exists
DCL
提交
回滚
事务
sql注入
mybatis

文档型数据库

MongoDB

MongoDB

键值对数据库

Redis

Redis
数据结构
string
位图
list
延时队列
hash
set
zset
GeoHash
HyperLogLog
stream
查询
scan
布隆过滤器
集群
主从同步
哨兵模式
Codis
Cluster
IO模型
限流
持久化
管道
事务

消息队列

RabbitMQ

RabbitMQ
结构
交换器
TopicExchange
FanoutExchange
DirectExchange
队列
生产者
消费者
模式
简单模式
工作模式
发布订阅模式
路由模式
话题模式

运维

容器

Docker

Docker

服务器

Nginx

Nginx

网络

网络协议

网络协议

设计

设计模式

乐观和悲观
乐观锁
悲观锁
锁冲突的处理方式
自旋锁
自适应锁
互斥锁
按执行顺序
公平锁
非公平锁
可重入锁
读写锁
共享锁
排他锁
JVM中的锁
重量级锁
轻量级锁
偏向锁
分布式锁
Redis红锁
锁的优化
分段锁

算法与数据结构

通用数据结构

数据结构
线性
非线性
数组
队列
链表
散列表

算法基础

算法
排序
比较类
交换排序
冒泡排序
快速排序
插入排序
希尔排序
选择排序
堆排序
归并排序
二路归并
多路归并
非比较类
计数排序
桶排序
基数排序
查找
二分查找
数论
图论
生成树
遍历
深度优先搜索
广度优先搜索
prim最小生成树
kruskal最小生成树
最短路
Dijkstra算法
Floyd-Warshall算法
动态规划
几何

程序员段位

java实习生

又不需要开发,技能要求主要还是学校里课程有的
java:至少会java这门语言,熟练运用list、map等容器
sql:会写sql语句
操作系统:对进程和线程有概念,线程几种状态,死锁的形成和避免
计算机网络:http、https、tcp、udp几种协议有个初步了解。
前端:Html、css、javascript都有一个初步的了解,常见标签,选择器,点击事件等。计算机专业大部分会学(可能课本上会出现一点点)。
数据结构:顺序表、链表、平衡二叉树、最小生成树、冒泡排序、快速排序、二分查找等,课本也是有挺多内容的,都学会了可以做一个基础扎实的实习生,日后受益。

java初级工程师

不管是不是前后端分离,数据的交互总是要了解点,熟悉json语法和应用,开始独立编写后台代码。
java:J2EE、多线程编程、socket编程、异常处理
设计模式:熟悉单例模式、工厂模式、代理模式
数据库:熟悉常见的关系型数据库,SQL Servers、mysql、Oracle
aop框架:Struts/Spring/Springboot等环境下的编程,可能有的是jsp,理解面向切面,知道框架中大概有什么
orm框架:Hibernate/mybatis/EclipseLink/JFinal等掌握其一的增删改查,和一些复杂一点的查询
服务器:tomcat
前端:jQuery,ajax

java中级工程师

中级工程师是最常见的主力,人数多,工作年限范围也比较大,不主动去学习和改变,干10年也可能就是个中级工程师,应为一个优秀中级工程师掌握的技术占了一个普通项目的90%以上
java:对集合容器了如指掌、过滤器、监听器、文件传输、日志、模板引擎等,对jvm结构有个认识、了解GC、熟悉代理模式、单例模式等常见设计模式的实现,代码质量高,易扩展,易复用。
:连接池、线程池、对象池的常用实现
aop框架:熟悉必须的配置文件,在框架出现问题是能快速定位问题。
sql数据库:合理的进行表设计、索引、存储过程、熟悉sql优化。
分布式:RPC框架Dubbo、在分布式环境下的开发,了解一些相关配置。
nosql数据库:非关系型数据存储中间件,文档型mongoDB、CouchDB等,键值型Redis等,图形数据库Neo4J、ArangoDB,搜索引擎Solr、Elasticsearch等,至少得熟练使用一两种,熟知常用数据类型和数据库的特点,熟练增删改查,能灵活的应用在多种业务场景中,熟悉其事务和持久化。
消息队列:RabbitMQ/RocketMQ/CMQ/Kafka/Notify/Hermes等,用消息队列首先一点先明确该队列的该模式的应用场景,熟练使用几种发布订阅模式和接收确认。
权限框架:轻量级apache shiro,复杂的Spring Security 。一般都是管理系统,数量不多的用户有明确的分工,可以用来开发工作流。
网络安全:登录注册得会写,了解常见的攻击手段并学会防治。
前端:至少熟练的掌握一个框架。
运维:Linux常用命令,稍微会点shell脚本,毕竟也不是专业运维,平时需要部署服务器和查看日志。
其他:因公司业务不同需要不同的技术,对接三方、支付、科学计算等,有几个特殊技能,对当前业务的设计和改进有些思路。道了中级,代码可不能是只实现功能就行了,要用各种手段实行优化。

java高级工程师

满足了上述条件进入高级工程师的门槛了,高级工程师优秀一些的,就能在小公司或部门里做个架构师了,在企业里能做技术主力,一般小公司也没几个这样的高手
java:能开发出很多方便的工具,JVM调优
架构:深刻理解分层、客户端-服务器模式、主-从模式、熟悉插件架构、微服务架构、云架构,能独立完成一般企业项目的搭建和开发
数据库:分片的方案,高可用的方案
分布式:分布式协同系统(分布式日志复制)、分布式任务调度框架、流计算框架、分布式文件/对象系统、分布式NoSQL存储、分布式关系数据库(OLAP、OLTP)、springCloud组件Hystrix:服务的隔离、熔断和降级、Zuul:动态路由
:乐观锁、悲观锁、自旋锁、自适应锁、公平锁、非公平锁、可重入锁,不可重入锁、共享锁、排他锁
集群:代码以及以上各种中间件都到了一个集群的环境里,就会产生很多新的问题、例如数据库集群时的同步问题
消息队列:消息重复问题、副本复制、事务设计、高可用问题
一致性:raft算法、paxos算法、ZAB协议、BASE算法、CAP算法

java架构师

一个优秀的架构师能给团队带来极高的工作效率,可以说,除了他一个人幸苦,其他的开发人员都能享受到他带来的福利,工作效率上去了,才能少加班。除了开发,架构师平常经常参与服务器建设,对运维方面相当熟悉。
架构
服务器:服务限流:令牌桶、漏桶,服务链路监控和报警:CAT、Dapper、Pinpoint
分布式事务:JTA分布式事务、TCC分布式事务

技术专家

传说中无所不能的人,掌握尖端技术的人,走在时代前沿的人。
能独自开发出一套实用的受欢迎的框架

更新版本

版本号更新内容时间
0.1构思了大概怎么做,构建了架子,jvm结构搭建差不多了,后面核心类也搭建了30%12月24日
0.2Redis弄了一下,RabbitMq搭建好12月25日
0.3SpringBoot,数据结构和算法总共搭建70%左右12月26日
0.3.1SpringCloud加了点1月12日

最后

以上就是神勇嚓茶为你收集整理的java技术栈与技能要求大纲前言技能树程序员段位更新版本的全部内容,希望文章能够帮你解决java技术栈与技能要求大纲前言技能树程序员段位更新版本所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部