计算机软件工程师
职业定义:软件工程师指从事软件开发职业的人,其工作主要涉及项目成员的培训、项目系统的设计与开发等方面。
相关职业:网页(WEB)前端开发工程师、系统集成工程师
主要依据测试用例覆盖率、文档完善程度、BUG提交情况等定性或定量数据评定工作的考核结果。
办公室独立工位。
1、每位员工都有独立工位,配备台式机和显示器等;
2、工作场所具有空调、饮水机等基本设施,并设置了独立的茶水间;
3、有独立的会议室,配置投影设备、白板,并设置了电话供电话会议等;
4、有的公司还配备了供员工休息和娱乐的场所,方便员工在工作之余活跃身心;
5、配备了健身房、按摩室、医疗室等,时刻关注员工的身体健康。
1、对于计算机科学的基本知识:操作系统、计算机组成原理、数据结构、算法分析与设计、基本的编程语言、编译原理等学科;要求能熟练掌握其概念和原理,并能将其应用到实际场景。
2、特别地,对于软件工程方面的实验训练,能够熟悉基本的软件开发流程和工具,包括版本控制软件(Git\SVN等),代码质量分析工具(Gerrit等)。
1、熟悉常用编程语言,诸如C/C++,java,python等,并对某一门或多门语言的特性有着较深入的理解;
2、基本的数据结构和算法设计能力,熟练掌握数据结构的应用和复杂度分析并灵活运用;
3、操作系统和网络方面:能够熟练运用系统API接口,设计良好的程序,熟悉Linux操作系统,熟悉TCP/IP、HTTP等通信协议,有socket网络编程和大规模并发服务器开发经验或有搜索相关领域(如信息检索、索引、排序)经验。
沟通能力、表达能力以及团队合作能力,能够与团队中的成员协同开发,共同完成任务。
1、软件集成开发环境,如Visual Studio、Eclipse、Myeclipse等;
2、数据库软件,如Mysql、Oracle、SQL Server等;
3、基本的代码编辑器,例如vim/emacs等;
4、其他工作如Python解释器、Fiddler等。
1、个人发展的一个路径是技术路线,具体的方向可以有很多,包括客户端/移动端软件开发、服务端软件开发、机器学习算法方向、大数据处理领域等;可以学习的技术有很多,可以就职的职位也很多,向每个领域成为专家的方向发展是很好的,另外也可以各个领域都有所涉猎,成为全栈人才;
2、在技术方向的路上,避免不了要和团队合作,另外一条路径便是走管理方向。能够有效的管理团队的人员完成开发任务,并制定开发计划;合格的技术管理人才同样需要扎实的技术水平,能够为团队选取技术方案等。这两条路线是相辅相成的。
软件开发工程师的细分类别越来越多,例如前端开发工程师、后端开发工程师、算法工程师等,伴随着互联网进程的加快,对软件开发工程师的需求会越来越旺盛。
软件开发工程师是根据所参与产品或项目的贡献决定薪酬的:
1、机构雇佣(包括专职和兼职)属于底薪+奖金的工作方式,具体的比例依据各公司的规定有所不同。
2、个人单独接项目薪水来源于个案收益。
而薪水满意度来源于个人在研发过程中的贡献和最终收益是否成正比;每个公司有差别。
3(薪酬满意度评分:1点~5点,分别代表“非常不满意”~“非常满意”)
国家规定的五险一金,节日和生日礼品,一年一度的员工体检;每个公司稍有差别。