IT行业各岗位的职责与工作内容
1、产品需求分析工程师
根据市场及用户需求的调研和竞品分析结果,规划新产品的业务和功能需求,或者是对已有产品的需求进行演进。负责编写需求文档,组织需求讨论会,并将需求讨论结果整理成正式的需求文档提供软件开发及相关人员。协助研发、测试及营运人员完成业务相关的解释及项目后续跟进工作。
2、UI视觉设计工程师
参与公司软硬件产品的UI视觉效果设计,如软件的整体界面风格、版面、控件、彩、字体等方面的设计,能输出符合业界趋势、有竞争力的视觉设计方案,协助软件开发人员推动并提高产品的用户体验和设计质量。需要扎实的美术功底,热爱UI视觉设计,要熟悉Photoshop等设计软件的使用。
3、web前端开发工程师
Web前端开发工程师,主要是利用HTML/CSS/JavaScript/Flash等各种Web技术进行Web 页面或app页面的开发。为Web网站上提供的产品和服务实现一流的Web界面,优化代码并保持网页对多重浏览器的良好兼容性。
4、Web后端开发工程师
Web后端主要是处理web服务器侧的事务,给前端提供其请求的静态或动态web页面,以及web页面上要展现的数据。要使用到Java或PHP等开发语言,需要熟悉多种web服务器容器和web后台开发框架(比如SSH,SpringMVC等),熟练掌握数据库数据查询的SQL语句,了解Linux操作系统。
5、Windows应用程序开发工程师
Windows应用程序开发主要是开发Windows系统上的客户端软件和工具软件,一般使用到C/C++、C#等开发语言,使用Visual Studio开发环境,需要熟悉UI界面编程,会使用MFC 、directui或QT等界面库,熟悉多线程和网络编程,了解常用的数据结构和设计模式。平时参与公司相关软件的需求分析、模块与架构的设计和代码编写工作,能够编写相关技术设计文档,与测试人员协作完成软件产品的测试和维护工作。
6、Andriod应用程序开发工程师
Andriod应用程序开发主要是开发基于Andriod系统的手机或平板APP应用程序,一般是使用Java开发语言,使用Andriod Studio或者Eclipse开发环境,熟悉Android平台UI设计规范和UI运行机制,了解Android框架下的API函数,了解移动平台下的4G和wifi特性。平时参与公司相关软件的需求分析、模块与架构的设计和代码编写工作,能够编写相关技术设计文档,与测试人员协作完成软件产品的测试和维护工作。
7、iOS应用程序开发工程师
iOS应用程序开发工程师主要负责iPhone/iPad/iTouch平台下APP应用的开发,一般是使用Objective-C或Swift开发语言,使用Xcode开发环境,熟悉iOS应用开发框架和UI开发特性,熟悉iOS下APP的运行机制,了解移动平台下的4G和wifi特性。平时参与公司相关软件的
需求分析、模块与架构的设计和代码编写工作,能够编写技术设计文档,与测试人员协作完成软件产品的测试和维护工作。
8、Linux嵌入式软件开发工程师
Linux嵌入式软件开发主要是Linux系统下应用程序的开发,一般是使用C/C++开发语言,需了解主流嵌入式GUI如QT/E、MiniGUI等,熟悉Linux系统和常用的Linux命令,熟练掌握Linux系统环境下的编程和调试方法。平时参与公司相关软件的需求分析、模块与架构的设计和代码编写工作,能够编写相关技术设计文档,与测试人员协作完成软件产品的测试和维护工作。
10、中间件组件开发工程师
中间件组件开发主要是开发软件系统中所使用的公共组件模块,一般是使用C/C++、Go、Java等开发语言,熟悉
Codis/Twemproxy/MaxScale/Atlas/Rabbitmq/Kafka/ZK/etcd/hadoop/docker/jboss /JMS中的部分中间件,有对中间组件进行参数调优和优化的能力,熟悉TCP/IP协议,熟悉Apache httpd、Nginx等web server的使用。负责公司核心系统中间件架构环境部署、升级、调试、应用迁移、故障解决、故障报告编写等,要有深厚全面的技术功底,能排查多种软件系统突发的问题,有良好的系统运维能力。
11、协议栈开发工程师
协议栈是软件系统的协议层,定义了软件交互的双方在进行网络进行数据交互时的数据格式与约定,协议栈开发工程师主要是负责协议栈相关模块的开发与维护工作。不同行业有着不同行业专用的协议,比如视频会议系统常用的H323和SIP协议,工业控制领域的CANBUS 、MODBUS等总线通讯协议,无线通信领域的LTE、WCDMAPDCP、RLC、MAC等协议,物联网的NB-IOT、eMTC、GPRS等协议。
12、网络层软件开发工程师
网络层软件开发主要是负责系统中各网络实体之间(比如客户端与服务器之间)进行网络数据交互时用到的网络组件,通信双方通过该组件层建立TCP或UDP网络连接,然后进行数据的发送与接收。要熟悉TCP/IP协议,熟练掌握Socket网络编程,了解IOCP、select、epoll 等多种模型,熟悉libevent、ACE、boost、websocket等多种网络开源组件。
13、驱动开发工程师
驱动开发主要给硬件芯片或硬件设备开发相对于Windows、Linux或者Andriod系统的驱动程序,比如我们PC电脑中的主板、显卡、声卡、网卡的驱动程序,驱动开发主要使用C语言。驱动开发工程师根据硬件规格书及原理图,独立完成Windows、Linux或者Andriod系统的驱动程序开发,熟悉驱动调试工具和方法,负责驱动程序在多个系统中的移植。
14、服务器端开发工程师
前面已经讲过web后端工程师岗位,此处就不在赘述了,此处主要说一说除web后端之外的服务器开发岗位。服务器端开发主要是负责业务服务器的软件框架设计和数据库结构设计,主要使用C/C++、Java、Go等开发语言,熟悉MySQL、Redis、MongoDB、Memcached 等数据库,熟悉TCP/IP协议,熟悉Socket网络编程,熟悉libevent、ACE、boost、websocket
等网络开源组件,熟悉Zookeeper、RabbitMQ、ZeroMQ、ActiveMQ、Nginx、HBase 、Hive、Duboo、Hadoop、Docker等开源公共组件。
15、大数据开发工程师
大数据开发工程师其实也是服务器端开发工程岗位,鉴于最近几年大数据比较流行,所以出现了这个
专业的岗位,在阿里、百度、腾讯、头条这样的大数据公司特别需要这种岗位的开发人员。
该岗位主要从事大数据分布系统的开发和研究工作,并实时跟进大数据技术发展方向,主要使用C/C++、Java、Go等开发语言,要熟悉Hadoop、Spark、Storm、Hive、Zookeeper 、Hive、HBase、RabbitMQ、Redis等大数据开源框架和基础组件。
16、数据库开发工程师
数据库开发主要是根据软件系统的开发需求和设计方案,负责数据库开发的需求分析、框架设计、编码和实现,并对数据库应用系统进行运营及管理,分析数据库的性能并进行性能优化,比如优化数据库的查询速度。要熟悉MySQL、SQL Server、Oracle等主流的数据库,要深刻理解sql优化,能编写高效的sql脚本和存储过程,能对数据库的性能进行深入分析,并能给出有效的数据库性能优化方案。在阿里、腾讯、头条、华为这样有着海量数据的大型系统中,数据库的存储效率和性能先得尤为重要。并且他们自研的数据库系统已经达到了世界顶级水准,实现了对国外顶级数据库厂商的完全替代,比如阿里的OceanBase数据库、腾讯的TBase数据库、华为的GaussDB数据库。
17、算法工程师
算法工程师利用软件实现的算法处理特定的软件事务,以提高事务处理的效率和准确性。每个软件领
域都有需要对应的算法工程师,比如在音视频领域的音视频编解码算法、人工智能领域的机器视觉算法、网络路由器中的路由算法、数据挖掘和信息搜索领域的搜索算法等。算法工程师熟悉对应领域的开源框架,需要根据实际的运行场景和运行效果,对已有算法进行改进和优化。
18、软件架构师
软件架构师实际上是软件项目的总体设计师,是软件组织新产品的开发与集成、新技术体系的构建者。制定项目的总体架构,指导整个开发团队完成这个计划。主导系统全局分析设计与实施,负责软件架构和关键技术预研与决策。在遇到关键难题时,应能迅速抓住问题要害,并做出合理的、关键决定的能力,具备战略性和前瞻性思维能力,善于把握全局,能够在更高抽象级别上进行思考。
19、运维工程师
运维工程师最基本的职责是负责系统高效稳定的运行,确保系统可以7*24H不间断地为用户提供服务。运维工程师用自动化的工具/平台对运行的系统进行实时监测,在运行期间对出现的各种问题可以快速定位并解决,通过技术手段不断优化系统架构和部署的合理性,以提升系统服务的稳定性。运维工程师需要有丰富的网络运维经验,深入了解Linux系统安全及网络特性,深入了解路由器和交换机的原理,了解KVM、Xen等虚拟化技术,熟练使用Saltstack,Puppet,Zabbix,Bacula等自动化运维工具,熟练编写Linux下的shell脚本。
php的工作流程
运维工程师具体的日常工作包括:负责公司运维项目的系统升级、扩容需求与资源落实,配合开发需求,测试、调整运维平台;负责网络以及服务器的网络设置、维护和优化、网络的安全监控、系统性能管理和优化、网络性能管理和优化;建立面向开发部门,业务部门的服务流程和服务标准;负责IT运维相关流程的规划、设计、推行、实施和持续改进;负责配合开发搭建测试平台,协助开发设计、推行、实施和持续改进;负责相关故障、疑难问题排查处理,编制汇总故障、问题,定期提交汇总报告;负责网络监控和应急反应,以确保网络系统有7*24小时的持续运作能力;
特别是阿里、腾讯、头条这些大型的互联网服务提供商,他们的很多产品每天都在给人们提供不间断的服务,每天都要处理海量的数据交互,必须要保证7*24H不间断地为用户提供高质量的服务,在他们这里运维工程师就显得特别重要了,甚至比产品研发工程师还要重要。从大公司出来的运维工程师,一般都会有丰富的运维经验,在招聘市场上会很受欢迎,薪资也是非常高的。
20、软件测试工程师
软件测试工程师是软件产品的质量检测者和保障者,负责软件质量的把关工作,他们要使用各种测试技术和方法来测试和发现软件中存在的软件缺陷。
软件测试工程师需要根据软件的需求文档编写测试用例,根据项目时间安排编写测试计划,然后按照软件测试方案和流程,搭建测试环境,使用多种软件测试技术和工具对产品进行功能性测试、压力测
试和性能测试,并将测试过程发现的问题和缺陷提交到软件缺陷管理系统中,督促开发人员进行问题修改或优化。
测试有白盒测试与黑盒测试,有压力测试和性能测试,有单元测试、集成测试、确认测试和系统测试,也有冒烟测试和回归测试等等。
21、自动化测试工程师
自动化测试工程师也是测试工程师中的一种,是测试岗位的高阶阶段。自动化测试工程师主要负责自动化测试系统的设计与搭建,完成自动化测试用例与脚本的设计与编写。自动化测试工程师需要熟悉主流的自动化测试技术和框架,熟练掌握QTP、LoadRunner、Robot、selenium等等自动化测试软件和工具,要熟悉Java、Python等脚本开发语言,能编写接口测试代码和自动化测试脚本,要熟悉MySQL、Oracle等主流的数据库,能编写常用的SQL 语句。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。