概述
文章目录
- 前言
- 技能树
- java
- 编译与执行
- java常用功能与核心类库
- 主要框架
- Spring
- 其他实用工具
- 中间件
- 关系型数据库
- Mysql
- 文档型数据库
- MongoDB
- 键值对数据库
- Redis
- 消息队列
- RabbitMQ
- 运维
- 容器
- Docker
- 服务器
- Nginx
- 网络
- 网络协议
- 设计
- 设计模式
- 锁
- 算法与数据结构
- 通用数据结构
- 算法基础
- 程序员段位
- java实习生
- java初级工程师
- java中级工程师
- java高级工程师
- java架构师
- 技术专家
- 更新版本
前言
我要写这个东西的主要原因,发问,我现在是什么,我要将要成为什么。是要给自己一个定位,给自己一个发展方向,通过翻阅网络上行业内对各级工程师的定义以及自己数十月的工作经验来做个记录。
相信很多人也是工作一段时间很迷茫,常用的都会了,不常用也不知道学什么,不知道值不值得花费时间和精力去学,慢慢地成为职场老油条,慢慢的丧失跳槽和升级的能力。
实用主义是我最崇尚的,一切知识都是为解决实际问题,程序员的等级是解决问题的能力决定的,与工作多少年没有直接关系。只是工作的时间长与能力有相关性,对不同的人可以有天壤之别。
时间到了2021年底,最近看了一些别人的面试,感觉自己一些知识又生疏了,于是开始学习,对于之前的整理,我还是感觉要学习要查询知识很不方便,需要做一个能很好等引导我的东西,虽然有百度脑图,总感觉功能还是少了些,用markdown的优点是,有双重目录,一个主目录点进去,每一个叶子节点又是一个Mermaid流程图,还支持html相当灵活。缺点就是不能折叠。
技能树
java
编译与执行
前端编译器执行结束生成class文件,后面的由JVM执行和存储临时数据
java常用功能与核心类库
主要框架
Spring
Zookeeper、Consul注册中心
Nacos注册中心、配置中心、服务总线
Ribbon、LoadBalancer负载均衡
Geteway网关
Sentinel、Resilience4j熔断、降级
监控
全链路追踪
自动化部署
RabbitMQ、kafka消息队列
其他实用工具
中间件
关系型数据库
Mysql
文档型数据库
MongoDB
键值对数据库
Redis
消息队列
RabbitMQ
运维
容器
Docker
服务器
Nginx
网络
网络协议
设计
设计模式
锁
算法与数据结构
通用数据结构
算法基础
程序员段位
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.2 | Redis弄了一下,RabbitMq搭建好 | 12月25日 |
0.3 | SpringBoot,数据结构和算法总共搭建70%左右 | 12月26日 |
0.3.1 | SpringCloud加了点 | 1月12日 |
最后
以上就是神勇嚓茶为你收集整理的java技术栈与技能要求大纲前言技能树程序员段位更新版本的全部内容,希望文章能够帮你解决java技术栈与技能要求大纲前言技能树程序员段位更新版本所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复