EN

计算机软件工程师

软件工程师英文是Software Engineer,是从事软件职业的人员的一种职业能力的认证,通过它说明具备了工程师的资格。软件工程师是从事软件开发相关工作的人员的统称。

它是一个广义的概念,包括软件设计人员、软件架构人员、软件工程管理人员、程序员等一系列岗位,工作内容都与软件开发生产相关。软件工程师的技术要求是比较全面的,除了最基础的编程语言(C语言/C++/JAVA等)、数据库技术(SQL/ORACLE/DB2等)等,还有诸多如JAVASCRIPT、AJAX、HIBERNATE、SPRING等前沿技术。此外,关于网络工程和软件测试的其他技术也要有所涉猎。


职业定义

职业定义:软件工程师指从事软件开发职业的人,其工作主要涉及项目成员的培训、项目系统的设计与开发等方面。

相关职业:网页(WEB)前端开发工程师、系统集成工程师


任务职责

工作内容、任务、职责:

工作内容:软件工程师针对目标用户的需求,进行产品研发;负责产品的上线推广,软件功能的维护,和BUG的紧急修复;根据产品的需求变化,不断改进产品。

任务:编写功能代码,根据用户反馈维护历史代码,控制软件开发过程中的风险和BUG的修复。

职责:完成新需求的软件研发,维护历史软件功能的稳定,控制软件开发过程中的多类风险。

工作考核要求:

主要依据测试用例覆盖率、文档完善程度、BUG提交情况等定性或定量数据评定工作的考核结果。


知识背景

学历要求:

本科及以上

行业知识背景:

参与过一定规模的软件开发工作,积极参与开源社区并贡献过代码,自己编写过一定规模的代码。

专业知识背景:

1、对于计算机科学的基本知识:操作系统、计算机组成原理、数据结构、算法分析与设计、基本的编程语言、编译原理等学科;要求能熟练掌握其概念和原理,并能将其应用到实际场景。


2、特别地,对于软件工程方面的实验训练,能够熟悉基本的软件开发流程和工具,包括版本控制软件(Git\SVN等),代码质量分析工具(Gerrit等)。


专业要求:

电子信息工程计算机类计算机科学与技术软件工程


大学课程

重要的大学课程:

算法分析与设计 操作系统 数据结构 程序设计语言 软件工程 数据库原理 编译原理

重要未开设的大学课程:

演讲与口才 机器学习 自动机理论 形式语言概论 专业英语


职业技能

专业技能:

一是熟悉常用编程语言,诸如C/C++,java,python等,并对某一门或多门语言的特性有着较深入的理解;


二是基本的数据结构和算法设计能力,熟练掌握数据结构的应用和复杂度分析并灵活运用;


三操作系统和网络方面:能够熟练运用系统API接口,设计良好的程序,熟悉Linux操作系统,熟悉TCP/IP、HTTP等通信协议,有socket网络编程和大规模并发服务器开发经验或有搜索相关领域(如信息检索、索引、排序)经验。


通用技能:

沟通能力、表达能力以及团队合作能力,能够与团队中的成员协同开发,共同完成任务。


从业资格

必要项:

没有特别要求

附加项:

没有特别要求


常用工具

一是软件集成开发环境,如Visual Studio、Eclipse、Myeclipse等;

二是数据库软件,如Mysql、Oracle、SQL Server等;

三是基本的代码编辑器,例如vim/emacs等;

四是其他工作如Python解释器、Fiddler等。


薪酬待遇

薪酬结构:

软件开发工程师是根据所参与产品或项目的贡献决定薪酬的:

1、机构雇佣(包括专职和兼职)属于底薪+奖金的工作方式,具体的比例依据各公司的规定有所不同。

2、个人单独接项目薪水来源于个案收益。

而薪水满意度来源于个人在研发过程中的贡献和最终收益是否成正比;每个公司有差别。


满意度:

3(薪酬满意度评分:1点~5点,分别代表“非常不满意”~“非常满意”)


福利制度:

国家规定的五险一金,节日和生日礼品,一年一度的员工体检;每个公司稍有差别。


工作环境

工作场所:

办公室独立工位。


环境具体描述:


1、每位员工都有独立工位,配备台式机和显示器等;


2、工作场所具有空调、饮水机等基本设施,并设置了独立的茶水间;


3、有独立的会议室,配置投影设备、白板,并设置了电话供电话会议等;


4、有的公司还配备了供员工休息和娱乐的场所,方便员工在工作之余活跃身心;


5、配备了健身房、按摩室、医疗室等,时刻关注员工的身体健康。


发展前景

行业发展前景:

 软件开发、程序设计越来越成为一项基本技能,特别是在我们现在所处的大数据的时代,各行各业都会和信息技术结合起来,所以我认为软件开发领域是一个前途十分光明的职业。

个人发展路径:

1、个人发展的一个路径是技术路线,具体的方向可以有很多,包括客户端/移动端软件开发、服务端软件开发、机器学习算法方向、大数据处理领域等;可以学习的技术有很多,可以就职的职位也很多,向每个领域成为专家的方向发展是很好的,另外也可以各个领域都有所涉猎,成为全栈人才;


2、在技术方向的路上,避免不了要和团队合作,另外一条路径便是走管理方向。能够有效的管理团队的人员完成开发任务,并制定开发计划;合格的技术管理人才同样需要扎实的技术水平,能够为团队选取技术方案等。这两条路线是相辅相成的。


职业的就业趋势:

软件开发工程师的细分类别越来越多,例如前端开发工程师、后端开发工程师、算法工程师等,伴随着互联网进程的加快,对软件开发工程师的需求会越来越旺盛。


职业道德

1、在工作中获得的不属于公共范围的信息应予以保密。
2、不得有意破坏或窃取公司的文档资源和代码资源。
3、不得在程序中嵌入非法或不安全代码。
4、任何情况下不泄漏公司商业秘密,更不得为获取私利而出卖商业秘密。

—————————其他方式登录————————