BAT资深架构师告诉你从程序员到架构师,你需要掌握什么能力?

1、开发者和架构师之间最大的区别是什么?

架构师和开发者一样,也经常写代码,简单的说,开发者和架构师之间最大的区别就是技术领导力。

软件架构师的角色需要理解最重要的架构驱动力是什么,他提供的设计需要考虑这些因素。架构师还要控制技术风险,在需要的时候积极演化架构,并且负责技术质量保证。从根本上讲,架构师是一个技术领导者的角色,这就是最大的区别。

作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS交流群:638302184,不管你是小白还是大牛欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 大家一起交流学习成长!希望帮助开发者少走弯路。

2、一位开发者如何才能成为一位架构师?他/她需要掌握哪些领域之外的能力?

两个字:经验。

我认识的大部分优秀软件架构师同时也是出色的软件开发者,他们都是经过时间逐渐发展成为架构师的。你需要有退后一步看代码的能力,从而理解特定软件系统背后的设计决策。退后一步才能看到“大局”,这是架构师必须掌握的核心技能。

3、你对软件架构的理解是否因为你的经历和实践而改变过?

是的。我对软件架构的理解是根据我在咨询公司工作时在各个项目中负责软件架构的经验形成的。咨询是一件好事,尤其从最近我开始从事独立咨询师这个工作之后,我可以看到很多不同的团队,不同的架构,不同的技术,以及人们不同的工作方式。世界各地的文化多样性又为工作的复杂度增加了一个维度。无论是寻找特定问题解决方案的过程,还是为各种想法去芜存菁的过程,这些经验和与我共事的人的反馈一起最终形成了我今天对软件架构的认识,这些思维也反应在了我的书中。

4、有没有什么事是架构师永远都不应该做的?

有,软件架构师永远都不应该停止编程和停止学习!

程序员从初级走向资深的过程中,会面临两个支路,一个叫技术主管,另一个则是架构师。

总结程序员到架构师之路的忠告:

1、程序就是一切。文档是紧接其后的事情。因此,把你们的代码写成本身就是文档,而且要好用。

2、测试 测试 测试。重要的事情说三遍。

3、单元测试要严格。任何一个单元测试中发现的bug都负担了开发人员成本外的双重代价。你们要知道,我宁愿给你们更多的薪水也不愿找别的QA公司来测试、让你们修改bug。但如果你的程序写的很差,那我只好把这些钱由这些人平摊,你们只能得到其中很小的一块蛋糕。

4、写出好代码要能给人类阅读,给CPU使用。绝对不能向烂代码低头。

5、阅读更多的知识,不要局限于目前的工作所需。如果你只掌握今天需要的知识而不知明天需要的,你不会有发展进步。

6、回家不时的做做饭。是的,真的饭。这会让你知按照菜谱做饭和自己创造一顿饭之间的区别。前者是在做饭前已经知道了需要什么,而后者是根据你目前有的来做 … 就这一点点不同。

7、抽象的能力,抽象思考的能力怎么强调都不为过。现实的需求纷繁复杂,如果架构师不能够把这些乱无头绪的需求抽象成一些“概念”,在概念的层次进行思考,系统根本就无法设计。

8、技术领导力,要用技术的影响力来领导人,而不是威权和职位。换句大白话来说,就是要能让技术人员服你。有了技术影响力,你在团队发出的声音才会被倾听,被尊重。

为什么大多数人不是架构师?

架构师,程序员,产品经理的区别,大概就是建筑行业里建筑师,建筑工人,甲方业主的区别。产品经理说我要建这么这么一栋楼,架构师说好吧,我来帮你看看是做成砖木结构还是框架结构,房型怎么设计,水电气怎么布局,预算多少,然后程序员上阵,按照图纸把楼建起来。运营是大楼的物业管理,负责营运大楼。

