想做程序员?不同方向入门路线全解

在这里插入图片描述
学习计算机编程有很多方向如果你没有一个正确的路线,那么就会:



请添加图片描述

就会跟上面所说的那样,被迫成为一个全栈,这是比较尴尬的。
若你想比较准确的针对某个方向学习,那就继续往下看吧。

一、程序员分为哪几个方向

随着编程技术在各方面的应用,传统程序员的工作逐渐多样化,衍生出来了很多方面。

一般来说程序员分为 前端、移动开发、后端、测试、运维、数据、硬件、通信、人工智能。

在技术层面这几个类别可以按照下面的方式一句话介绍:

前端/移动开发 一般指可视的用户界面,例如一个网站的页面、手机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 准没错,这一点 get 到了吗?

相关的书籍推荐如下(书籍我详细选过了,是适合初学者学习的内容):

首先我推荐第2本入门书籍,如果入门不懂可以私聊我(1_bit)哟:


学习完毕后咱们可以加深一下:

unity3D、CoCos2DX:

为什么说 unity3D 和 CoCos2DX 是前端呢?其实这两者是游戏开发,属于游戏开发中的客户端制作,并且可以使用 unity3D 制作VR软件呢,unity 的基础是 C#,CoCos 其实作者并不推荐,因为学会 unity 对于新手更为方便(作者遥想好多年前学习CoCos 的痛苦经历)。

但是主要,学习 unity 需要必备的基础编程语言知识,那就是 C#(C sharp),C# 的学习可以先学习C语言再学习C#会比较轻松,咱们从最基础开始吧,那就先开始学习 C 语言。

首先推荐2本 C语言书籍如下(如果入门不懂可以私聊我):
在这里插入图片描述
在这里插入图片描述
咱们再推荐第2本 C# 语言学习的书籍:
在这里插入图片描述
在这里插入图片描述
咱们继续推荐第2本 C++ 语言学习的书籍:
在这里插入图片描述
接着就是咱们最后的主角 unity了:
在这里插入图片描述
在这里插入图片描述

3.2 后端

在后端开发中,一般 Golang、Java、PHP、Python 偏向于 Web 后端开发。
若全栈开发则可以学习HTML、CSS、JS,随后学习 Golang、Java、PHP、Python、C# 即可,推荐学习书籍如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
学习完基础编程语言后再学习对应的 web 开发,学习 web 开发一般都会有例如 MVC 的框架,但必须要学会基础的编程语言,否则将无法学习,推荐书籍如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在于 web 方面,Node.js 更是“大前端”,就像全栈一样,但是基础是 JavaScript,这个一定要学习。推荐 Node.js 的学习书籍:
在这里插入图片描述
在后端开发中 C#/.Net、C++、C语言、Delphi、Perl、视频、图形开发 基本上学习方向相似,由于视频和图形开发属于后期内容,在此不过多介绍(作者本人对于这方面其实了解不多),视频和图形开发由于注重效率,也多数用 C++ 之类的高效率语言为主,所以前期入门学习 C++/C 没什么问题。

C/C++ 和 C# 在之前都有推荐,在此先推荐 .Net 相关。.Net 一般开发桌面应用软件,直接拖拽完成界面制作,非常简单。C# 的桌面开发作者在知乎暂时没找到合适的书籍推荐,在此就不进行推荐了。

C++ 可以制作桌面软件,学习QT即可,推荐书籍如下:

在这里插入图片描述
Delphi 是一个 windows 下的快速应用程序开发工具,但是在国内并不是很火,但是也是很强大,作者的第一本书就是 Delphi(国内资源较少,初学者注意哟)。推荐书籍如下:

在这里插入图片描述
Perl广泛用在 Web 开发、数据处理和系统管理中,不过不建议新手直接了解,因为这一类开发涉及别的知识不一定能够看明白,推荐书籍如下:
在这里插入图片描述

3.3 测试

测试开发、自动化测试、渗透测试 这三个类别中,在此只对新手介绍 自动化测试,因为其他两者需要一定的额外知识,而自动化测试较为基础,如果是新手学习完 python 之类的语言后,可以进阶到自动化测试,这样也是较为平滑的过渡。当然自动化测试还可以别的技术实现,在此介绍 python自动化测试 是因为 python 自动化测试对新手较为友好。

推荐自动化测试的书籍如下:
在这里插入图片描述
在这里插入图片描述

3.4 运维

自动化运维工程师、DBA 这两者其实技术上交互并不大,咱们先说自动化运维。

说到自动化运维我还想到我一个朋友跟我请教过 python 的自动化运维,他当时想做一个自动化的运维平台方便他日后的工作,我也是从此才知道原来自动化运维,开始一直没把运维跟编程联系到一起,因为那一块我也不是特别熟悉吧。

当然自动化运维也不一定是只有 python 才可以实现,但是python 对于新手来说这是较为平滑的过渡。推荐书籍如下:

