如何成为软件架构师
【原创回答】我本人是一名软件架构师,这个问题非常大,不太好回答。
我总结一下,软件架构师的能力大概分为三个方面:1.技术,这个应该没悬念,如果没有过硬的开发技术,就不要期望做架构师了;设计模式,系统模式,架构模型,系统理论,甚至编程语言,算法,操作系统,网络,数据库,都需要有扎实的掌握。
2.是业务知识,也即领域知识。
软件架构师实际上是把业务需求落实成开发蓝图的总设计师,如果你对业务一窍不通,空有一身技术也只能望业务兴叹。
3.就是沟通表达的能力,架构师需要推进自己的架构设计理念给开发团队,所以也需要这方面的能力,当然最重要的还是前两部分的能力。
互联网软件架构师是前端还是端的
达到架构师级别的程序员,通常不会区分前端后端的技术分类,甚至淡化编程语言本身的东西, 根据业务不同,中小型业务架构师可能还会比较关注代码层面的东西( 怎样架构自己的系统,能够应对业务发展需求添加更多功能又或者是方便更多码农们快速使用进行业务开发而且能够在较大程度上面保证软件开发质量 ),像大型/超大型业务的架构师通常是不去关注详细代码的,需要你对计算机通信7层协议都非常清楚,而且在应用层面上面,能够在合适的场景选择合适的IT技术方案快速作出较合理的选择。
JAVA高级软件架构师(ESB)是做什么的
展开全部 系统架构师是一个既需要掌控整体又需要洞悉局部瓶颈并依据具体的业务场景给出解决方案的团队领导型人物。
一个架构师得需要足够的想像力,能把各种目标需求进行不同维度的扩展,为目标客户提供更为全面的需求清单。
架构师在软件开发的整个过程中起着很重要的作用。
...
成为一个架构师,对于编程语言是应该学多还是学精,又
编程语音相当于我们小学学的语文课本里的汉字,初中就学习英语,如果你要用中文写一篇文章,首先你要会汉字,会用句子;如果你写英文的文章也是一样的。
网页基础的web语言:html、div+css、javascript、ajax、等等,web编程语言:asp、asp.net、php、jsp;只有掌握了基本的编程语言、基础打好了,在学习php、或jsp、学会了你就可以做出一个完整的网站管理系统。
基本的语言是要会的,不用精通、至少一般的网页代码看得懂、自己会写divcss网页。
最简单的你打开一个网页 在空白处右键点击查看网页源代码,就可以看到html、div+css、js代码、其他的代码在服务器端是看不到的。
软件编程语言:C、vb、等; .....如果你想自己做一个网页,就必须会web编程语言里面的其中一个,才能做出自己的网页。
软件开发就是利用c语言等语言根据客户或自己的要求进编写程序代码。
例如学会jsp语言可以开发安卓手机客户端、软件、游戏等;如果是做网站就是程序开发。
“软件工程师”和“程序员”究竟有什么区别
展开全部程序员主要是指写代码的人。
工程师着重在于设计。
程序员和软件工程师的区别是:软件工程师不但要有编写程序代码的能力而且更重要的是要懂得如何去开发一个软件,怎样去学习实际的UI的观念。
就是工厂里面技术员和工程师的区别。
技术员是熟练工人,工程师是设计者。
程序员(英文Programmer)是从事程序开发、维护的专业人员。
一般将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚,特别是在中国。
软件从业人员分为初级程序员、高级程序员、系统分析员,系统架构师,测试工程师五大类。
软件工程师英文是Software Engineer,是从事软件职业的人员的一种职业能力的认证,通过它说明具备了工程师的资格。
软件工程师是从事软件开发相关工作的人员的统称。
它是一个广义的概念,包括软件设计人员、软件架构人员、软件工程管理人员、程序员等一系列岗位,工作内容都与软件开发生产相关。
软件工程师的技术要求是比较全面的,除了最基础的编程语言(C语言/C++/JAVA等)、数据库技术(SQL/ORACLE/DB2等)等,还有诸多如JAVASCRIPT、AJAX、HIBERNATE、SPRING等前沿技术。
此外,关于网络工程和软件测试的其他技术也要有所涉猎。
...
请问“软件工程师”与“系统架构师”还有“项目经理”这三个职位...
展开全部 项目的三种典型角色。
项目经理:负责项目的目标、计划和实施的组织与监控;负责项目利益相关人沟通协调;负责项目组的人员管理,包括分工、培训、辅导与评价激励等等。
要求:沟通能力;制定计划;计划监控能力;人员管理能力。
系统架构师:负责与项目利益相关人,特别是系统客户和用户,交流确定系统需求和业务场景;负责系统需求分析和建模;负责系统架构设计;负责协调软件、硬件等各个子系统或领域的架构师完成相应子系统或领域的架构设计;负责指导、培训开发人员完成系统的开发和测试。
对于一个软件系统来说,系统架构师通常就是软件架构师。
要求:客户沟通与管理;沟通能力;需求分析与建模;领域知识;架构设计;等等。
软件工程师:负责相应部分软件的开发。
要求:掌握特定语言的编程技能;测试技术。
以上只是一种典型的划分。
实际上,每个公司和项目会根据自身特点而有变化。
这些角色有时候是兼职的,如系统架构师经常兼项目经理。
...
为什么中国的程序员总被称为码农?
展开全部 实际上IT行业在中国并不是特别差的行业,而程序员的工资也并不低,但为什么中国的程序员总被称作码农或者说是苦逼的程序员?中国的程序员生活和欧美的有什么不一样?之前,研发频道曾发过《东方程序员怎么看西方程序员》和《西方同行眼中的东方程序员》这两篇文章。
来自世界各地的程序员们各抒己见。
或许,从上面两篇文章中也多少能得出“”下面是来自知乎网上各位大牛的看法。
让我们来一起看下!一位叫吴涛的程序员的回答:编程活动和机械电子一样可以视为一种工艺(craftsmanship),从事此类工艺活动的人可以叫做工匠或者工程师。
经历过工业革命的欧美国家,有深厚的工程根底,从机械到电子再到软件,都是国家产业的支柱,滋养着社会中坚力量的中产阶级。
工程师的社会地位普遍比较高,他们有工艺的传承,有文化圈,有产业的历史。
而国内目前的软件工业和制造业非常相似,以来料加工式的低水平重复劳动为主。
就好像农民仰赖着老天提供种子、土壤、阳光和水,中国程序员仰赖着洋人提供设备、技术和理念,从微处理器、操作系统、编程语言、编译器、IDE、编程框架到应用程序,除了做晶圆的沙子是本地产的,几乎没有什么属于自己,每天的工作内容主要就是把别人已有的东西按照自己的——甚至不是自己的——需求装配一下,没有什么创造性,也很少有业界的技术积累和传承出现,即便有也流传不开,毕竟程序员文化水平普遍不高——「有知识,没文化」,就是说这样的状况。
记得劣质盗版VCD满天飞的时代,有个程序员做出一款丑陋但是解码容错能力很好的播放器,贴合国情,一炮成名,结果好容易写本书,没有几个句子能写通顺的。
这种技术书籍的拙劣状况一直保持到现在,而且拙劣的方式更加多样化了。
没有技术传承,没有文化圈,不乏有人上大学之前对编程一窍不通,学计算机只是因为计算机「热门」而已。
如同包办的婚姻,没有一丝爱情,最后以编程为业,只是因为也不会做别的什么了。
另一方面,国内程序员不论薪水如何,的确很苦。
许多人长期被迫加班,最后甚至会成为一种自愿的习惯。
可生产率和产品质量并未因此而提高,就像千百年来用惯锄头和镰刀的农夫,很少有人会想要去学习、改进自己使用的工具和习惯,甚至对于新兴的思潮和方法抱有非理性的抵触情绪。
生活如此悲惨,却又如此不思进取,和农民的问题很相似。
再加上,就好像城里人眼中的乡下人一样,程序员们木讷、邋遢、缺乏情调、土。
可偏偏又自负而且互相看不起。
总而言之,在中国做一个程序员,很少有什么事情能让人觉得自己从事的工作很体面。
那么,在整个社会以自嘲为风尚、许多行业都喜欢好勇斗狠地自轻自贱的状况中,使劲贬低自己的职业,自嘲和群吵时,就不会有什么心理包袱。
不过,就好像黑人可以自称或者互称「黑鬼」,但是白人如果敢讲立刻会惹祸一样,喜欢以此自称的程序员并不见得能容忍其他人这样称呼自己。
最后,英语有类似的说法,将带有隔断的办公室叫做cube farm,常见于传统的软件公司。
以讽刺(但不限于)软件公司日常生活为主题的漫画Dilbert就有不少格子办公室里的场景。
不过cube farm说的并不是程序员们像农民,而是说他们像地里的庄稼或者果树,产出成果,等待收割。
毕竟,欧美发达国家的农民生活往往比程序员更好。
高收入,农机劳作,大片的私有土地,宁静的田园生活。
农民的生活在那里,如果不是令人向往,至少也并无贬义。
补充:本版同文所说的code monkey在英语中的语用,与「码农」在中文里的用法并不一样。
code monkey是指以计算机程序员或者那些以编码为生的人。
这个术语可能包含轻微的贬义,这意味着开发者可能编写代码,但不能执行复杂点的任务,比如:构建软件结构、分析和设计,一般指初级程序员。
如果一名code monkey正在努力增加知识和提升职业技能,那么会有另一个等级名词赋予他。
其实code monkey这个术语在层次划分上还是有点困难的,因为像那些真正熟练的开发人员或程序员他们仍然在做编码工作。
或许像这样划分会好一点:coder:编码员programmer:程序员software engineer:软件工程师software analyst:软件分析师software architect:软件架构师或许还可以在前面加“初级”、“中级”、“高级”这几个前缀。
这些都反映了一定的等级、技能水平和薪资。
请注意:它只能在小范围确定的某种层次结构,例如在一个公司、甚至一个部门。
一个在A公司工作的“程序员”可能比B公司的中级架构师所要求的技能更多。
下面是关注前端技术的邓陈华同学的回答:首先, 问题的题目”“是有一定的可辩论性的,因为我所了解的事实是,大多时候是“中国的程序员自称为码农”,很少有不同行的人称呼程序员为“码农”。
当然,可能和我所处环境有关系。
认可涛吴所说的“自称码农的程序员并不见得能容忍其他人这样称呼自己”,因为这就像他所举的例子,黑人允许自称,但不允许白人称呼,同样的词在熟人说来是亲切、是自嘲、甚至可以是自讽,但在外人说来,那不仅是不尊重,还有可能是侮辱。
其次,身处互联网行业,程序员工作辛苦...
怎样成为年薪50w的Java大牛
程序员主要是指写代码的人。
工程师着重在于设计。
程序员和软件工程师的区别是:软件工程师不但要有编写程序代码的能力而且更重要的是要懂得如何去开发一个软件,怎样去学习实际的UI的观念。
就是工厂里面技术员和工程师的区别。
技术员是熟练工人,工程师是设计者。
程序员(英文Programmer)是从事程序开发、维护的专业人员。
一般将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚,特别是在中国。
软件从业人员分为初级程序员、高级程序员、系统分析员,系统架构师,测试工程师五大类。
软件工程师英文是Software Engineer,是从事软件职业的人员的一种职业能力的认证,通过它说明具备了工程师的资格。
软件工程师是从事软件开发相关工作的人员的统称。
它是一个广义的概念,包括软件设计人员、软件架构人员、软件工程管理人员、程序员等一系列岗位,工作内容都与软件开发生产相关。
软件工程师的技术要求是比较全面的,除了最基础的编程语言(C语言/C++/JAVA等)、数据库技术(SQL/ORACLE/DB2等)等,还有诸多如JAVASCRIPT、AJAX、HIBERNATE、SPRING等前沿技术。
此外,关于网络工程和软件测试的其他技术也要有所涉猎。
转载请注明出处51数据库 » 软件架构师 编程语言