最近好多人私信问我,该怎样才能成为高薪架构师,还有一个就对当前的状态感到迷茫,我在此做一个简单的说明,或者对迷茫中的你来说有些许帮助。
当前你感到迷茫吗?
有很多人对现在的工作感到很没意思,因为当前的工作,完全是实现业务,技术上没有任何提高。在这种状态下就会感到迷茫,特别是一想到将来这种迷茫感就更强烈了。
与其说迷茫还不如说是担忧,随着时间的推移,自己的技术又没有长进,所以感觉忧心忡忡。
这里分为二种人:
*混日子,过一天算一天
这一种的我就不过多讨论了,没有什么意义。我也碰到过很多这样的同事,此类程序员已经废啦。
*想提高自己的技术,往架构师方向努力。
给我发私信的人,大部分是这一种。首先,可以看出来,这些人都是有自己理想的人,也会付诸实践的。想往架构师方向走,但是却苦于没有人带,自己也不知道如何成为框架师。再不改变,此类程序员可能会也废。
我想借这个文章和大家聊聊架构师这个话题,纯属个人理解,与对错无忧。
架构师的定义?
个人觉得架构师需要具有以下几特点:
知识广度:需要知道主流技术为什么诞生,能解决什么问题?如果同一种业务用不用的技术来实现,会有什么哪些优缺点?比如:流行的ORM框架Mybatis 和 hibernate ,还有spring框架他们之间的优缺点是什么?要有清晰的认识会能在技术造型时做出正确的决定。
抽象能力:对业务和技术进行抽象。比如业务抽象就是对需求进行分析后,能够建立完美的实体类以及他们之间的联系。技术抽象是对整体架构进行一个分层,各层之间的交互。这至关重要,如果技术抽象能力不足,这会导致整个系统的架构不灵活,难以维护和扩展。
知识的深度:至少是某个领域的专家,比如消息队列,或者activeMQ熟悉其源码,知道其实现。
优秀的学习能力:对新的技术和前沿性的技术进行学习,使用它来解决工作中的业务问题。
那么你该如何去做呢?我觉得可以从以下几个步骤开始:
1: 扎实的Java 基础,Think in Java上介绍的内容都能理解,做到这一步恭喜成为了程序员。
2:熟练使用主流框架,如:mybatis,spring 等。
3:研究过至少一种以web框架的源码,如spring mvc ,struts 等。
4:架构过或者参与过高并发系统设计,知道如何应对突发情况。
5:对自己所处的业务能够根据自己的知识维度,提出优化建议或者预测其风险点。
其实架构师并没有想象中的那么难,但是你要看是什么公司的架构师,我见过一个小企业的架构师,工作八年了,但是感觉真的水平就只有阿里P6这样的级别,其实能否成为架构师跟机遇有很大关系,比如一个程序员,以上都做到了,但是公司并没有给他这个机会去做,一个真正架构的机会。
针对以上的问题,其实更多的是技术方面的东西,我自己收集整理了一套Java架构方面的进阶路线图,分享给目前工作0~7年左右的Java程序员们,可以梳理一下自己的技术,这些东西可能你们平时在工作中接触过,但是缺少的全面系统的学习,所以掌握的都不深,希望看了路线图以后大家知道从哪里开始入手学习。
这是通往架构师的必经之路,由浅入深地沉稳扎根基础。
一、扎实基础、深入底层,面试我可造火箭。
- 多线程与高并发
- 深入JVM
- JVM调优案例式实战化指导
- 经常被问操作系统原理分析
- 从底向上网络原理解读
- 案例式深入解析23种设计模式
- 设计原则水到渠成
- ULM建模
二、洞悉分布、明察并行,一路架构冲云霄。
- 消息中间件
- 互联网架构演变的过程与原理
- ELK
- 高负载高并发高可用架构设计指导思想
- 分布式事务
- 单点登录
- LVS
- 分布式任务调度
- 缓存
- Zookeeper
三、高薪必问、无处可避,不如迎头直接上
- 深入透彻完整解析REDIS
- 源码层面无死角解析NETTY
四、未来主流、必知必会,服务微化亮绝招
- RPC构建分布式
- Spring Boot
- Spring Cloud
- Docker
- Kubemetes
- Service Mesh
- 微服务设计的学与思
五、分布存储、高效写读,优化性能带你飞。
- MySQL优化
- FastDFS
- OpenResty
- HDFS
六、庖丁解牛、手写源码,一步一步成大牛。
- JDK源码解析
- Spring源码解析
- MyBatis源码解析
- Dubbo源码解析
- Spring MVC源码解析
- Netty源码解析
七、职业规划、软性技能,人生自此上巅峰。
- 职业规划与指导
- 面试软技巧
- 技术文档编写
我自己也总结整理了一份【Java核心知识点整理】,内容涵盖29个Java核心技术详解,JVM,Redis,Nginx,Spring Boot,Spring Cloud,Kafka,并发编程,Tomcat,MyBatis等。希望对渴望学习提升自己的Java工程师朋友们有所帮助!
Java核心知识点整理概述
由于文章内容已经过长了,所以这里只介绍这份文档的目录内容。
JVM知识点整理
Java集合知识点整理
Java多线程并发知识点整理
Java基础知识点整理
Spring原理知识点整理
微服务知识点整理
Netty与RPC知识点整理
网络知识点整理
日志知识点整理
Zookeeper知识点整理
Kafka知识点整理
RabbitMQ知识点整理
Hbase知识点整理
MongoDB知识点整理
Cassandra知识点整理
设计模式知识点整理
负载均衡知识点整理
数据库知识点整理
一致性算法知识点整理
Java算法知识点整理
数据结构知识点整理
加密算法知识点整理
分布式缓存知识点整理
Hadoop知识点整理
Spark知识点整理