如果你对项目管理、系统架构有兴趣,请加微信订阅号“softjg”,加入这个PM、架构师的大家庭

软件架构师一般都是具备计算机科学或软件工程的知识,由程序员做起,然后再慢慢发展为架构师的。

软件架构师的培养

软件架构师一般都是具备计算机科学或软件工程的知识,由程序员做起,然后再慢慢发展为架构师的。在国内,很多大学目前还没有设立软件架构的学位课程,虽然IT业界对设计和架构的兴趣日渐高涨,但各学校还无法在课程中增加相应的内容来体现这一趋势。从这个方面来说,学校教育已经远远落后于产业发展。因此,促进和发展软件架构学课程的任务将落在现在的软件架构师身上。目前的软件架构师应该帮助各大院校建立相关课程体系,一旦教育课程建立起来,知识体将不仅通过新毕业生的工作成果来得到扩展,同时也会从适合软件架构的教育研究和出版物中得到扩展。

虽然大学要加强软件架构学课程的建设,但是,软件架构师的成长应该有一个实践的教育过程,并不是简单的学校的理论学习或者通过大型软件公司的认证就能成为合格的软件架构师。除了信息系统综合知识在学校学习外,软件架构师的大部分知识和经验将来自实际开发工作。根据软件架构师的任职条件,一名合格的软件架构师的成长应该经历8年以上的软件项目开发实际工作经验。一般需要经历程序员、软件设计师等阶段,然后再发展成为软件架构师。

当然,并不是每一位程序员经过8年后都可以成长为软件架构师的。一个软件工程师在充分掌握了软件架构师工作所必需的基本理论和技能后,如何得到和利用机会、如何利用所掌握的技能进行应用系统的合理架构、如何不断的抽象和总结自己的架构模式、如何深入行业成为能够胜任分析、架构为一体的精英人才,这就在于机遇、个人的努力和天赋了。

就目前来看,国内软件架构师的培养途径主要有两种方式,一种是大学(软件学院)教育方式,另一种是个人自我培养然后再进行相应的培训和认证。但是,不管哪种方式都有其不足之处。

软件学院的培养方式能够系统的学习软件架构师必需的知识体系,但是,软件架构师不是简单的通过理论学习就能够培养出来的,软件学院的学生可能缺乏必要的设计、开发经验和相关的领域知识。尽管软件学院也强调给予学生实践的机会,但毕竟这种机会是有限的。有关“三分之一的师资来自企业”的规定,在部分软件学院中也没有得到真正落实,导致传授给学生的还是一些纯理论知识。

自我培养方式的主要对象是具有一定年限的软件开发和设计人员,如Microsoft、IBM、Sun等公司的软件架构师认证对学员的基础并没有具体的要求,只要交纳规定的费用,然后进行几天的集中培训,通过考试就发给学员证书,甚至不需要考试就直接发放证书。这些开发人员在自我培养的过程中不一定能够系统的学习软件架构师的理论知识,他们只具有一定的开发和设计经验,仅仅经过几天的培训,是不太可能培养出合格的软件架构师的。而且,作为某个厂商的培训和认证,其最终目的是培育自己的市场,培养一批忠诚的用户,而不是为中国培养软件架构师。因此,也存在很大的问题和缺陷。

软件架构师的认证

在国外,软件架构师的培养与认证具有严格的过程,明确规定了教育目标、认证的要求和学习课程等方面的内容。下面,介绍三个组织的软件架构师认证情况。

(1)UC Irvine。在UC Irvine的软件架构师认证计划[27]中,为了拿到软件架构师C级认证,学员必须完成11个单元的必修课程和至少4个单元的选修课程。这些课程包括:
·必修课程:软件系统建模和分析概论(2个单元)、系统分析基础(3个单元)、用户需求的分析和文档化(3个单元)、软件架构项目(3个单元)。
·选修课程:信息系统项目管理(2个单元)、系统性能建模(2.5个单元)、管理业务改进项目(2.5个单元)。

UC Irvine的软件架构师认证要求学员具有业务系统建模,决定用户需求,评价业务过程的能力,掌握项目管理技术,能设计完善的、具有最佳可适应性和可扩展性的架构。该认证程序以一门实践课程结束,在实践课程中,学员从头开始,设计一个大规模软件解决方案的架构。