在这里插入图片描述
接下来说道DBA数据库管理员了,数据库一般使用 sql 语言,以 sql 语言为基础操作数据库。对于后端来说,sql 也是很重要必须要掌握的语言之一,因为当下应用数据库已经成为不可或缺的一部分了。

首先推荐入门的 sql 语言书籍,由于 mysql、sql server 等数据库都是使用 sql 语言,咱们现在以 mysql 为例学习是最好的(mysql 从安装、测试上来说对于新手较为友好):
在这里插入图片描述

3.5 数据/人工智能

数据挖掘、数据分析师、图像识别、人工智能、智能驾驶、深度学习、语言识别、自然语言处理 这些 方向/职位 对于新手最简单的方式是使用 python,因为 python 语言拥有强大的第三方库,可以很好的上手这些方面;当然,若在正式的开发中 python 开发此类产品并不使用,因为 python 在效率上有着天然的劣势,不过对于新手来说使用 python 学习这些内容是最好的选择。

以下书籍需学习完 python 之后。

数据挖掘/数据分析师 推荐书籍如下:
在这里插入图片描述
图像识别书籍推荐如下(opencv 是python的一个图像识别库,使用opencv进行图形处理很方便,并且 opencv 也有C++库,到正式开发后直接使用C++也非常方便):

在这里插入图片描述
人工智能/智能驾驶/机器学习 书籍推荐如下(机器学习这些都属于人工智能这一个学科内,所以在此直接推荐机器学习):
在这里插入图片描述
语言识别/自然语言处理 书籍推荐如下(这两者具有相关性,学习自然语言处理后对语言识别有一定帮助):
在这里插入图片描述
算法工程师这一类就建议大家刷题了,哈哈哈。

3.6 硬件/通信

嵌入式工程师、驱动开发 对于这方面并不是很熟悉,电子之类的肯定要会。本人只是有过树莓派、arduino这些玩具的开发(玩耍)经验,在此并不敢乱推荐,希望有会的同学评论区可以补充。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/286688.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【转】OpenGL超级宝典笔记——纹理映射Mipmap

原文地址 http://my.oschina.net/sweetdark/blog/177812 , 感谢作者,若非法转载请联系本人。 目录[-] MipmappingMipmap过滤构建Mip层Mipmaps 硬件生成LOD(多细节层次)偏好纹理对象管理多个纹理常驻纹理纹理优先级回顾Mipmapping Mipmap是一个…

【Microstation】第二章:Microstation三维建模基础知识

本章的主要内容包括模型的显示样式(线框、光滑)、三维定位(V、T、S、F)、Microstation常见的坐标系统(世界坐标系、ACS辅助坐标系、精确绘图坐标系、)和Microstation的工作区域(2D和3D)。 一、显示样式 二、三维定位 三维定位在Microstation中显得尤为重要,常见…

实现 EF Core 6 自定义查询标记

前言在《EF Core使用Simple Logging输出日志》中,我们介绍了查询标记 TagWith,它可以帮助我们快速定位到需要的日志:而在 .NET 6 中,新增了另外一个查询标记 TagWithCallSite,它可以标记出代码的位置:var u…

0运维?微信小程序云开发增删查改【05】

在创建小程序时&#xff0c;选择云开发&#xff1a; 随后进入项目之后&#xff0c;此时整个目录如下&#xff1a; 此时我们如图目录即可找到首页位置&#xff1a; 接着咱们清除 index.wxml 代码内容&#xff1a; 在 index.wxml 中加入如下代码&#xff1a; <view> …

【Microstation】第三章:Microstation三维模型构建与编辑

