现在的软件开发岗位分哪几类,它们之间又有什么区别和联系?
现在市场上的软件开发主要分为前端开发工程师、后端开发工程师、测试开发工程师、数据分析工程师、算法工程师、运维工程师。当然还有一些嵌入式和网络安全相关的岗位等等。想问下这些岗位之间有什么区别和联系?
单纯从开发上讲,大致分为了前端开发,后端开发
这里包含了UI设计(单独拿出来分类也可以,毕竟抠图,调样式,改效果也是很费劲的)
这里分为了 后端开发 和 数据库开发 (这里的数据库开发指的是专业人员,进行数据库设计,存储过程,函数,脚本,数据库优化和问题解决)
算法工程师: 在我看来这是低级程序员进击高级程序员甚至是架构师的必经之路,尤其是在面向业务流程的算法设计上,能大大减少代码量和提高软件执行效率
数据分析工程师: 建数据分析体系,数据分析工具化,产品化,基本都是做大数据的,需要精通大数据库的操作和可以进行数据分析语言,比如Python(实现方式,各个语言都可以,只是那种更简单的问题,勿喷)
嵌入式工程师: 开发一些与硬件关系最密切的最底层软件,技能需要软硬件结合,不仅仅需要软件基础,也需要一定的硬件基础
然后下面就要说的是 测试工程师 ,和 运维工程师 了
简述一下就是: 对软件质量负责,进行各种测试,确保工程交付的准确,确保软件流程安全,编写测试用例,编写性能,自动化测试等
简述就是: 负责服务器的配置,维护,监控,调优,故障排除以及部署方案的制定及实施,哦,还包括数据库管理员(DBA)职能
中小型公司基本都没有的岗位 - -
负责预防网页篡改、计算机病毒、系统非法入侵、数据泄密、网站欺骗、服务瘫痪、漏洞非法利用等信息安全事件
工程师和程序员的区别有:
1.着重解决业务问题:
程序员的着力点在于项目里的技术问题,工程师的着力点在于解决业务问题。有时候只要优化一下业务流程,就可以减少很多技术难点。我们经常讲的技术驱动就是指这个方面。
2. 控制开发过程:
程序员只管闷头写代码,实现各种业务功能逻辑。工程师会从开发过程、项目成本的角度来思考,包括选择开发语言、采用哪些中间件、使用什么数据库等等。技术架构尽量简单,业务逻辑也尽量简化,代码结构也尽量简洁,大项目尽量迭代开发。
3. 降低维护难度:
程序员通常不会考虑后期维护的难度。软件工程师会思考这个问题,所以他们会尽量完善项目文档,检查代码注释,甚至专门做一些工具用于后期维护检查,尽量做到容易维护。
4.知识方面有差异:
这个一定不必多说,既然工程师站在了总指挥的位置上,那么需要负责的事情一定是非常多的。不仅要写代码,还要会整合,在后期的整合上需要学的知识还有很多,包括对各个代码进行检测,发现整合后的错误等等。所以相比之下,工程师需要具备的知识水平更高。
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!