从零开始学架构(1)--认识架构师成长的几个阶段

上篇讲了架构师的使命和责任,还有技术架构,业务等方面的认知,这篇讲架构师的几个阶段,以及各个阶段需要做的事情需要的能力

架构师的内功

我认为架构师最重要的是三个部分:判断力,执行力,创新力。
判断力:能够准确判断系统的复杂度在哪里。
执行力:能够找到合适的方法解决并提高性能
创新力:能够创造新的方法去解决这类问题

而三种内功,主要源于自己的经验,视野和思考。
经验:即自己在设计过的系统中走的路,排的坑。
视野:站在巨人身上我们可以走的更远,需要多学习理论武装自己。
思考:是最重要的一个环节,就是我们经验和视野都是环境或者外部的输入,我们需要理解消耗,变成自己的东西,一些创造性的灵感很多都源于这里。

架构师成长的几个阶段

**初级工程师:**从业1-3年,需要在别人指导下完成开发,主要在公司承担编码工作。
**具备的能力:**积累了基础知识,包括编程语言,编程工具,会使用基础的数据结构,会数据库的CRUD。
**提高建议:**找经典的书去系统的学习,遇到问题不要依赖百度。
建议书籍:《java编程思想》,《java核心技术》,《tcp/ip协议》

**高级工程师:**从业2-5年,可独立完成开发,包括业务的需求分析,方案设计,编码实现。
具备的能力:在初级工程师的基础上,不仅懂得how去实现,也知道why要用这个去实习,如java各种数据结构知道实现原理。懂得常用的设计模式,缓存原理等。
**提高建议:**多多系统看书和研究源码。
建议书籍:《深入理解java虚拟机》,《mysql技术内幕:innoDB存储引擎》,memcache源码等

**技术专家:**从业4-8年,公司技术大佬,几乎可以解决该领域的技术问题。
**具备的能力:**不仅可以在已有框架下完成设计,并可以在该基础上对框架修改,扩展,优化。
**提高建议:**技术专家必须要扩展自己的技术宽度,需要掌握各种技术栈,如java专家,需要从java多线程,JDBC,jvm,到面向对象,设计模式,netty,elasticsearch,Memcache,redis,mysql等,拓展技术宽度的方法就是学习业界成熟的开源方案,Java专家可以去学习andriod等方面的解决方案,他山之石可以攻玉。或者参加经验分享会。

**初级架构师:**从业5到10年,能够独立完成一个系统的架构设计。
**具备的能力:**有自己的架构设计方法论,还不是基于别人的经验进行架构设计。头脑中有各个设计方案的优缺点,和适用点知道为什么选择这套技术方案,实践工作中技术水平和技术专家没多大区别。
**提高建议:**多多阅读一些架构相关的书籍,如:《恰如其分的软件架构:风险驱动的设计方案》和《领域驱动设计》等

中级架构师:8年以上的从业经验。
**具备的能力:**能够完成复杂的架构设计,包括高性能,高可用,高扩展,海量存储等复杂的系统。与初级架构师不同的就是中级架构师可以应付比较复杂的情况。

**高级架构师:**从业10年以上。
**具备的能力:**可以创造新的架构模式,如mapreduce,等分布式架构,流式计算的出现等。

架构师的作用/职责

在软件开发过程中需要做这四件事。
确认需求,系统分解,技术选型,制定技术规格说明

从零开始学架构(1)--认识架构师成长的几个阶段

架构师必备能力

从零开始学架构(1)--认识架构师成长的几个阶段