学习计算机编程有很多方向如果你没有一个正确的路线,那么就会:



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

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

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

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

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

前端/移动开发 一般指可视的用户界面,例如一个网站的页面、手机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这些玩具的开发(玩耍)经验,在此并不敢乱推荐,希望有会的同学评论区可以补充。

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

  1. 程序员不同方向入门路线全解

    一.程序员分为哪几个方向 随着编程技术在各方面的应用,传统程序员的工作逐渐多样化,衍生出来了很多方面. 一般来说程序员分为 前端.移动开发.后端.测试.运维.数据.硬件.通信.人工智能. 在技术层面这 ...

  2. 程序员工作压力大,为什么还这么多人想做程序员?是因为喜欢吗?

    最近过年遇到很多亲戚和朋友,不知道大家的身边是怎样的,阿粉身边的亲戚朋友从事计算机相关的还是挺少的,很多还是从事一些传统行业. 最近跟一个亲戚聊天的时候就聊到网上对程序员的一些刻板影响,什么格子衫呀, ...

  3. 写给那些想做程序员和不想做程序员的人

    <写给那些想做程序员和不想做程序员的人> 首先说一说进入计算机专业的目的,我个人是因为十分喜欢IT业,很喜欢折腾电脑,所以在填报志愿是毫不犹豫的在报了的所有的学校都填写的计算机专业,梦想着 ...

  4. 想做程序员但还在迷惘和摸索吗?

    自从上大学选择了计算机专业后,我就深深地热爱上了软件开发,并已经立志把自己的毕生精力都奉献给软件开发事业.一直以来,我都充满了激情去学习,去写程序,去接受新的知识和技术.几年来,付出很多,收获很多,也 ...

  5. 想做程序员?弄明白这些问题,你会少走很多弯路

    前言 几乎每一个新手程序员都会走上那么一段自学的道路,尤其是在校生或进入工作岗位之后,技术的提升基本都靠自学,有的虽然是网上报班学习,但更多时候还是自己在学习,师傅引进门,修行靠个人. 有的人自学很快 ...

  6. 一个想做程序员的小白,大家都是学了多久去做程序员的

    大家都是学了多久才做程序员 现在那种语言最好找工作 求大神们指点

  7. 想做程序员却不知从何下手?新手入门信息打包送你!

    作者 | Sergiy C. 责编 |  Carol 出品 | 程序人生(coder_life) 很多人都想了解自己是否适合编程?程序员的日常工作是什么?以及自己能借助编程完成什么事情?但他们往往因为 ...

  8. 你都42岁了还要做程序员?(入门必读)

    独白:这是一个有深度的公益性账号,在这里你将免费学习到超过3500G的视频/文字资源(Ps:从入门到架构);免费加入社群,与行业大牛互动学习:获得进入大厂机会(HR+内推+猎头),学习面试技巧等. 都 ...

  9. 只想做程序员的钢铁侠埃隆·马斯克,是如何成为亿万富翁的?

    众所周知,埃隆·马斯克(Elon Musk)创立了特斯拉.Space X和PayPal这几家改变了整个行业的公司.但在成为企业家和全球首富之前很长一段时间,马斯克只有一个简单的想法--他想设计视频游戏 ...

  10. 学计算机专业,但是不想做程序员,还能做什么呢?

    我本科学得是通信,毕业以后,家里供我到国外读计算机专业,父母都是工薪阶层,加上新疆的工资又不高,不仅要支付学费还要负担我的生活费,所以我很能体谅父母的艰辛. 第一学期,我学得很用功,开学第一个月的编程 ...

最新文章

  1. 深度丨有生之年,人工智能会给世界带来什么变化?
  2. oracle错误:ORA-12545
  3. php 防止按住f5不松,WordPress如何防御(频繁F5刷新)的解决方法
  4. python.freelycode.com-不完整的Http读取和Python中的Requests库
  5. Hibernate4继承映射
  6. BERT在多模态领域中的应用
  7. python celery异步_【Python】Celery异步处理
  8. eclipse插件安装方法
  9. 用Python模拟浏览器操作
  10. Java技术:Optional 相关用法介绍笔记
  11. IntelliJ IDEA中Maven项目的默认JDK版本
  12. php @file_exists 前面加at是什么意思,PHP file_exists()函数前加反斜杠“\”是什么意思?...
  13. DH 算法迪菲-赫尔曼算法QUIC协议和HTTP3.0
  14. 一文搞懂 | Linux 时钟子系统
  15. linux专业画图工具astah下载和安装
  16. vue下鼠标按住滑动
  17. 【测试】转行软件测试没有项目经历怎么办
  18. 道格拉斯简化_简化组织变革:困惑的指南
  19. java 不支持,不支持Java Sound格式
  20. 计算机系统是几位怎么看,Win10系统如何查看系统位数是32位还是64位

热门文章

  1. Java实训:学生信息管理系统
  2. 御剑江湖一键端mysql_御剑情缘gm完整端下载
  3. 2022届计算机毕业论文(设计)学生选题参考合集推荐收藏
  4. iso硬盘安装 凤凰os_凤凰os系统下载_凤凰系统phoenix os官方下载-188软件园
  5. Plastic SCM2022版开源项目
  6. 电子技术专业基础与实务(中级)考试经验
  7. 为了进大厂,韩顺平Java教程百度云
  8. 韩顺平java30天Utils包下的工具类
  9. 数学建模——怎样学习数学建模
  10. 华云数据:以信创云构筑自主创新长城之基