当前位置: 首页 > news >正文

从程序员到架构师的最佳技术成长之路

我把程序员到架构师的技术成长之路分为几个典型的阶段:工程师 - 高级工程师 - 技术专家 - 初级架构师 - 中级架构师 - 高级架构师,总的成长原则是每个阶段都需要“积累经验、拓宽视野、深度思考”。今天我将结合我的专栏《从0开始学架构》,跟你聊聊不同阶段具体如何实践才能更高效。

工程师阶段

工程师阶段是最原始的“基础技能积累阶段”,主要积累基础知识,包括编程语言、编程工具、各类系统的基本使用。工程师阶段需要积累的经验和技能有:
\"\"
此阶段必备知识:

  • 架构到底指什么
  • 架构设计的历史背景

高级工程师

从普通工程师成长为高级工程师,主要需要积累方案设计经验并能独立完成开发,包括需求分析、方案设计、编码实现,其中需求分析和方案设计已经包含了“判断”和“选择”,只是范围相对来说小一些,更多是在已有架构下进行设计。比如对于存储技术来说,需要掌握:
\"\"

此阶段必备知识:

  • 高性能数据库集群:分库分表
  • 高性能NoSQL
  • 高性能缓存

技术专家

从高级工程师成长为技术专家,主要需要“拓展技术宽度”,因为一个“领域”必然会涉及众多的技术面。以 Java 后端开发为例,要成为一个 Java 开发专家,需要掌握 Java 多线程、JDBC、Java 虚拟机、面向对象、设计模式、Netty、Elasticsearch、Memcache、Redis、MySQL 等众多技术。对于技术专家来讲,需要宽广的技术面,比如对于开源项目,需要深入了解:
\"\"

此阶段必备知识:

  • 单服务器高性能模式:PPC与TPC
  • 单服务器高性能模式:Reactor与Proactor
  • 接口级故障处理
  • 开源项目选择
  • 点击获取《架构师技能图谱》

初级架构师

能够独立完成一个系统的架构设计,可以是从0到1设计一个新系统,也可以是将架构从1.0重构到2.0。架构师是基于完善的架构设计方法论的指导来进行架构设计,而技术专家更多的是基于经验进行架构设计。专栏给出了完整的架构设计方法论,你可以参考:
\"\"

此阶段必备知识:

  • 架构设计目的
  • 架构设计三原则
  • 互联网架构模板

中级架构师

能够完成复杂系统的架构设计,包含高性能、高可用、可扩展、海量存储等复杂系统,例如设计一个和Kafka性能匹敌的消息队列系统、将业务改造为异地多活、设计一个总共100人参与开发的业务系统等。比如对于高可用架构来说,专栏涵盖了存储高可用、计算高可用和业务高可用等内容。
\"\"
此阶段必备知识:

  • 业务高可用的保障:异地多活架构
  • 异地多活设计4大技巧
  • 想成为架构师,你必须知道的CAP理论

高级架构师

成长为高级架构师需要 10 年以上时间,其典型特征是“创造新的架构模式”,例如:

高级架构师与中级架构师相比,典型区别在于“创造性”,高级架构师能够创造新的架构模式,开创新的技术潮流。

此阶段必备知识:

  • 技术演进方向

专栏简介:

每个程序员都有成为架构师的梦想,程序员成长也绕不开架构设计。

《从0开始学架构》专栏作者是资深技术专家李运华,目前带领多个研发团队,承担架构设计、架构重构、技术团队管理、技术培训等职责,曾就职于华为和UCWeb,写过《面向对象葵花宝典》一书。

在专栏中,作者从架构基础、三大架构模式和实战的角度分享一整套架构设计方法论。照着做,你也能成为架构师。

专栏共50期,已更新完毕。目前有超过3万人加入学习,互动留言字数超过20万。期待你的加入!点击这里试看或订阅《从0开始学架构》

相关文章:

  • Javascript 原型链
  • 交换综合实验一
  • Hanlp分词之CRF中文词法分析详解
  • 急速 debug 实战一(浏览器-基础篇)
  • kubernetes系列07—Pod控制器详解
  • SSH 免密登录
  • Java内存模型JMM 高并发原子性可见性有序性简介 多线程中篇(十)
  • vivo Z3i标准版评测 强劲配置带来酣畅体验
  • PAT A1120
  • 都是 HBase 上的 SQL 引擎,Kylin 和 Phoenix 有什么不同?
  • 2019年web前端发展趋势预测(附web前端视频教程全集)
  • 理清楚Vue的结构
  • 阿里云ACE认证之理解CDN技术
  • 数据分析沙龙杭州站,邀您报名!
  • 利用Qrcode生成二维码
  • [译] 怎样写一个基础的编译器
  • Angular数据绑定机制
  • CSS盒模型深入
  • Git初体验
  • GraphQL学习过程应该是这样的
  • iOS | NSProxy
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • Python实现BT种子转化为磁力链接【实战】
  • SpringBoot几种定时任务的实现方式
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 简单数学运算程序(不定期更新)
  • 经典排序算法及其 Java 实现
  • 微服务核心架构梳理
  • 微信公众号开发小记——5.python微信红包
  • 微信开源mars源码分析1—上层samples分析
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 原生JS动态加载JS、CSS文件及代码脚本
  • - 转 Ext2.0 form使用实例
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • ​2021半年盘点,不想你错过的重磅新书
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • (3)(3.5) 遥测无线电区域条例
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (bean配置类的注解开发)学习Spring的第十三天
  • (C语言)fgets与fputs函数详解
  • (LeetCode) T14. Longest Common Prefix
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (二十四)Flask之flask-session组件
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (分享)自己整理的一些简单awk实用语句
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • (转)jQuery 基础
  • (转)详解PHP处理密码的几种方式
  • (转载)Linux 多线程条件变量同步
  • .bat批处理(一):@echo off