如何从程序员到架构师?

1

架构师从程序员中来,但不是每个程序员都能成为架构师,要想成为架构师,不仅要有一定的基础代码能力,也要对业务有所了解,更重要的是从思维的广度和高度进行提升。

1.基础能力

基础能力是一个程序员必备的能力,如基础代码开发、XML/JSON操作、数据库、常用框架、工具等,深入一些的还有算法、设计模式、高并发、线程等内容。如果要成为架构师,这些内容是必须要了解和掌握的,所以在平时要多分析源码分析底层的架构和算法,不断积累自己的基础能力。

2.业务能力

架构都是为系统服务的,为系统服务就是为实际业务服务的,所以对于一个合格的架构师,一定要了解业务,可以根据不同业务设计出最优化的技术方案来满足实际的业务场景,并且能充分考虑到高并发、稳定性和安全性等性能要求。这就要求我们在平时工作的过程中,注意了解业务、积累经验,将实际业务与产品开发相融合,提升业务能力。

2

个人认为,有的时候不用太相信和在意这些头衔,什么XX总、技术负责人、首席架构师...头衔一个比一个唬人;

我也见过不少PPT架构师,PPT写的非常漂亮,各种架构规划的非常高大上,但是一问到具体实现,又变得支支吾吾起来,嘴里永远是一些大话、套话、虚话。

宰相必起于州郡,猛将必发于卒伍,在我看来,架构师一定是要技术出身。

3

架构师是程序员的发展方向之一,所以很多程序员对架构师的工作岗位和工作内容也比较关注。目前IT行业的很多架构师都是从程序员成长起来的,可以说程序员是架构师的一个重要基础。

从程序员成长到架构师大概需要经历四个阶段,分别是初级程序员、主力程序员、核心研发级程序员、架构师。每个解决都有不同的任务,也有不同的知识储备,如果能一步一步成长到架构师,对于程序员来说不仅要有较强的工作能力,还需要有较强的学习能力。

在初级程序员阶段,主要的工作是功能模块的实现,能够辅助主力程序员完成具体的功能实现,这个阶段会锻炼程序员的基础编码能力。在初级程序员阶段,主要需要学习软件开发的流程、技术实现以及软件部署和测试方面的内容。往往初级程序员阶段的成长速度是比较快的,工作能力强的初级程序员在1到2年就会成长为团队的主力程序员。

主力程序员要独立完成功能模块的设计和实现,对软件整体结构有清晰的认知,知道模块之间的逻辑关系,能完成初级研发任务,对技术边界有一定的认知。主力程序员的发展方向有两个,一个是走项目经理,再到咨询专家的路线,另一个就是走架构师,再到技术专家的路线。如果走项目经理的路线,则需要深入了解行业知识。而对于架构师方向来说,更应该了解各种技术方案的应用场景,以及相应的性能指标,尤其是技术关键点的解决方案,工作能力强的主力程序员经过2到3年的时间会成长为团队的核心研发人员。

核心开发人员的主要工作任务往往是产品的容器部分开发,这个过程能够对软件产品有深入的学习,核心研发人员往往要跟着产品线走,大部分核心研发人员未来都会成长为架构师或技术专家。

4

要这个问题,要从架构师所具备的素质谈起,然后才能有针对性的寻找方法。

架构师的素质

架构师的素质体现在技术的广度、技术的深度、业务域知识的掌握,以及辅助的文档能力、表达能力、团队领导能力。

  • 技术的广度:一个架构师至少要掌握当前软件系统必备的技能,如下图。注意是掌握而非认知;
  • 技术的深度:对于当前软件系统必备的技能,不能仅仅停留在会用,而且能够明晰其机理,可以按需进行一定的扩展。比如:清晰地知道Spring Boot自动配置的原理,当特殊的注入需求出现时,知道该如何实现;
  • 业务域知识:一个合理的架构设计一定是基于对业务了解的基础之上的。实际上,架构设计是从业务功能需求、质量属性需求(如:并发能力要求)“推导”出来的,架构师要承担业务和技术之间的桥梁;
  • 文档能力:架构师是否应该写代码有争议,但需要写文档是明确的。所以这部分的能力是必须的;
  • 表达能力:架构师需要将自己的设计传递给团队成员、组织技术问题的解决,这些事情都需要大量的交流讨论,需要非常好的表达能力才能够胜任。
  • 团队领导能力:架构师不一定要负责团队的管理,但会是技术的第一责任人,不可避免需要承担一定的团队领导任务,同时也往往会作问题攻坚临时团队的负责人,因此必须具备一定的团队领导能力

如何从程序员到架构师