(2)CMU/SEI。SEI在软件架构师方面的认证[42]包括三个职位,分别是软件架构师、ATAM评估师和ATAM主任评估师。这些认证都需要学习2年的课程。其中软件架构师需要学习的课程有软件架构:原理与实践、软件架构文档化、)软件架构设计与分析和软件产品线。

(3)iCMG。iCMG对软件架构师的认证强调7个层次的课程学习,如图2所示[30]。在该认证体系中,上面的3个层次由其合作伙伴完成,iCMG只负责下面4个层次的知识体系。

目前,软件架构师的认证在国内基本上是空白,既没有专业的培训机构,也没有专门的认证指南和权威的教育认证机构。而软件架构师作为软件的总设计师,其水平和能力直接决定了软件系统的总体性能。根据教育部2004年9月8日关于紧缺人才的报告,2005年国内软件架构和系统分析人才缺口在6万人以上,是目前软件开发中急需的高层次技术人才。人事部和信息产业部[2003]39号文件决定在全国计算机技术与软件专业技术资格(水平)考试中设立系统架构设计师级别的认证考试,试图解决软件架构师认证问题。但是,由于各种原因,该考试未能如期举行,一拖再拖。其实,这些措施也只是暂时起到一个过渡的作用,只有建立完善的软件架构师教育培训方案和权威的教育认证机构,才是当前急需解决的问题。

寻求合适的培养方法

针对软件架构师在软件组织中的作用和其在国内的培养现状,作者认为有必要将软件架构师的教育、培训和认证作为发展民族软件产业的一个基本决策,制定详细的软件架构师培养方案。因此,提出以下一些关于软件架构师培养的基本方法和途径。

(1)确定软件架构师在软件组织中的职责和充当的角色,确定其相应的必须具备的知识体系,确定软件架构师的职业及其相关制度,制定软件架构师的培养目标和培养方案。

(2)坚持以大学教育为主(特别是各软件学院在这方面可以大施身手),以项目实践为辅的教育方针。大学可以聘请现有的软件架构师担任核心课程的讲师,通过学校教育,系统学习软件架构师所必需的知识体系;通过项目实践使其具有初步的软件开发和设计经验,逐步成长为一名合格的软件架构师。

(3)对国外一些大公司的软件架构师的培训和认证予以支持,但是在认证的过程中必须坚持符合我国实际情况的原则。例如,在认证考试之前对考生的知识体系进行系统的测试和评估,在通过认证后的适当时间内进行重新认证和继续教育。

(4)建立完善的软件架构师教育和认证制度,使得通过认证的人员能够在实际的软件开发中成为称职的和优秀的软件架构师。并通过此制度能够为国家培养出更多、更优秀的软件架构师,解决当前软件架构师急缺问题。

如果你对项目管理、系统架构有兴趣,请加微信订阅号“softjg”,加入这个PM、架构师的大家庭

专家解析:程序员到软件架构师培训与认证之路相关推荐

  1. advanced installer更换程序id_好程序员web前端培训分享kbone高级-事件系统

    好程序员web前端培训分享kbone高级-事件系统:1.用法,对于多页面的应用,在 Web 端可以直接通过 a 标签或者 location 对象进行跳转,但是在小程序中则行不通:同时 Web 端的页面 ...

  2. Java程序员技术培训需要培训哪些?

    随着java技术行业的不断发展,越来越多的人想要学习java技术,那么想要成为一名优秀的java工程师,需要学习的技术知识是非常多的,下面小编就为大家详细的介绍一下Java程序员技术培训需要培训哪些? ...

  3. props写法_好程序员web前端培训React中事件的写法总结

    好程序员web前端培训React中事件的写法总结,React的事件处理和DOM元素很相似,但是语法上是有不同的: 1.react事件采用驼峰命名法,而不是纯小写. 驼峰命名法(camelCase):命 ...

  4. 解析程序员的几个成长阶段

    软件开发这个行业往往是供不应求,这跟开发人员的素质有很大的关系,在这个浮躁的圈子里,能在一家公司呆上三年以上的程序员,通常就会把持领导岗 位,结果做出来的东西大多非常糟糕.这也说明了,程序员的能力不能 ...

  5. 正则至少一个数字_好程序员web前端培训分享JavaScript学习笔记之正则

    好程序员web前端培训分享JavaScript学习笔记之正则,正则表达式,又名 "规则表达式" 由我们自己来书写 "规则",专门用来检测 字符串 是否符合 &q ...

  6. react组件卸载调用的方法_好程序员web前端培训分享React学习笔记(三)

    好程序员web前端培训分享React学习笔记(三),组件的生命周期 React中组件也有生命周期,也就是说也有很多钩子函数供我们使用, 组件的生命周期,我们会分为四个阶段,初始化.运行中.销毁.错误处 ...

  7. 商业方向的大数据专业_好程序员大数据培训分享大数据就业方向有哪些

    好程序员大数据培训分享大数据就业方向有哪些?看到了大数据的就业前景及就业薪资,相信很多人都对大数据技术跃跃欲试,想要学习大数据技术.小编认为在学习大数据之前,你还需要了解一下大数据的就业方向有哪些?毕 ...

  8. 好程序员大数据培训分享大数据概述

    好程序员大数据培训分享大数据概述一,大数据时代的悄然来临,让信息技术的发展发生了巨大变化,并深刻影响着社会生产和人民生活的方方面面.每个国家都高度重视大数据技术的研究和产业发展,纷纷把大数据上升为国家 ...

  9. 专家:程序员不配叫工程师

    <大西洋月刊>撰稿人伊安·博格斯特(Ian Bogost)发表文章称,一些人把程序员称为工程师,这破坏了"工程"的一个悠久的传统--为公众利益而设计和建造基础设施.以下 ...

  10. 好程序员web前端培训分享做H5页面需要学什么

    好程序员web前端培训分享做H5页面需要学什么,很多人问过我这个问题,而问这个问题的人基本上都是刚听说过h5,处在懵懂的阶段,他们往往会被一些网上炫酷页面所吸引,开始的目的也很简单,能通过自己的努力做 ...

最新文章

  1. oracle触发器初始化,oracle – 触发器无法初始化变量
  2. Js 校验时间、比较时间 和转换时间格式
  3. django oracle clob,记一次clob字段损坏导致的01555错误
  4. POJ 2455Secret Milking Machine(二分+网络流之最大流)
  5. 招募 | 清华大学计算机系副教授黄民烈招募NLP方向博士后
  6. boost::sort模块实现spreadsort wstring 排序示例
  7. map容器实现一对多
  8. dropdownlist ajax联动,asp.net省市三级联动的DropDownList+Ajax的三种框架(aspnet/Jquery/ExtJs)示例...
  9. iPhone 13系列将搭载A15芯片:相比前代性能提升20%
  10. iOS:KVO/KVC 的概述与使用
  11. PostGis路径分析
  12. AMD OpenCL大学课程(13) OpenCL扩展
  13. Python之网络数据采集入门常用模块初识
  14. 关于徐晓东,传统武术,以及太极拳
  15. 在上海创业的日子之寻找办公室
  16. 基于JAVA城市湖泊信息管理系统计算机毕业设计源码+系统+lw文档+部署
  17. 3D建模你不知道的电影角色秘密
  18. 简介响应状态码1xx、2xx、5xx
  19. Tuxera Disk Manager是什么软件,Tuxera Disk Manager怎么用
  20. MySql项目查询优化经验总结

热门文章

  1. kafka消息堆积及分区不均匀的解决方案
  2. 博客小编风明姗姗来迟
  3. Pug教程-从入门到入坟
  4. 全球与中国高效无气油漆喷涂机市场深度研究分析报告
  5. 网络信息安全工程师的职业优势分析
  6. Linux服务器查看Ip地址
  7. adb devices后出现设备offline的解决方法
  8. Aptana工具介绍
  9. 第三方支付风险控制研究 ——以支付宝为例
  10. 小米摄像头上传云服务器,杜老师说群晖:小米云摄像头无法对接群晖存储解决方法...