优秀的架构师需要那些专业和软技能?

这段时间时间一直在想,优秀的架构师需要那些专业和软技能?参考了网上一个资料并结合自己的切身体会和想法,分享如下,希望能对同道中的朋友有所帮助。

# 专业技能

@面向对象的OOP理解,真正的理解,而不是只知道概念

@丰富的web应用系统设计经验,有大型网站系统架构经验者优先;

@优秀的数据库设计和优化能力,熟悉Oracle、Mysql或MSSQL等主流数据库管理系统、相关技术及工具。

@深入理解数据结构及算法,熟练掌握面向对象设计的基本原则和常用的设计模式并有丰富的使用经验;

@熟悉性能优化、精通分布式、多线程等高性能架构相关技术;

@常用的消息中间件: ActiveMQ, Mosquito, RabbitMQ

@如何设计一个一个高可用性,高性能的系统,所以负载均衡相关的知识比不可少,现在比较流行的有Nginx,HAProxy

@ 对NoSQL数据库的原理和优缺点

@ 缓存是解决大型网站性能和高并发的比不可少的设计,了解当前流行缓存设计的可用框架,比如,Redis等

@ 面向服务的体系结构(SOA),微服务和分布式系统的优缺点和应该场景

@主流的开源框架,Spring, Hibernate,Spring MVC, Apache,Google, 或者Github上的一些流行开源框架

@ DSL: Domain Specific language,面向业务领域的语言,这样可以让我们和非开发人员更方便的进行思想交流和沟通

@如果没有大数据方面的经验的话,至少要了解其基本的原理,已经当前流行的框架。

@常用的数据结构和算法,比如Hash散列算法,最优化方法,贪心算法等等。

@ 有超过两种语言的使用经验,比如Java, Ruby

@ 关注良好的编程专业方法和质量,比如,TDD,BDD,绝对是加分项。


# 软技能

@优秀的学习能力,分析和解决问题的能力和强烈的进取心;
@诚恳、踏实,对技术和工作充满热情;

@具备良好的沟通能力和团队合作精神。
@良好优秀的英语能力,能自己看懂英文电子书,能在国外的StackOver,Github等平台上用英语进行提问或者发布自己想法

@如果能够参与开源项目,绝对是加分项。

@ 如果能够看懂技术英文视频,你的学习效率将会大大提高。

@对于项目风险和客户需求的游刃有余的把控能力。

@能够把复杂的概念用简单形象的语言表达出来。


你可能感兴趣的:(架构)