最近好多人私信问我,该怎样才能成为高薪架构师,还有一个就对当前的状态感到迷茫,我在此做一个简单的说明,或者对迷茫中的你来说有些许帮助。

  当前你感到迷茫吗?

  有很多人对现在的工作感到很没意思,因为当前的工作,完全是实现业务,技术上没有任何提高。在这种状态下就会感到迷茫,特别是一想到将来这种迷茫感就更强烈了。

  与其说迷茫还不如说是担忧,随着时间的推移,自己的技术又没有长进,所以感觉忧心忡忡。

  这里分为二种人:

  *混日子,过一天算一天

  这一种的我就不过多讨论了,没有什么意义。我也碰到过很多这样的同事,此类程序员已经废啦。

  *想提高自己的技术,往架构师方向努力。

  给我发私信的人,大部分是这一种。首先,可以看出来,这些人都是有自己理想的人,也会付诸实践的。想往架构师方向走,但是却苦于没有人带,自己也不知道如何成为框架师。再不改变,此类程序员可能会也废。

  我想借这个文章和大家聊聊架构师这个话题,纯属个人理解,与对错无忧。

  

  架构师的定义?

  个人觉得架构师需要具有以下几特点:

  知识广度:需要知道主流技术为什么诞生,能解决什么问题?如果同一种业务用不用的技术来实现,会有什么哪些优缺点?比如:流行的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程序员们,可以梳理一下自己的技术,这些东西可能你们平时在工作中接触过,但是缺少的全面系统的学习,所以掌握的都不深,希望看了路线图以后大家知道从哪里开始入手学习。

这是通往架构师的必经之路,由浅入深地沉稳扎根基础。

一、扎实基础、深入底层,面试我可造火箭。

  1. 多线程与高并发
  2. 深入JVM
  3. JVM调优案例式实战化指导
  4. 经常被问操作系统原理分析
  5. 从底向上网络原理解读
  6. 案例式深入解析23种设计模式
  7. 设计原则水到渠成
  8. ULM建模

 

二、洞悉分布、明察并行,一路架构冲云霄。

  1. 消息中间件
  2. 互联网架构演变的过程与原理
  3. ELK
  4. 高负载高并发高可用架构设计指导思想
  5. 分布式事务
  6. 单点登录
  7. LVS
  8. 分布式任务调度
  9. 缓存
  10. Zookeeper

 

三、高薪必问、无处可避,不如迎头直接上

  1. 深入透彻完整解析REDIS
  2. 源码层面无死角解析NETTY

 

四、未来主流、必知必会,服务微化亮绝招

  1. RPC构建分布式
  2. Spring Boot
  3. Spring Cloud
  4. Docker
  5. Kubemetes
  6. Service Mesh
  7. 微服务设计的学与思

 

五、分布存储、高效写读,优化性能带你飞。

  1. MySQL优化
  2. FastDFS
  3. OpenResty
  4. HDFS

 

六、庖丁解牛、手写源码,一步一步成大牛。

  1. JDK源码解析
  2. Spring源码解析
  3. MyBatis源码解析
  4. Dubbo源码解析
  5. Spring MVC源码解析
  6. Netty源码解析

 

七、职业规划、软性技能,人生自此上巅峰。

  1. 职业规划与指导
  2. 面试软技巧
  3. 技术文档编写

 

我自己也总结整理了一份【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知识点整理