在互联网圈,对于工作多年的程序员而言,日后的职业发展无非是继续专精技术、转型管理和晋升架构师三种选择。
更多的人选择成为架构师,不管是架构师的薪资还是架构师给自己带来的成就感,同样是撸代码,你与架构师不可逾越的鸿沟在哪里呢?
首先何为架构师?架构师英文architect,这个词源于建筑学。软件工程当中的架构师和建筑工程当中建筑师有许多相通之处,都是负责“产品”宏观的架构设计。
接下来直接进入正题!架构师应具备的基本职业技能及素养:
一、经验
优秀架构师共同点:都是通过不断的历练经过时间的磨练逐渐发展成为架构师的。当你拥有站在局外看代码的能力,从而理解特定软件系统背后的设计决策。从多个不同抽象层面理解软件系统,这是架构师必须掌握的核心技能。
二、技术
1、了解相关领域的技术知识
在你想要成为架构师的相关技术领域,必须具备扎实的专业知识和过人的本领。
2、超强的分析、设计能力
不管怎样,具备很强的分析和设计能力都是必杀技。另外就是能够运用设计模式方式解决各种各样的问题。
3、编码与验证性测试(POC)
熟悉该组织整个技术栈,并能使用各层的技术熟练地编码。能快速实现验证性测试。
4、架构设计的实力
能为原始需求提供架构方案。考虑周全:工具和框架的采用、安全性、性能和扩展性、依赖关系、集成、效益。熟悉软件开发生命周期(SDLC):需求、分析、设计、测试、打包、部署。
5、建模语言或工具
能使用不同的建模语言或工具,向其他架构师、开发者、项目经理等人,阐述架构。
6、架构框架
能证明架构的可行性,包括其业务、应用、数据、基础设置方面。了解TOGAF和ZACHMAN框架就更好了。
三、思维高度
如果你认为懂技术就可以成为一名架构师,那就是大错特错了,想要成为一名优秀的架构师,那你一定还要具备:
1、沟通能力
能与开发人员、测试人员、商业分析师、上级经理沟通无阻,无论在口头上和书面上。
2、培训能力
(1)能讲解该行业的市场、技术知识。
(2)能为全队提供培训课程。
3、销售能力
能参与售前工作(尤其对于软件服务业):制定技术方案、使用各种预算工具估计方案的规模和成本、与销售对象互动。
4、演讲技巧
优秀的演讲技巧,有助于以下活动:华丽的计划书和技术文档、PPT演讲、布道。
总结下来就是:
1、架构师需要理解最重要的架构驱动力是什么,他提供的设计需要考虑这些因素。
2、架构师要控制技术风险,在需要的时候积极演化架构,并且负责技术质量保证。
3、架构师需要把控全局,技术乃至团队。
综上所述你与架构师不可逾越的鸿沟就是:领导力
在一个团队里,架构师充当了技术Leader的角色,不仅要完成项目的整体设计和规划,还要带领技术团队一起解决实际问题,攻克技术难点,使得软件的设计、开发、测试、发布流程得以顺利完成。
不想成为架构师的程序员不是好程序员,其实架构师定义是模棱两可的,那些7、8年程序员也算不上架构师,大家都是在学习的过程中,在一个陌生的领域,没有人从一开始就是大神。如果你想变得越来越好,无论是写代码,与人沟通或者其它的技能,都是需要投入时间去学习的。