03.06 架构师的工作和程序员的工作有何不同?

夏末川


程序员的工作和架构师有什么不同?

简单的说,程序员分为初级程序员,中级程序员,高级程序员,而架构师必定是优秀的高级程序员,优秀的高级程序员未必是架构师。下面我们来看看程序员和架构师的主要工作

初级程序员:这种程序员通常都是刚毕业不久或者刚从培训机构出来工作不久,对编程语言基础有一定的理解,对常用数据结构和数据库技术能够熟练的应用,但是没有功能模块的概念,通常都是参考系统中相关功能来实现自己的逻辑单元,很多时候都是去百度然后COPY-UPDATE来完成任务。

中级程序员:已经有个三五年的工作经验,对技术和业务都已经相对熟悉,能够独立设计和完成一些系统的功能模块,并能对初级程序员进行指导。

高级程序员:已经拥有五年以上的工作工作经验,对技术和业务已经非常熟悉,系统中的几乎所有功能都能够带领初、中级程序员来完成,并能够指导初中级程序员的工作。

架构师:已经工作8年以上,对业务和技术都有自己的理解,在某个行业内做过很多新项目,并在项目中参与软件架构的设计,完成某些核心功能模块的编写,并带领和指导初中高级程序员完成软件项目的研发工作。

优秀的架构师必定是优秀的高级程序员,只有在足够的项目中经历多种疑难杂症,才能在最初的软件架构设计上采取合适的架构。比如软件项目打算采用主流的分布式架构,但是到底用dubbo还是springcloud呢?其实2种架构都是可以的,但是都有很多的坑需要踩,分布式事务问题,分表分库问题,微服务的细化问题,发布部署问题,运维问题等等,很多问题是高级程序员都考虑不到的。高级程序员只要掌握技术和业务,完成功能模块即可,而架构师必须掌握二外的很多内容,不仅仅专注于代码的编写上,还要专注于项目的可维护性、易扩展性、易使用性等。

高级程序员经过多个新项目的实现,注意积累,也是很容易成为架构师的。现实中往往很多高级程序员没有这样的机会,而仅专注于代码的编写上,所以很多高级程序员都停留在了程序员的水平。





该死的Bug


架构师负责公司项目需要用到的框架,考虑的因素有很多种。比如,用户流量在10w左右用什么框架,1000w又用什么框架才可以达到系统的最佳性能。

程序员就很简单了,不停的撸代码,头秃的那种。

也可以理解为,架构师确定好框架,甚至把架构搭建出来,程序员负责里面业务功能实现。架构师要求的技能知识要比普通的程序员复杂的多,当然其薪资普遍也比程序员高。


简单呗


程序员:做编程的底层开发工作,写代码,不停的写代码软件设计师:其实这个概念不太清楚,跟架构师类似,就是要分析设计这个软件的整体概念,就像盖房子要先画图纸,然后分给不同部门的人去建造,其实在现在,一般叫项目经理,或叫开发经理网络工程师:设计整体的网络的人,跟软件设计师差不多,不过做的是网络工程。网络管理员:与程序员类似,重复性的技术工种。系统分析师:这个也是个比较模糊的,系统分析类似医生的,可以通过自己的经验和从业经验,对某各软件或某项工程进行分析,优化,从而帮助架构师或项目经理用最短的时间做出最满意的东西来。其实你分的这几个,都是计算机里的职位,你重新分一下类好了软件开发里面分为:程序员,软件工程师,软件架构师和系统分析师网络工程里面分为:网络管理员,网络工程师,网络架构师和系统分析师如果是工资高,级别高的,就是架构和分析了,但是。。。。强调一下,这两个职位不是有技术就可以的,需要大量的经验,一般都是从程序员开始做起的,才有资格。


红色的音乐


架构师可以是程序员,程序员不一定是架构师。


能省居


简单点,理解得清楚,说一大堆,越糊涂:

1.有些程序员一辈子就是程序员

2.有些程序员变成了架构师

3.不是所有程序员都能变成架构师

4.架构师也是程序员


涛哥讲事


程序员是来完成某项工作的具体实现者,而游戏程序设计师是一个宏观调控这项任务的负责者,类似于架构师一样程序员不用去管这个项目的任务分配的事情,只要完成自己被分配的事情就行了,但是设计师要从项目的性能优化等各方面去考虑这件事情


分享到:


相關文章: