教你如何快速成长为架构师

架构师是公司的“金领”,很少需要考虑生存的问题,从而有更多的精力思考关键技术,形成“强者愈强”的良性循环。当然,冰冻三尺非一日之寒,成为一名合格的架构师是一个漫长的积累过程。对于大部分的软件开发人员来说,架构师都是一个令人向往的角色。那么程序员们要想如何去成为一名合格的架构师,我们还要先从一名合格的架构师的身上去了解,了解架构师们的一些成长经历,了解他们是如何加强自己的技能修养,了解他们是怎样的一个自我培养的过程等等。下面小编就以上问题采访了新浪云计算架构师丛磊老师。

对于任何一个软件开发人员来说,架构师都是一个令人向往的角色。那么从程序员与架构师有没有比较明显的区别呢?其实架构师和程序员的界限并不是很大,比如现在仍然在每天写代码。其实成长首先来自于自身的学习,而阅读成熟项目的代码会使人受益匪浅,其次就是来自于所从事领域的经验,要了解分布式系统的特点,在做项目时,要能够关注性能、扩展性、可靠性、可用性等指标。


架构师其实就是一个漫长的积累过程,从准备期到动荡期我们都是不停的探索,学习。大部分的架构师的年龄都是在35岁左右,这个阶段就是程序员的黄金期。那么我们如何以一个架构师的标准来加强自己的能力呢?下面我们来看看丛磊老师的一些建议。

如何去加强技能修养?

程序员要成为一名架构师发展,需要进一步加强技能的修养,从磊认为,对于互联网公司来言,最重要的技能是对网络和分布式系统的理解,网络上面的书籍很多,比较麻烦的是分布式系统,需要结合很多实际的paper和方案来理解。除了分布式外,另外还得掌握高性能及、JVM。性能调优、Spring,MyBatis,Netty源码分析等技术。因为同一个知识,在不同的项目经验后,绝对不是不同的理解。

那么你该如何去做呢?我觉得可以从以下几个步骤开始:

1: 扎实的JAVA 基础,Think in java上介绍的内容都能理解,做到这一步恭喜成为了程序员。

2:熟练使用主流框架,如:mybatis,spring 等。

3:研究过至少一种以web框架的源码,如spring mvc ,struts 等。

4:架构过或者参与过高并发系统设计,知道如何应对突发情况。

5:对自己所处的业务能够根据自己的知识维度,提出优化建议或者预测其风险点。

其实能否成为架构师跟机遇有很大关系,比如一个程序员,以上都做到了,但是公司并没有给他这个机会去做,一个真正架构的机会。因为之前的架构师不离职他就没有机会,这就是现实!

如何去自我培养?

当然要成为一名架构师仅仅通过理论学习是不行的,在丛磊的介绍中了解到,其实他理想中的架构师要求很高,不仅有丰富的编码经验,而且还要熟悉硬件性能优化、内核调试、网络故障排查、系统安全、分布式系统设,还有了解国内外技术的新趋势和特点,最重要的是,还要善于与人沟通,敢于排除不同意见,敢于承担责任,了解团队内工程师的特点,善于将他们组成一个整体。他自己也在朝着这个目标去努力。

如何在团队中开展工作?

很多正在发展为架构师的程序员也很想了解架构师在团队中时如何进行设计工作的,新浪架构师丛磊也根椐他的工作做了介绍。在他们团队中,其实很难分离出一个单纯的架构师的角色,换句话说,很难界定架构师只需要做哪些。架构师更多的是以一个技术负责人的身份和工程师一起做好产品,这里面包括,项目开展前的方案设计,方案完成后的评审,方案确定后的开发,以及之后的调试、优化,故障排查。

当然了,良好的驾驭管理开发团队的能力,良好的人格修养,能够让架构师在开发项目中游刃有余,不会出现意料之外的干扰,更能从内散发出人格魅力。

技术人的归途

走技术这条路,归途是什么?是否转型又该如何抉择呢?

至少有好几条路线是可以走的,比如:深入技术、转型做产品、转型做管理等,需要根据自己的特长和性格来选择,做自己喜欢的事情。

中国Java程序员的数量已经超过了100万。而且,随着IT培训业的持续发展和大量的应届毕业生进入社会,Java程序员面临的竞争压力越来越大。那么,作为一名Java程序员,怎样努力才能快速成长为一名高级的程序员或者架构师,或者说一名优秀的高级工程师或架构师应该有怎样的技术知识体系,这不仅是一个刚刚踏入职场的初级程序员,也是工作三五年之后开始迷茫的老程序员,都必须要面对和想明白的问题。

“我自己是一名从事了5年前端的老程序员,辞职目前在做讲师,整理了一份现在把架构师必须具备的一些技术总结出来一套思维导图和录制了一些相关视频,分享给大家,供大家参考。

需要相关资料可以加群:810589193,点击链接加入群聊【Java架构学习交流群】:https://jq.qq.com/?_wv=1027&k=5deQUBl,获取

1. 架构师基础

4.1. JVM性能调优

4.2. Java程序性能优化

4.3. Tomcat

4.4. 并发编程进阶

4.5. Mysql

4.6. 高性能Netty框架

4.7. Linux基础与进阶




2. 开源框架

3.1. spring5概述

3.2. Spring5 Framework体系结构

3.3. Spring5环境搭建

3.4. IOC源码解析

3.5. AOP源码解析

3.6. Spring MVC

3.7. Mybatis




3. 高性能架构

1.1. 分布式架构思维

1.2. Zookeeper分布式环境指挥官

1.3. Nginx高并发分流进阶实战

1.4. ActiveMq消息中间件

1.5. RabbitMq消息中间件

1.6. Kafka百万级吞实战

1.7. Memcached进阶实战

1.8. Redis高性能缓存数据库

1.9. MongoDB进阶实战

1.10. 高性能缓存开发实战

1.11. Mysql高性能存储实战

1.12. FastDFS分布式文件存储实战

1.13. 高并发场景分布式解决方案实战






4. 微服务架构

2.1. 服务的前世今生

2.2. 基于分布式思想下的RPC解决方案

2.3. Dubbo应用及源码解读

2.4. SpringBoot

2.5. SpringCloud应用及源码解读

2.6. Docker虚拟化技术




5. 团队协作开发

5.1. Git

5.2. Maven

5.3. Jenkins

5.4. Sonar




6. B2C商城项目

6.1. 系统设计

6.2. 用户管理子系统

6.3. 商品管理子系统

6.4. 搜索子系统

6.5. 订单子系统

6.6. 支付系统

6.7. 分布式调度系统

6.8. 后台系统


高清思维导图及面试答案和相关视频资料获取方式可以加小编的QQ群:810589193,获取!


猜你喜欢

转载自blog.51cto.com/14214335/2364962