从程序员到架构师的成长过程,实际上就是上述六大能力的补齐过程。

  • 提升技术广度:要有进行技术领域拓展的意识。最有效的方法是,从当前所承担的项目入手,去全面了解系统所使用的技术。这种方法的好处在于:与自己当前的工作有关联、有代码可看、有人可问,同时也会不断提升自己在团队内的被认可度(TA啥都知道…)、容易获得更多的机会(原架构师突然离职了…);
  • 加强技术深度:要有知其然也要知其所以然的意识。 在探究一项技术时,循着先认知、再动手实践、再往深研究的方法,至少保证透彻了解其内在机理。
  • 丰富业务域知识:要有重视学习业务域知识的意识。方法有二,一个是硬补。比如进入到证券交易系统的研发领域,那么就安排一些时间去学习证券相关的业务只是;另外一个方法用一句话来概括:可以换公司、但不要换行业,这样可以不断积累业务域知识,成为团队内的“业务专家”;
  • 提升文档能力:这个没有别的办法了,多琢磨多练多写多总结;
  • 增强表达能力:不要怕说话,要主动说话、主动沟通,养成说话前先在脑子里列提纲并评判提纲的条理性和逻辑性;
  • 提高团队领导力:其实架构师具备所需的领导力很简单:平等待人、客观理性、坦诚直率、注意方式。做到这几点,再加上程序员特有的“技术崇拜”心理,很容易具备所需的领导能力。

总结

5

相信很多程序员都想成为一名架构师,一个不想成为架构师的程序员他绝对不是一个好的程序员,为什么这样说呢?不管做什么得有梦想嘛。

程序员一般分为:初级、中级、高级,每个阶段都代表着不同的技术水平,每一个架构师都是从普通的程序员过来的,当然做IT这行业也会根据你的技术水平薪资待遇也会水涨船高,一般一名架构师薪资待遇25K+甚至可能高,随着很多程序员朋友通过不断学习跟努力达到架构师的要求,下面简单来说下怎么成为一名优秀的架构师。

1.技术水平

6

从程序员到架构师,要先进阶到产品经理或项目经理,更多的了解产品全貌,了解客户图痛点,下一步进阶到架构师

7

程序员是一个广义词,架构师首先也是程序员,架构师的技术栈更广、技术实力更强,解决实际问题更有经验。


底层的程序员是专注于某一项的技术开发,有C++程序员、C语言底层程序员、前端程序员、Android/IOS程序员、Go语言程序员、PHP程序员,最多的还是Java程序员。

8

其实,上面几位的都很非常完整了。

从程序员到架构师是一个全方位能力提升的一个过程。一个架构师需要具备很强的技术能力,沟通协调能力,团队管理能力等,这些都需要时间和项目的积累,唯一的途径就是不断的学习和思考。

不要着急,仰望星空,脚踏实地,你会成为优秀的架构师的。

9

程序员满大街都是!但架构师凤毛麟角!

我是一名工作七年的老程序员,也主导参与过几个互联网项目架构设计与落地,但是还不敢以架构师自居。

我理解架构师要求应对当前需求能有一个架构设计从数据存储,通信,业务交互,数据整合到数据扩展,服务扩展再到分布式微服务架构,再到服务部署各种数据集群设计,负载均衡集群设计,并且保证这种设计具有技术前瞻性,支持业务横向扩展,快速开发,对项目中的风险点能够提前预估处理,核心技术难点攻克。有丰富的分布式事务实践经验,在项目中熟练使用缓存和队列,对虚拟机实现原理理解的基础上能够进行内存调优有解决项目中各种疑难杂症的能力等等!

所以我认为很多自诩的架构师都是假的架构师!

程序员进阶

下来回到主题,如何从程序员到架构师!我一直在北京工作,七年时间从传统软件到bs再到移动互联网走过很多弯路,荒废过不少宝贵的时间。首先给大家上一张java高开的技术图谱,不说所有都得精通,但是很多领域都要求深度广度并进。

可能东西有些多看不太清楚,横屏可能好一点,架构师是在掌握了上述java技能的技术之上并结合多年项目经验能对新的项目架构的有统筹设计的高级java开发工程师。所以持续不断的完善技能永远是你前进道路上的助力!简单梳理以下知识点,重点看图:

10

程序员是一种比较耗脑力、比较辛苦的职业。在中国,年龄比较大的程序员是很尴尬的,你去投简历,人家一看三十几岁了,可能就把你往后排,看看有没有那种小年轻、能够加班的。

程序员一定要规划好自己的发展道路,到了某一天,你是继续做开发,还是做技术管理,还是做产品,还是做架构师,或者说去送外卖,跑滴滴。这些后续的发展一定要规划好,不然到时候可能会手忙脚乱。


今天聊聊如何成为架构师。

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章