it-swarm.cn

软件架构师,软件工程师和软件开发人员(程序员)之间有什么区别?

我正在阅读有关美国最高薪工作的CNN文章。 软件架构师列为#1 。一个 软件工程师列为#9软件开发人员(程序员)在#35处列出 。我认为用程序员代替计算机科学家是正确的,对吧?

在此之前,我一直认为“软件工程师”是有经验的程序员和团队负责人的头衔。但是,“软件架构师”又适合什么地方呢?我阅读了CNN说明,但它们并不能真正满足我的需求,因此我假设我可以从这里的优秀用户群中获得更详尽,经验更丰富的说明。

预先感谢您收到的所有回复。

24
Rob S.

警告:传闻出现……。

以我的经验,至少在澳大利亚市场上,程序员,软件开发人员和软件工程师这两个术语或多或少是可以互换的(我将这三个都用于做完全相同的实际工作)。

您的CNN链接中描述的“软件工程总监”与“软件工程师”不同。实际上,它更像是高级技术项目经理的角色。这种人实际上根本不会编写太多程序。这个角色与您典型的“软件工程师”无关,后者通常只是高级程序员中级职位的光荣称号。

链接中描述的“软件架构师”听起来像是高层团队负责人,他是设计软件系统总体结构的人,然后可能将一些艰巨的工作交给了更多的初级程序员。这种人负责项目,并可能向“软件工程总监”报告-在一家大公司中,许多团队编写各种产品,特别是在它们之间需要集成的情况下。

TL; DR版本

  1. 软件工程师通常只是“程序员”的光荣称号,也许是表示比较资深。
  2. 软件架构师大概适合高层团队负责人,他负责设计项目的总体架构。
  3. 软件工程总监是高级项目经理,这种类型的人可能会向最高级别报告,并且可能根本不涉及代码。

$ 0.02

24
Bobby Tables

我是这样学习的:

  • 软件工程师是一位了解软件开发过程各个方面(需求,规范,设计,体系结构,设计,实现等)的人,以便他们可以完成管理工作,或在过程中的任何地方工作,进行改进等。
  • Software Architect是仅在设计阶段之后的Architecture阶段工作的人员,是人们可以追求的最高技术工作。与可以成为管理人员的软件工程师相反,您仍然需要编程。这也是学徒式的工作。
  • 同样不要与计算机科学相提并论,计算机科学家可以编程,但也可以做很多其他事情,因此它们不仅限于编程领域。
7
Osukaa

在得克萨斯州,许多公司都倾向于避开“软件工程师”一词,因为在得克萨斯州,我们授权工程师,而实际上存在着“密封”专业工程师,软件( http ://www.tbpe.state.tx.us/eng_req.htm )。

我从未见过,也没有认识的人。当然,工程师协会非常想通过要求获得许可来编写“ hello world”来限制竞争,但这尚未发生。

“软件开发人员”通常用于主要工作是编写软件的人员。

对于“软件开发人员”而不是“软件工程师”,公司也更容易处理签证问题。

我只在初创公司工作了15年,所以我不习惯于一堆细微的职称,但总的来说,软件“ Architect”是一位资深开发人员,擅长规划“大局” '设计一个软件项目。与其他所有人一样,我认识的每个架构师都花费大量时间来编写代码,尤其是在主要设计达成共识之后。

6
Jim In Texas