怎么才能做软件架构师?
所谓软件架构师,是软件行业中一种新兴行业,工作职责是在一个软件项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划,是主导系统全局分析设计和实施、负责软件构架和关键技术决策的人员。
软件架构师的培养
软件架构师一般都是具备计算机科学或软件工程的知识,由程序员做起,然后再慢慢发展为架构师的。在国内,很多大学目前还没有设立软件架构的学位课程,虽然IT业界对设计和架构的兴趣日渐高涨,但各学校还是无法在课程中增加相应的内容来体现这一趋势。从这个方面来说,学校教育已经远远落后于产业发展。因此,促进和发展软件架构学课程的任务将落在现在的软件架构师身上。目前的软件架构师应该帮助各大院校建立相关课程体系,一旦教育课程建立起来,知识体将不仅通过新毕业生的工作成果来得到扩展,同时也会从适合软件架构的教育研究和出版物中得到扩展[28]。
虽然大学要加强软件架构学课程的建设,但是,软件架构师的成长应该有一个实践的教育过程,并不是简单的学校的理论学习或者通过大型软件公司的认证就能成为合格的软件架构师。除了信息系统综合知识在学校学习外,软件架构师的大部分知识和经验将来自实际开发工作。根据软件架构师的任职条件,一名合格的软件架构师的成长应该经历8年以上的软件项目开发实际工作经验。一般需要经历程序员、软件设计师等阶段,然后再发展成为软件架构师。
当然,并不是每一位程序员经过8年后都可以成长为软件架构师的。一个软件工程师在充分掌握了软件架构师工作所必需的基本理论和技能后,如何得到和利用机会、如何利用所掌握的技能进行应用系统的合理架构、如何不断的抽象和总结自己的架构模式、如何深入行业成为能够胜任分析、架构为一体的精英人才,这就在于机遇、个人的努力和天赋了。
就目前来看,国内软件架构师的培养途径主要有两种方式,一种是大学(软件学院)教育方式,另一种是个人自我培养然后再进行相应的培训和认证。但是,不管哪种方式都有其不足之处。
软件学院的培养方式能够系统的学习软件架构师必需的知识体系,但是,软件架构师不是简单的通过理论学习就能够培养出来的,软件学院的学生可能缺乏必要的设计、开发经验和相关的领域知识。尽管软件学院也强调给予学生实践的机会,但毕竟这种机会是有限的。有关“三分之一的师资来自企业”的规定,在部分软件学院中也没有得到真正落实,导致传授给学生的还是一些纯理论知识。
自我培养方式的主要对象是具有一定年限的软件开发和设计人员,如Microsoft、IBM、Sun等公司的软件架构师认证对学员的基础并没有具体的要求,只要交纳规定的费用,然后进行几天的集中培训,通过考试就发给学员证书,甚至不需要考试就直接发放证书。这些开发人员在自我培养的过程中不一定能够系统的学习软件架构师的理论知识,他们只具有一定的开发和设计经验,仅仅经过几天的培训,是不太可能培养出合格的软件架构师的。而且,作为某个厂商的培训和认证,其最终目的是培育自己的市场,培养一批忠诚的用户,而不是为中国培养软件架构师。因此,也存在很大的问题和缺陷。 针对软件架构师在软件组织中的作用和其在国内的培养现状,有分析家认为有必要将软件架构师的教育、培训和认证作为发展民族软件产业的一个基本决策,制定详细的软件架构师培养方案。因此,提出以下一些关于软件架构师培养的基该方法和途径。
⑴确定软件架构师在软件组织中的职责和充当的角色,确定其相应的必须具备的知识体系,确定软件架构师的职业及其相关制度,制定软件架构师的培养目标和培养方案。
⑵坚持以大学教育为主(特别是各软件学院在这方面可以大施身手),以项目实践为辅的教育方针。大学可以聘请现有的软件架构师担任核心课程的讲师,通过学校教育,系统学习软件架构师所必需的知识体系;通过项目实践使其具有初步的软件开发和设计经验,逐步成长为一名合格的软件架构师。
⑶作位第2条的补充,聘请现有的软件架构师,个人认为适合以讲座的形式在学校开展。
⑷对国外一些大公司的软件架构师的培训和认证予以支持,但是在认证的过程中必须坚持符合中国实际情况的原则。例如,在认证考试之前对考生的知识体系进行系统的测试和评估,在通过认证后的适当时间内进行重新认证和继续教育。
⑸建立完善的软件架构师教育和认证制度,使得通过认证的人员能够在实际的软件开发中成为称职的和优秀的软件架构师。并通过此制度能够为国家培养出更多、更优秀的软件架构师,解决当前软件架构师急缺问题。
分享相关内容的知识扩展阅读:
《程序员必读之软件架构》epub下载在线阅读,求百度网盘云资源
《程序员必读之软件架构》([英] Simon Brown)电子书网盘下载免费在线阅读
资源链接:
链接:https://pan.baidu.com/s/1N4-fZnIWdniIPjHIoPqQ7g
书名:程序员必读之软件架构
作者:[英] Simon Brown
译者:邓 钢
豆瓣评分:7.0
出版社:人民邮电出版社
出版年份:2014-12
页数:228
内容简介:通常,人们对软件架构师持两种错误的看法。有人认为软件架构师是一种高高在上的职位;有人认为软件架构师完全不懂开发,只是会画条条框框的指挥家。本书将打破这些传统的认知,模糊软件开发和架构在流程中的界限,进而为软件架构正名。本书是一本强调实践、注重实效、轻量级、面向开发者的软件架构指南。
作者简介:作者简介:
Simon Brown
全球知名软件架构独立咨询师、讲师,创办了专门讨论软件架构问题的网站“编码架构”(codingthearchitecture.com)。他自称是写代码的软件架构师和明白架构的软件开发者。自2008年以来的7年时间里,Simon在全球28个国家做过有关软件架构、技术领导力及其与敏捷的平衡等主题的百余场演讲,并于2012年8月在中国举办的ArchSummit全球架构师峰会上以“郁闷的架构师”和“如何设计安全的架构”为主题发表演讲,深受与会者好评。Simon已为全球20多个国家的软件团队提供咨询和培训,他的客户既有小型技术初创企业,也不乏全球家喻户晓的品牌公司。
译者简介:
邓钢
误打误撞进入IT行业的80后程序员,爱好Web技术,对前端技术尤其偏爱。曾在盛大创新院担任前端工程师,现在是IBM上海的一名软件用户界面工程师。除了具体的技术,对软件架构、软件工程也很感兴趣,希望把自己在IBM所见所闻分享出来,为前端领域如火如荼的工程化浪潮贡献力量。
Linux互联网系统架构师,Linux嵌入式软件工程师,Oracle数据中心运维架构师,高级网络工程师工作分析
请问现在这几个行业哪个行业的工作比较稳定比较好找 工资待遇比较好 以上各个行业的起薪基本上是多少?LZ大三学生 希望在以后的学习中有侧重点。请专业人士解答 。小弟在此谢过 !!你说的这几个职业除了软件工程师以外都是 相关职业的最终目标,起码的在这个行业上摸爬滚打5年以上才有可能做到架构师这一个级别,你计划的有点远说实话。如果你想稳定的话就是 选择Oracle吧稳定收入高 但开头很难而且不好找工作,系统架构师需要从运维开始,一步步学习一点点提升,必须时时刻刻进步而且得抓住机会才可能走到架构师这一步。网络工程师更不好找工作,你自己考虑一下吧。 感觉你这个问题就像再问 钢琴家 电影明星 武术宗师 哪个更赚钱你就做哪个一样,我说多了
程序员 软件设计师 网络工程师 网络管理员 还有 架构师 系统分析师 主要是做什么的 区别是什么
大家说说上面的区别是什么??还有,哪个高级点,哪个工资高??大家多给点建议和意见 。谢谢。程序员:做编程的底层开发工作,写代码,不停的写代码
软件设计师:其实这个概念不太清楚,跟架构师类似,就是要分析设计这个软件的整体概念,就像盖房子要先画图纸,然后分给不同部门的人去建造,其实在现在,一般叫项目经理,或叫开发经理
网络工程师:设计整体的网络的人,跟软件设计师差不多,不过做的是网络工程。
网络管理员:与程序员类似,重复性的技术工种。
系统分析师:这个也是个比较模糊的,系统分析类似医生的,可以通过自己的经验和从业经验,对某各软件或某项工程进行分析,优化,从而帮助架构师或项目经理用最短的时间做出最满意的东西来。
其实你分的这几个,都是计算机里的职位,你重新分一下类好了
软件开发里面分为:程序员,软件工程师,软件架构师和系统分析师
网络工程里面分为:网络管理员,网络工程师,网络架构师和系统分析师
如果是工资高,级别高的,就是架构和分析了,但是。。。。强调一下,这两个职位不是有技术就可以的,需要大量的经验,一般都是从程序员开始做起的,才有资格。
楼主如果想进这个行业,建议先从头开始吧,冰冻三尺非一日之寒,可以把这个作为目标,一点一点努力才行哦
关于这些还有不明白的,可以加群85134514