IT行业是什么工作?做什么的(IT行业各岗位职责详解)

最近经常有些朋友会问我关于毕业后能从事什么工作的事情,因为他们亲戚或者朋友的孩子马上就要大学毕业了,有的学的是计算机专业,有的学的是自动化等计算机相关的专业,这些孩子普遍比较迷茫,不知道毕业都能做些什么,都能从事什么样的工作。我是理工科毕业的,从事IT行业已经有十来年,所以他们想让我给他们点建议和参考。

IT行业是什么工作?做什么的(IT行业各岗位职责详解)

我当时有点不以为然,这还不简单吗!现在都互联网时代了,这样的问题到网上随便搜搜,肯定会有一堆的答案,没必要问我的。但是他们说,他们也去网上详细的搜过,基本找不到一份比较全面的IT行业从业岗位的介绍,要不是讲的不全面,要不就是讲的太笼统或太不专业。于是我尝试着去搜了一下,确实如朋友们说的那样,找不到一个比较完备的介绍,所以很难给他们提供一个有效的借鉴或参考!有时候信息太多太繁杂了,反而找不到自己想要的、有用的东西了!

作为IT行业的从业者,我这几天一直在想,很有必要整理一份比较完备的IT行业大部分工作岗位的介绍,所以今天趁着周末不用上班,抓紧时间写出了这篇文章。

前言

一个IT软件产品从产品导入到最终商用,要经过产品市场分析和调研、产品规划、产品技术预研、需求导入、需求论证、实施开发、产品测试、产品发布、后期开发与维护等多个阶段,在这个复杂的过程中会牵涉到几乎所有的IT岗位,这个过程也是需要多个小开发团队的相互协作才能最终完成的。另外,从产品形态上,可能既要有PC端的软件,也要有苹果和安卓移动端的软件,也要有硬件形态的嵌入式软件,也要有web网页端的软件,甚至还要有支持国产化系统的软件,所以这更需要多个领域的开发人员。

本文在这里给大家详细介绍一下在IT软件产品生命周期中所涉及到的大部分工作岗位,给大家,特别是给即将大学毕业的学弟学妹们提供一个有效的参考。

IT行业是什么工作?做什么的(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脚本。

运维工程师具体的日常工作包括:负责公司运维项目的系统升级、扩容需求与资源落实,配合开发需求,测试、调整运维平台;负责网络以及服务器的网络设置、维护和优化、网络的安全监控、系统性能管理和优化、网络性能管理和优化;建立面向开发部门,业务部门的服务流程和服务标准;负责IT运维相关流程的规划、设计、推行、实施和持续改进;负责配合开发搭建测试平台,协助开发设计、推行、实施和持续改进;负责相关故障、疑难问题排查处理,编制汇总故障、问题,定期提交汇总报告;负责网络监控和应急反应,以确保网络系统有7*24小时的持续运作能力;

特别是阿里、腾讯、头条这些大型的互联网服务提供商,他们的很多产品每天都在给人们提供不间断的服务,每天都要处理海量的数据交互,必须要保证7*24H不间断地为用户提供高质量的服务,在他们这里运维工程师就显得特别重要了,甚至比产品研发工程师还要重要。从大公司出来的运维工程师,一般都会有丰富的运维经验,在招聘市场上会很受欢迎,薪资也是非常高的。

20、软件测试工程师

软件测试工程师是软件产品的质量检测者和保障者,负责软件质量的把关工作,他们要使用各种测试技术和方法来测试和发现软件中存在的软件缺陷。

软件测试工程师需要根据软件的需求文档编写测试用例,根据项目时间安排编写测试计划,然后按照软件测试方案和流程,搭建测试环境,使用多种软件测试技术和工具对产品进行功能性测试、压力测试和性能测试,并将测试过程发现的问题和缺陷提交到软件缺陷管理系统中,督促开发人员进行问题修改或优化。

测试有白盒测试与黑盒测试,有压力测试和性能测试,有单元测试、集成测试、确认测试和系统测试,也有冒烟测试和回归测试等等。

21、自动化测试工程师

自动化测试工程师也是测试工程师中的一种,是测试岗位的高阶阶段。自动化测试工程师主要负责自动化测试系统的设计与搭建,完成自动化测试用例与脚本的设计与编写。自动化测试工程师需要熟悉主流的自动化测试技术和框架,熟练掌握QTP、LoadRunner、Robot、selenium等等自动化测试软件和工具,要熟悉Java、Python等脚本开发语言,能编写接口测试代码和自动化测试脚本,要熟悉MySQL、Oracle等主流的数据库,能编写常用的SQL语句。

IT行业是什么工作?做什么的(IT行业各岗位职责详解)

当前国内大部分IT公司的测试还是比较原始的手工测试,距离自动化测试比较远。而大型互联网公司,每天都要处理海量的信息和数据,必须要使用到自动化测试才能完成高并发高性能的测试,所以自动化测试在互联网公司比较盛行,这也得益于互联网公司对新技术的敏感度以及对新技术的接收能力。所以在招聘市场上,真正懂自动化测试的人还是少部分人,市场需要这样的高尖端人才,所以自动化测试工程师在市场上绝对是很吃香的,薪资待遇也是非常高的。

从事IT行业是否有明确的专业限制?

有很多人问,想从事IT行业,不知道有没有明确的专业限制?我的回答是,没有绝对的专业限制!从以下几点来说明:

1、首先是计算机科学与技术、软件工程等计算机本专业的,肯定可以从事IT行业的。

2、自动化、电气自动化、通信工程、电子信息工程等理工类的专业,属于计算机相关专业,也是可以从事IT行业的。

3、数学专业、物理专业、甚至化学专业等也都可以从事IT行业的工作,这个就属于跨专业工作了。我们有些做研发的同事就是这几个专业毕业的。虽然有时招聘公告上写着招计算机及相关专业,但也没有绝对的限制专业。只要你抱有足够的热情和动力,也可以参与到我们的行业中来!

4、我有个同事以前是学文科的,辅修的计算机专业,即拿到了双学位,他也来从事我们的行业。而且做的比较好,前两年还跳槽去了腾讯!

最后

本文根据本人对IT行业的理解,简单的讲述了IT行业中主要工作岗位的职责及工作内容,希望能帮助到需要帮助的人,谢谢!

版权声明:内容由互联网用户贡献,不代表本站立场,本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 546541225@qq.com 举报,一经查实,本站将立刻删除。