从程序员到架构师,你需要掌握什么能力?
2018-01-12 10:00
691 查看
1、开发者和架构师之间最大的区别是什么?
架构师和开发者一样,也经常写代码,简单的说,开发者和架构师之间最大的区别就是技术领导力。
软件架构师的角色需要理解最重要的架构驱动力是什么,他提供的设计需要考虑这些因素。架构师还要控制技术风险,在需要的时候积极演化架构,并且负责技术质量保证。从根本上讲,架构师是一个技术领导者的角色,这就是最大的区别。
2、一位开发者如何才能成为一位架构师?他/她需要掌握哪些领域之外的能力?
两个字:经验。
我认识的大部分优秀软件架构师同时也是出色的软件开发者,他们都是经过时间逐渐发展成为架构师的。你需要有退后一步看代码的能力,从而理解特定软件系统背后的设计决策。退后一步才能看到“大局”,这是架构师必须掌握的核心技能。
3、你对软件架构的理解是否因为你的经历和实践而改变过?
是的。我对软件架构的理解是根据我在咨询公司工作时在各个项目中负责软件架构的经验形成的。咨询是一件好事,尤其从最近我开始从事独立咨询师这个工作之后,我可以看到很多不同的团队,不同的架构,不同的技术,以及人们不同的工作方式。世界各地的文化多样性又为工作的复杂度增加了一个维度。无论是寻找特定问题解决方案的过程,还是为各种想法去芜存菁的过程,这些经验和与我共事的人的反馈一起最终形成了我今天对软件架构的认识,这些思维也反应在了我的书中。
4、有没有什么事是架构师永远都不应该做的?
有,软件架构师永远都不应该停止编程和停止学习!
程序员从初级走向资深的过程中,会面临两个支路,一个叫技术主管,另一个则是架构师。
总结程序员到架构师之路的忠告:
1、程序就是一切。文档是紧接其后的事情。因此,把你们的代码写成本身就是文档,而且要好用。
2、测试 测试 测试。
3、单元测试要严格。任何一个单元测试中发现的bug都负担了开发人员成本外的双重代价。你们要知道,我宁愿给你们更多的薪水也不愿找别的QA公司来测试、让你们修改bug。但如果你的程序写的很差,那我只好把这些钱由这些人平摊,你们只能得到其中很小的一块蛋糕。
4、写出好代码要能给人类阅读,给CPU使用。绝对不能向烂代码低头。
5、阅读更多的知识,不要局限于目前的工作所需。如果你只掌握今天需要的知识而不知明天需要的,你不会有发展进步。
6、回家不时的做做饭。是的,真的饭。这会让你知按照菜谱做饭和自己创造一顿饭之间的区别。前者是在做饭前已经知道了需要什么,而后者是根据你目前有的来做 … 就这一点点不同。
7、抽象的能力,抽象思考的能力怎么强调都不为过。现实的需求纷繁复杂,如果架构师不能够把这些乱无头绪的需求抽象成一些“概念”,在概念的层次进行思考,系统根本就无法设计。
8、技术领导力,要用技术的影响力来领导人,而不是威权和职位。换句大白话来说,就是要能让技术人员服你。有了技术影响力,你在团队发出的声音才会被倾听,被尊重。
另外还有一点可以通过自身的学习来获取一大进步。
这次我把所有干货重新梳理精简,分享给所有的程序员朋友下载!
相关文章推荐
- 从程序员到架构师,你需要掌握什么能力?
- java程序员进化为架构师需要掌握的知识
- 程序员需要掌握的最终技术是什么?
- java程序员需要掌握些什么知识
- 浅谈程序员进阶到架构师所需要具备的能力
- 程序员需要掌握的最终技术是什么? “终极技术”:应对困境的方法和信念
- 【架构师之路 三】需要掌握的技能点---系统架构能力
- 阿里架构师:程序员必须掌握的几项核心技术能力
- 程序员需要掌握的最终技术是什么?
- Windows程序员需要学什么
- 工作三年的Java程序员需要掌握哪些知识?
- 【Some】【架构】架构师需要做什么?
- php web开发的程序员需要掌握的linux命令
- 架构师应该掌握什么技术?
- 程序员所应该掌握的能力
- .NET WEB程序员需要掌握的技能
- 决胜未来的产品经理,需要掌握这4种关键能力
- 未来五年程序员需要掌握的10项技能 zz
- C/C++程序员需要掌握的开源项目