本章主要讲述三维基本实体绘制、三维构造元素绘制、三维模型编辑。 一、三维基本体素绘制 对于立方体、圆柱、球、圆锥等这些基本立体单位,MS提供了专门的绘图工具。 基本体素绘制有两种方式: (1)精确绘图工具 (2&

文件系统管理相关命令

查看文件系统相关属性的命令&#xff1a;blkidblkid是一个查看磁盘设备属性相关信息的命令行工具blkid -L LABEL | UUID :根据UUID查看对应的设备是哪个blkid [-ghlv] [-c file] [-w file] [-o format][-s tag] [-t NAMEvalue] device [device ...]-i&#xff1a;显示io限制lsb…

Android之实现夸克浏览器书签和历史页面滑动时候右上角图标切换效果

1 需求 实现夸克浏览器书签和历史页面滑动时候右上角图标切换效果,页面滑动的时候,图标也左右滑动,但是只是显示其中的一个 https://www.captainai.net/st/ 2 代码实现 xml布局实现 <LinearLayoutandroid:id="@+id/mainLl"android:layout_width="24d…

你都用 Python 来做什么?

你们都用python做些什么呢&#xff1f; 在开发中 python 这一个语言就像是小叮当&#xff0c;而 python 的第三方库则是“百宝箱”&#xff0c;你只要想着对某一个方向进行开发&#xff0c;那么这个“百宝箱”就会给你想要的东西。 由于我是在开发多年后接触到的 python&#…

Android之tint图片着色器

1、爆照 上面是原图,下面是点击效果。 2、介绍 设置着色模式用的。这个模式共有6种,分别为: multiply screen src_in(默认) src_over src_atop add android:tint 属性可以改变图片颜色 3 源代码 colors.xml <?xml version="1.0" encoding="utf-8&qu…

关于 Oracle分页数据重复的问题

2019独角兽企业重金招聘Python工程师标准>>> 先说问题吧。最近在测试一个新的模块&#xff0c;发现列表数据的前三页数据竟然是一样的。第一反应是 pageNo 的问题&#xff0c;debug一看&#xff0c;pageNo是正确的&#xff0c;然后一层层debug下去&#xff0c;所有参…

10分钟做一个新闻问答web站点[iVX低代码实战]

一、创建首页 进入到iVX线上编辑器后&#xff0c;选择相对定位。 点击创建后进入到 IDE 之中&#xff1a; 我们在第一步中首先创建一个首页。点击左侧组件栏中的页面组件&#xff0c;创建一个页面&#xff1a; 接着重命名该页面为Home&#xff0c;在页面中创建一个行&#x…

iOS开发网络篇—网络编程基础

一、为什么要学习网络编程 1.简单说明 在移动互联网时代&#xff0c;移动应用的特征有&#xff1a; &#xff08;1&#xff09;几乎所有应用都需要用到网络&#xff0c;比如QQ、微博、网易新闻、优酷、百度地图 &#xff08;2&#xff09;只有通过网络跟外界进行数据交互、数据…

深入理解Three.js(WebGL)贴图(纹理映射)和UV映射

本文将详细描述如何使用Three.js给3D对象添加贴图&#xff08;Texture Map&#xff0c;也译作纹理映射&#xff0c;“贴图”的翻译要更直观&#xff0c;而“纹理映射”更准确。&#xff09;。为了能够查看在线演示效果&#xff0c;你需要有一个兼容WebGL的现代浏览器&#xff0…

在兰州吃牛肉面时亲眼目睹的一幕,我感动了

今天中午去吃占国牛肉面&#xff0c;人比较多&#xff0c;很热闹。旁边坐了一群身穿校服的小学生&#xff0c;身后坐着一位小学老师&#xff0c;当孩子们发现老师在后面的时候&#xff0c;都异口同声地叫老师过去跟他们一起吃&#xff0c;老师嘿的一笑&#xff0c;没同意&#…

如何跨 Namespace 同步 Secret 和 ConfigMap?

Secret 和 ConfigMap 资源对象是命名空间级别的。它们只能被同一命名空间中的 Pod 引用。所以有时候不得不手动为每个命名空间创建它们。但有很多场景&#xff0c;我们想让它们是全局的&#xff0c;至少可以是跨命名空间共享的 Secret 和 ConfigMap&#xff0c;例如这些场景&am…

一文总结学习 Python 的 14 张思维导图

本文主要涵盖了 Python 编程的核心知识&#xff08;暂不包括标准库及第三方库&#xff0c;后续会发布相应专题的文章&#xff09;。 首先&#xff0c;按顺序依次展示了以下内容的一系列思维导图&#xff1a;基础知识&#xff0c;数据类型&#xff08;数字&#xff0c;字符串&am…

GEE学习笔记

掩膜 ​ 在遥感图像处理中&#xff0c;"掩膜"是指一种用于隐藏或保留图像特定部分的技术。掩膜通常是一个二进制图像&#xff0c;其中的像素值为0或1&#xff0c;分别表示遮蔽或保留。 ​ 在去除云的情境中&#xff0c;掩膜通常用于隐藏图像中被云覆盖的部分&#…

十一、飞机大战(IVX 快速开发教程)

十一、飞机大战 制作微信小游戏大致流程与微信小程序、Web类似&#xff0c;不同的在于是组件的使用。 文章目录十一、飞机大战11.1.1 完成游戏角色制作11.1.2 完成物理世界添加11.1.3 完成子弹对象反重力运动11.1.4 使用对象组创建子弹11.1.5 子弹优化11.1.6 设置敌机11.1.7 优…

中国版LinkedIn呼之欲出

迄今为止&#xff0c;发展势头强劲的Facebook仍未上市&#xff0c;而美国职业社交网站LinkedIn 却率先登录纽约证券交易所&#xff0c;股价在第一天的交易中飙升&#xff0c;从45美元的发行价上涨了一倍&#xff0c;然后超过100美元&#xff0c;最终以94.25美元收盘。 LinkedIn…

Android之实现RecyclerView拖拽效果和固定部分元素不进行交换位置(包含源代码下载地址)

1、效果爆照 启动的效果 拖动过程中的效果 拖动后的效果 2、需求和问题 需求:RecyclerView实现拖拽效果,但是部分固定位置不能进行拖拽也不能在拖拽的过程中交换顺序