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

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



请添加图片描述

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

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

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

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

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

前端/移动开发 一般指可视的用户界面,例如一个网站的页面、手机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中显得尤为重要,常见…

xtrabackup对MySQL数据库的备份及恢复教程

xtrabackup xtrabackup 是 percona 的一个开源项目,可以热备份innodb ,XtraDB,和MyISAM(会锁表)。对MyISAM存储引擎会锁表,也是很郁闷的因为线上使用的是Innodb和MyISAM两种存储引擎,比较 头疼!…

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

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

LeetCode: 14. Longest Common Prefix

Write a function to find the longest common prefix string amongst an array of strings. 大意就是,写一个函数可以找到一个数组字符串中的最长前缀。 分析: 最长前缀的最大值为数组字符串中长度最短的字符,由最短字符串由后向前递减可以得…

jQuery选择器和选取方法

我们已经使用了带有简单Css选择器的jQuery选取函数:$()。现在是时候深入了解jQuery选择器语法,以及一些提取和扩充选中元素集的方法了。 一、jQuery选择器 在CSS3选择器标淮草案定义的选择器语法中,jQuery支持相当完整的一套子集,同时还添加了…

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

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

Android之解决卸载app后再次安装提示room数据库错误

1、问题 目前只有一个google手机之前安装了app,里面有room写的数据库&#xff0c;后面把app卸载了&#xff0c;再次安装新的app(修改了数据库里面的字段)&#xff0c;启动奔溃。 2、分析 提示数据库错误&#xff0c;很明显就像以前的app里面的数据库没有删除一样&#xff0c;…

【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…

CSharpFunctionalExtensions -函数式编程C#的功能扩展

简介该库有助于以更实用的方式编写代码安装在NuGet上可用dotnet add package CSharpFunctionalExtensions或者PM> Install-Package CSharpFunctionalExtensions例子Maybe创建一个值Maybe<string> apple Maybe<string>.From("apple");// orMaybe<s…

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

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

ArcGIS 10.6字段计算器(Field Calculator)字段任意填充编码序列(奇数、偶数序列、自定义间隔)

有关ArcGIS 10.x中属性数据采集和字段计算器(Field Calculator)的文章,需要的读者可以参照: 《ArcGIS实验教程——实验四:数字化属性数据的采集》,文章中就属性数据采集的多种方式做了说明,其中就有字段计算器的详细说明;《【ArcGIS风暴】ArcGIS 10.2字段计算器(Field…

你都用 Python 来做什么?

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

DOS分区概述

虽然很多参考文档对DOS分区进行介绍&#xff0c;但一直没有一个统一的标准&#xff0c;也没有统一的命名规则。Microsoft将使用DOS分区体系的磁盘称为“主引导记录(Master Boot Recorder---MBR)磁盘”&#xff0c;这是相对于使用“全局ID分区表(GUID Partition Table---GPT)磁盘…

pdf.js 利用HTML5技术显示pdf内容

Mozilla实验室最近在github上开源了一款js库pdf.js&#xff0c;用来读取PDF文件。 http://mozilla.github.io/pdf.js/ Using base64 encoded PDF HTML页面内容 <script src"//mozilla.github.io/pdf.js/build/pdf.js"></script><h1>PDF.js Hell…

.NET 对于构建系统应用的探索历程

这篇文章介绍和梳理一下截止到 2022 年的 .NET 向系统编程探索的历程。2003 年的 Singularity 项目试图让 Windows 的内核态与用户态应用完全建立在 .NET 托管世界上&#xff0c;并试验了一个支持编译到本机代码的类似 C# 的语言&#xff0c;并发布了很多相关的论文。后来 Sing…

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…

完美解决ArcGIS10.x栅格空间插值报错无法进行和导出插值栅格结果出错的问题

不少GISer,尤其是初学者,对栅格数据的操作,主要是栅格插值无法进行,或者是插值后的栅格结果无法导出,或者导出结果为空,或者是栅格格式无法转换,今天刘一哥GIS就帮您排忧解难吧。 其实,关于栅格(尤其是ESRI GRID格式)问题,我们只需要要记住两点,一般问题就可以迎刃…

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

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