软件开发越来越成为传统行业(即便在互联网企业),一个成熟的软件团队内部自然会分化出这些角色,各展所长。但非常不同的是,建筑工人很少能自发成长为建筑师,后者都是科班出身,因为建筑学科已经高度发达,需要掌握结构力学,美学等技术,现在软件行业还没有这么高的成熟度,程序员和架构师接受的都是一样的计算机教育,所以程序员可以自学升级到架构师,走一条不同的升级打怪路线。

那么,架构师是什么人呢?

按所工作的不同软件层分,有网络架构,系统架构,数据架构,业务架构,应用架构,平台架构。

按所解决的问题领域分,有电商架构,支付架构,搜索架构,安全架构,性能架构,游戏架构,多媒体架构,等等等。

按其工作的深度来分,有集成架构,业务架构,模块架构,框架架构,中间件架构,软件架构,引擎架构,服务器架构,甚至编程语言架构。

是不是太乱了?好比在设计师的世界观里一切东西都需要设计。软件也需要精心设计,在优秀的程序员眼里,每一行代码都需要架构!都体现了架构。

为了解决问题,程序员自然需要架构,他们中的佼佼者被冠以架构师的名号,获得了一定的话语权,逐步成为一个职业分工,我想,这就是架构师的本来面目。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏养码场

一周播报|程序员的工作如何量化?用加班时间来评估,与工资直接挂钩!

一位养码人在社群里咨询:如何在家挖以太经典(Ethereum Classic,货币代号:ETC) ?

9420
来自专栏华章科技

2015年腾讯移动互联网用户白皮书

年龄的分布较去年稍有变化,12至35岁年龄段仍是移动互联网的主力用户群,占总用户的82%,其中24至35岁的青壮年段占比较去年有所提升,已基本与12至23岁的青...

10010
来自专栏养码场

一位在魔都奋斗的7年老码农有感而发:职场转变要从思维改变开始

因为作者本人的求职经历真的只能用“丰富+坎坷”来形容:二流本科院校的三流专业,首次南下深圳的经历让他坚定地走上了“技术”这条路。先后在华为外包公司、第三方支付公...

14210
来自专栏华章科技

13个大数据应用案例,告诉你最真实的大数据故事

大数据真的太神奇了,真的可以让改变一个企业的运营吗?答案是肯定的。大数据目前是当下最火热的词了,你要是不知道大数据这个概念,都不好意思在众人面前开口了。然而实际...

32020
来自专栏华章科技

19 岁成为 Facebook 产品经理,但我的故事远没那么光鲜

我是在美国出生的一代人,我的父母没上过大学,多年前从秘鲁来到美国淘金。他们开了家秘鲁风味餐馆,在很长一段时间,我们家四口人都靠餐馆维持生计,包括我的父母、我,以...

10420
来自专栏C/C++基础

C++使用引用捕获异常

catch子句捕获异常时既可以按值传递,也可以按照引用传递,甚至按照指针传递,但推荐使用引用捕获异常。考察如下程序:

8020
来自专栏学海无涯

iOS开发之使用git传代码到github

现在越来越多的公司采用了git作为版本管理工具,相对于传统的SVN,git有着明显的优势,今天写一篇入门文章,教大家如何将自己写好的iOS项目通过git传到gi...

17720
来自专栏码洞

程序员的心理疾病

由于程序员工作的性质,他们长期以来受到的所谓“黑客”式的“熏陶”,形成了一种行业性的心理疾病。患了这种病的人对于很多新入行的人,甚至一些外行人士造成了持续的伤害...

12310
来自专栏养码场

编程界,难道是 Gay 的沙漠,是 Gay 神的厌弃之地?

据一位媒体业女生说,她之所以大龄单身,乃是因为环境残酷。她的办公室里,80%都是女性,仅有2位男士,竟然全是 Gay。

12410
来自专栏养码场

说说程序猿接私活的那些事儿

现在的程序员大部分肯定不是全能。但移动互联网的火爆,肯给你私活的人,不可能只单单让你做android开发或者ios开发,基本上都是全做,甚至还需要web开发。

24810

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励