这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 从工程师到架构设计师的成长过程

共6条 1/1 1 跳转至

从工程师到架构设计师的成长过程

院士
2024-10-16 13:38:55     打赏

从工程师到架构设计师的成长过程

算起来工作也有些年头了。随着经验的积累,自己的职位也在不断升高。本篇看看我们从毕业后成为的工程师到架构设计师的成长过程的资格要求。以文字来表述出来,方便大家来做对比。

1.工程师阶段

要从一名技术员(助理工程师)成为一个合格的工程师需要参加相关工作1~3年时间,其典型特征是“在别人的指导下完成开发”,这里的“别人”主要是“高级工程师”或者“技术专家”。通常情况下,高级工程师或者技术专家负责需求分析、讨论和方案设计,工程师负责编码实现,高级工程师或者技术专家会指导工程师进行编码实现。工程师阶段应该是原始的“基础技能积累阶段”,主要积累基础知识,包括编程语言、基本数据结构、开发环境、操作系统、数据库以及相关软件开发流程等。

2.高级工程师阶段

从工程师成长为高级工程师需要3~5年时间,其典型特征是“独立完成开发”,包括需求分析、方案设计和编码实现,其中需求分析和方案设计已经包含了“判断”和“选择”,只是范围相对来说小一些,更多是在已有架构下进行设计。高级工程师主要需要“积累方案设计经验”,简单来说就是业务当前用到的相关技术的设计经验。高级工程师阶段相比工程师阶段有两个典型的差异:其一是深度,如果说工程师是要求知道 How,那高级工程师就要求知道 Why了。例如Java 的各种数据结构的实现原理,因为只有深入掌握了这些实现原理,才能对其优缺点和使用场景有深刻理解,这样在做具体方案设计的时候才能选择合适的数据结构。其二是理论,理论就是前人总结出来的成熟的设计经验,例如数据库表设计的3个范式、面向对象的设计模式、SOLID设计原则、缓存设计理论(缓存穿透缓存雪崩和缓存热点)等

3.技术专家阶段

成长为技术专家需要4~8年时间,其典型的特征是“某个领域的专家”,通俗地讲,只要是这个领域的问题,技术专家都可以解决。例如:Java 开发专家、嵌入式开发专家、操作系统开发专家等。通常情况下,“领域”的范围不能太小,例如我们可以说“Java 开发专家”,但不会说“Java 多线程专家”或“Java JBC 专家”。技术专家与高级工程师的一个典型区别就是,高级工程师主要是在已有的架构框架下完成设计,而技术专家会根据需要修改、扩展和优化架构。从高级工程师成长为技术专家,主要需要“拓展技术宽度”,因为一个“领域”必然会涉乃众多的技术面。

需要注意的是,拓展技术宽度并不意味着仅仅只是知道一个技术名词,而是要深入去理解每个技术的原理、优缺点以及应用场景。

4.系统架构设计师(初级 )

成长为初级架构设计师需要5~8年时间,其典型特征就是能够“独立完成一个系统的架构设计”,可以是从0到1设计一个新系统,也可以是将架构从10重构到2.0。初级架构设计师负责的系统复杂度相对来说不高,例如后台管理系统、某个业务下的子系统等。初级架构设计师和技术专家的典型区别是:初级架构设计师是基于完善的架构设计方法论的指导来进行架构设计,而技术专家更多的是基于经验进行架构设计。简单来说,即使是同样一个方案,初级架构设计师能够清晰地阐述架构设计的理由和原因,而技术专家可能就是因为自己曾经这样做过,或者看到别人这样做过而选择设计方案。但在实践工作中,技术专家和初级架构设计师的区别并不很明显,事实上很多技术专家其实就承担了初级架构设计师的角色,因为在系统复杂度相对不高的情况下,架构设计的难度不高,用不同的备选方案最终都能够较好地完成系统设计。从技术专家成长为初级架构设计师,最主要的是形成自己的“架构设计方法论”。形成自己的架构设计方法论的主要手段有:系统学习架构设计方法论,包括订阅专栏或者阅读书籍等;深入研究成熟开源系统的架构设计;结合架构设计方法论,分析和总结自己团队甚至公司的各种系统的架构设计的优缺点,尝试思考架构的重构方案。

5.系统架构设计师(中级)

成长为中级架构设计师需要8~10年以上时间,其典型特征是“能够完成复杂系统的架构设计”,包含高性能、高可用、可扩展、海量存储等复杂系统,例如设计一个总共 100人参与开发的业务系统等。中级架构设计师与初级架构设计师的典型区别在于系统复杂度的不同,中级架构设计师面对的系统复杂度要高于初级架构设计师。以开源项目为例,初级架构设计师可能引入某个开源项目就可以完成架构设计,而中级架构设计师可能发现其实没有哪个开源项目是合适的,而需要自己开发一个全新的项目,事实上很多开源项目就是这样诞生出来的。从初级架构设计师成长为中级架构设计师,最关键的是“技术深度和技术理论的积累”。

6.系统架构设计师(高级)

成长为高级架构设计师需要10年以上时间,其典型特征是“创造新的架构模式”,例如:谷歌的分布式存储架构、分布式计算 MapReduce 架构和列式存储架构等开创了大数据时代;在虚拟机很成熟的背景下,Docker创造了容器化的技术潮流。高级架构设计师与中级架构设计师相比,典型区别在于“创造性”,高级架构设计师能够创造新的架构模式,开创新的技术潮流。





关键词: 工程师     设计师     成长    

专家
2024-10-16 19:11:48     打赏
2楼

做架构其实挺难的,要考虑挺多事情。我之前用Struts2+PostgreSql+Hibernate做的一个Web框架,就总是出DB访问Session的问题,总是有Session不能正常关闭。搭框架,真的把底层搞明白才行。


工程师
2024-10-16 19:34:39     打赏
3楼

厉害


专家
2024-10-16 20:40:40     打赏
4楼

感谢分享


专家
2024-10-16 21:17:36     打赏
5楼

感谢分享


高工
2024-10-17 13:18:34     打赏
6楼

高级架构师的成长还是挺难的。


共6条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]