【51CTO独家特稿】什么是架构师最害怕程序员知道的十项技能?如何才能成为架构师?这是51CTO开发频道年终活动《架构师最怕程序员知道的十件事》的主旨,其实程序员与架构师是合作互助的伙伴,程序员内心中成为架构师的愿望是十分强烈的。本系列文章主要就是让更多的人了解什么是架构师,他们都有哪些鲜为人知的特殊技能,让我们一起来向他们学习。今天我们访问的是高级架构师王翔先生。
#T#
架构师个人简历
王翔
软件架构师,主要从事Java EE/.NET企业应用、XML、公钥基础设施的开发。专注于数据(尤其是 XML)的生产、加工、交换、提炼等过程。此外,参与了一系列有关应用密码技术和 PKI环境保护信息系统数据安全的项目。
最喜欢数学,项目间隙经常到各海滨城市徒步旅行、野外露营、出海航行、极限运动。
所著图书
《设计模式——基于C#的工程化实现及扩展》
《Google API大全——编程•开发•实例》(合著)
我们的问题主要为以下三个:
1、软件架构师必须具备哪些技能或素质?哪项技能(素质)是您认为最重要的?
1)首先是经验和技术基础,以其昏昏做不到以人昭昭。
2)创造性和知识汇总能力,两者互承
3)领导力和信心,架构师做事情要有格局
4)基于2、3语言(含母语)的沟通学习能力,不管做的是什么项目,要有国际化视野
5)市场嗅觉
6)***,好的A还有有些艺术气质(毕竟软件是给人用的,艺术正好是提供良好体验的桥梁)和冒险精神(架构师要有烹小鲜的危机感,但要做业内创新更要有冒险精神)
仅从技能角度我一般总结为9个方面:
1、架构理论和方法学
2、对象理论
3、JEE/.NET/动态,技术领域技术能力。而且作为A***保证钻自己平台基础上,对其他平台有个客观、与时俱进的了解。
4、模式
5、遗留系统互联
6、中间件
7、消息机制和协议
8、本地化和国际化
9、安全性和性能
2、要成为一个架构师,是否存在快速成长的捷径?普通程序员如何一步步向架构师的目标靠近?
存在捷径,主要是机遇问题。
对国内而言,如果一个人一直从事M(RMB)级以下项目,那么做10年或者做100个项目还是不能很快成长,如果他从事100M(RMB)、B(RMB)、10B(RMB)项目,并且在其中负责全局性的技术工作,那么一两个项目就可以快速成长,可能4、5年就能成为不错的架构设计人员(不过还要看她/他交付成果的质量)。
普通程序员成为A最重要的是他自己有信念和行动,其他的都是其次的。
哪怕是Assistant Programmer,只要有信念和行动,应该可以承担各种压力和困难,逐步走上Programmer、S. Programmer、Developer、S. Developer、Designer、S. Desinger、A、S. A、D. A、C. A。
3、假设有三名优秀的程序员,A尤其擅长沟通与团队管理;B的编程功底深厚,且对新技术能快速掌握;C在逻辑思维和抽象能力方面表现优秀。您会重点培养哪位程序员成为架构师?
C(后面依次递减是B、A。A更适合做项目经理、产品经理)
而且根据个人的经验,虽然女性程序员开发阶段显得不如男性那么快深入和入手(Programmer),但能坚持到Developer、S. Developer、 Designer、S. Desinger阶段她们的思维能力优势就显示出来。如果B是女性Desinger级别的人员,我宁愿选择培养她,因为架构师在创造性、知识汇总方面根据个人经验似乎女性更适合。