随着编程技术在各方面的应用,传统程序员的工作逐渐多样化,衍生出来了很多方面。
一般来说程序员分为 前端、移动开发、后端、测试、运维、数据、硬件、通信、人工智能。
在技术层面这几个类别可以按照下面的方式一句话介绍:
前端/移动开发 一般指可视的用户界面,例如一个网站的页面、手机APP客户端、移动设备电视之类的界面等,制作这些页面的工程师被称为 前端工程师/移动开发工程师。
后端 一般指处理逻辑、数据交互这一方向,例如在一个站点中,后端工程师指在服务器编写业务逻辑代码的这部分人,一个网站若需要有 登录/注册 功能,单独有一个前端页面是无法完成的,必须有后端将用户输入的帐号密码拿去数据验证,而这一动作需要代码编写在服务器上,则编写这一部分代码的人就是 后端工程师。
测试 在一个产品的开发中,测试工程师 对产品进行测试,找到其中问题,帮助产品迭代、完善。测试工程师 包括硬件测试、渗透测试、自动化测试。而 自动化测试工程师 需要通过编写代码完成工作。
运维 一般是指 数据库管理员DBA(database administrator)、系统管理员、网络工程师、自动化运维工程师 等。一般这一部分人员是对系统进行管理,数据库管理员DBA 与 自动化运维工程师 则是通过编写代码完成工作。
数据/人工智能 数据一般跟程序员相关的一般指 数据分析师、数据挖掘,而基础数据又与 人工智能 相关,这3个职业一般以分析数据、挖掘数据、处理数据为主。
硬件/通信 硬件与通信方向两者关联也十分密切,硬件包括 嵌入式工程师(硬件单片机开发)、驱动开发 等,通信方向作者不是很熟在此就不过多介绍,但两个方向部分职业均需要代码参与。
以下职业从招聘网站统计(非所有方向)的大部分程序员对应方向。
前端/移动开发: HTML5、Web前端、JavaScript前端 、安卓、IOS、移动端开发、unity3D、CoCos2DX
后端: Java、C++、.Net、Perl、PHP、C#、Python、C语言、视频\图形开发、Golang、Node.js、GIS工程师、Delphi
测试: 测试开发、自动化测试、渗透测试
运维: 自动化运维工程师、DBA
数据/人工智能: 数据挖掘、数据分析师、算法工程师、图像识别、人工智能、智能驾驶、深度学习、语言识别、自然语言处理
硬件/通信: 嵌入式工程师、驱动开发
是不是觉得现在一头雾水,如何对应职位走好第一步呢?到底最开始该学啥呢?
推荐几个入门门槛相对较低的几个方向选择:
3.1 前端/移动开发
HTML5、Web前端、JavaScript前端 、安卓、IOS、移动端 开发学习第一步。
目前来说,前端/移动开发 分为跨平台与原生。跨平台指一项“编写技术”可以同时在多个平台上应用;例如制作一个网页,这个网页可以生成一个APP,又或者是桌面软件,这个技术就是跨平台技术,目前来说学习了 HTML、CSS、JS 即可对跨平台技术快速上手,大部分的跨平台技术都类似于 HTML、CSS、JS,甚至是兼容于这些语言。由此可知,第一步学习 HTML、CSS、JS 准没错。
3.2 java web开发
Web全栈,是将前端技术、后端技术、前后端交互技术、数据处理及系统部署等技能都能用起来的开发方式。既能写界面,又能写后台,还可以把数据库、系统环境之类的都搞定。全栈技术指可以完成整个项目搭建的有效集合。包括:网站的设计,web前端开发,web后端开发,数据库设计,接口和组件,移动端开发,产品设计,系统架构,产品的理念和用户体验,理解和定义需求。
3.3 测试
测试开发、自动化测试、渗透测试 这三个类别中,在此只对新手介绍 自动化测试,因为其他两者需要一定的额外知识,而自动化测试较为基础,如果是新手学习完 python 之类的语言后,可以进阶到自动化测试,这样也是较为平滑的过渡。当然自动化测试还可以别的技术实现,在此介绍 python自动化测试 是因为 python 自动化测试对新手较为友好。
点赞私信我领取免费课程资料哦!