什么叫做软件开发工程师?
11个回答
2020-12-16 · 学动漫、设计、电竞、电商、短视频、软件等
关注
展开全部
软件工程师(Software Engineer),是从事软件职业的人员的一种职业能力的认证,通过它说明具备了工程师的资格。软件工程师是从事软件开发相关工作的人员的统称。通常人们会和程序员(英文Programmer)产生混淆,但其实是两种不同的性质。程序员是从事程序开发、维护的专业人员。一般将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚,特别是在中国。软件从业人员分为初级程序员、高级程序员、系统分析员,系统架构师,测试工程师五大类。
软件工程师的工作不同于程序员但是一个软件工程师必定是一个优秀的程序员。
首先软件工程师与程序员工作上最大的不同,可以打一个比喻:把一款软件比做一座大桥,那么软件工程师相当于施工总指挥,而一般的开发人员也就是程序员相当于建筑工人,所以很多人就说自己是IT民工就是这么来的。
想要成为一名优秀的软件开发工程师,就必须具备以下能力:
1、需求分析能力
对于软件工程师而言,理解需求就可以完成合格的代码,但是对于研发项目的组织和管理者,他们不但要理解客户需求,更多时候还要自行制定一些需求。
2、项目设计方法和流程处理能力
软件开发工程师必须能够掌握不少于两到三种的项目设计方法,并能够根据项目需求和资源搭配来选择合适的设计方法进行项目的整体设计。
3、复用设计和模块化分解能力
作为一个从事模块任务的软件开发工程师,他需要对他所面对的特定功能模块的复用性进行考虑,而作为一个系统分析人员,他要面对的问题复杂的多,需要对整体系统按照一种模块化的分析能力分解为很多可复用的功能模块和函数,并针对每一模块形成一个独立的设计需求。
4、整体项目评估能力
作为系统设计人员,必须能够从全局出发,对项目又整体的清醒认识,比如公司的资源配置是否合理和到位,比如工程进度安排是否能最大化体现效率又不至于无法按期完成。
5、团队组织管理能力
(1)工作的量化
没有量化就很难做到合适的绩效考核,而程序量化又不是简单的代码行数可以计算的,因此要求技术管理人员需要能真正评估一个模块的复杂性和工作量。
(2)对团队协作模式的调整
一个优秀的软件开发工程师应该能够根据程序员之间的能力水平差距,以及根据项目研发的需求,选择合适的组队方式,并能将责权和成员的工作任务紧密结合,这样才能最大发挥组队的效率。
软件工程师的工作不同于程序员但是一个软件工程师必定是一个优秀的程序员。
首先软件工程师与程序员工作上最大的不同,可以打一个比喻:把一款软件比做一座大桥,那么软件工程师相当于施工总指挥,而一般的开发人员也就是程序员相当于建筑工人,所以很多人就说自己是IT民工就是这么来的。
想要成为一名优秀的软件开发工程师,就必须具备以下能力:
1、需求分析能力
对于软件工程师而言,理解需求就可以完成合格的代码,但是对于研发项目的组织和管理者,他们不但要理解客户需求,更多时候还要自行制定一些需求。
2、项目设计方法和流程处理能力
软件开发工程师必须能够掌握不少于两到三种的项目设计方法,并能够根据项目需求和资源搭配来选择合适的设计方法进行项目的整体设计。
3、复用设计和模块化分解能力
作为一个从事模块任务的软件开发工程师,他需要对他所面对的特定功能模块的复用性进行考虑,而作为一个系统分析人员,他要面对的问题复杂的多,需要对整体系统按照一种模块化的分析能力分解为很多可复用的功能模块和函数,并针对每一模块形成一个独立的设计需求。
4、整体项目评估能力
作为系统设计人员,必须能够从全局出发,对项目又整体的清醒认识,比如公司的资源配置是否合理和到位,比如工程进度安排是否能最大化体现效率又不至于无法按期完成。
5、团队组织管理能力
(1)工作的量化
没有量化就很难做到合适的绩效考核,而程序量化又不是简单的代码行数可以计算的,因此要求技术管理人员需要能真正评估一个模块的复杂性和工作量。
(2)对团队协作模式的调整
一个优秀的软件开发工程师应该能够根据程序员之间的能力水平差距,以及根据项目研发的需求,选择合适的组队方式,并能将责权和成员的工作任务紧密结合,这样才能最大发挥组队的效率。
展开全部
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
顾名思义,就是从事软件开发的人员,俗称程序员、码工、码农
有前端开发、后端开发、数据库开发、移动开发、桌面开发、WEB开发等等
软件开发工程师的技术要求是比较全面的,除了最基础的编程语言(C语言/C++/JAVA等)、数据库技术(MYSQL/ORACLE/DB2等)、.NET平台技术、C#、C/S B/S程序开发,还有诸多如JAVA SCRIPT、AJAX、HIBERNATE、SPRING、J2EE、WEB SERVICE、SOCKET等前沿技术。
有前端开发、后端开发、数据库开发、移动开发、桌面开发、WEB开发等等
软件开发工程师的技术要求是比较全面的,除了最基础的编程语言(C语言/C++/JAVA等)、数据库技术(MYSQL/ORACLE/DB2等)、.NET平台技术、C#、C/S B/S程序开发,还有诸多如JAVA SCRIPT、AJAX、HIBERNATE、SPRING、J2EE、WEB SERVICE、SOCKET等前沿技术。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
软件开发工程师是从事软件开发相关工作的人员的统称。 软件开发工程师的技术要求是比较全面的,除了最基础的编程语言(C语言/C++/JAVA等)、数据库技术(SQL/ORACLE/DB2等)、.NET平台技术、C#、C/S B/S程序开发,还有诸多如JAVA SCRIPT、AJAX、HIBERNATE、SPRING、J2EE、WEB SERVICE、STRUTS等前沿技术。软件开发工程师工作比较累,但是收入确实很高的一个群体。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
软件开发工程师是从事软件开发相关工作的人员的统称。 软件开发工程师的技术要求是比较全面的,除了最基础的编程语言(C语言/C++/JAVA等)、数据库技术(SQL/ORACLE/DB2等)、.NET平台技术、C#、C/S B/S程序开发,还有诸多如JAVA SCRIPT、AJAX、HIBERNATE、SPRING、J2EE、WEB SERVICE、STRUTS等前沿技术。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询