“程序员到架构师的技术成长之路分为几个典型的阶段:工程师 - 高级工程师 - 技术专家 - 初级架构师 - 中级架构师 - 高级架构师”
程序员到架构师的技术成长之路分为几个典型的阶段:工程师 - 高级工程师 - 技术专家 - 初级架构师 - 中级架构师 - 高级架构师,总的成长原则是每个阶段都需要“积累经验、拓宽视野、深度思考”。
01
—
工程师阶段
工程师阶段是最原始的“基础技能积累阶段”,主要积累基础知识,包括编程语言、编程工具、各类系统的基本使用。工程师阶段需要积累的经验和技能有:
02
—
高级工程师
从普通工程师成长为高级工程师,主要需要积累方案设计经验并能独立完成开发,包括需求分析、方案设计、编码实现,其中需求分析和方案设计已经包含了“判断”和“选择”,只是范围相对来说小一些,更多是在已有架构下进行设计。比如对于存储技术来说,需要掌握:
03
—
技术专家
从高级工程师成长为技术专家,主要需要“拓展技术宽度”,因为一个“领域”必然会涉及众多的技术面。以 Java 后端开发为例,要成为一个 Java 开发专家,需要掌握 Java 多线程、JDBC、Java 虚拟机、面向对象、设计模式、Netty、Elasticsearch、Memcache、Redis、MySQL 等众多技术。对于技术专家来讲,需要宽广的技术面,比如对于开源项目,需要深入了解:
04
—
初级架构师
能够独立完成一个系统的架构设计,可以是从 0 到 1 设计一个新系统,也可以是将架构从 1.0 重构到 2.0。架构师是基于完善的架构设计方法论的指导来进行架构设计,而技术专家更多的是基于经验进行架构设计。专栏给出了完整的架构设计方法论,你可以参考:
05
—
中级架构师
能够完成复杂系统的架构设计,包含高性能、高可用、可扩展、海量存储等复杂系统,例如设计一个和 Kafka 性能匹敌的消息队列系统、将业务改造为异地多活、设计一个总共 100 人参与开发的业务系统等。比如对于高可用架构来说,专栏涵盖了存储高可用、计算高可用和业务高可用等内容。
06
—
高级架构师
成长为高级架构师需要 10 年以上时间,其典型特征是“创造新的架构模式”,例如:高级架构师与中级架构师相比,典型区别在于“创造性”,高级架构师能够创造新的架构模式,开创新的技术潮流。