编程语言
首页 > 编程语言> > 【C/C++学习路线】(上):学完了C/C++语法之后该学什么?

【C/C++学习路线】(上):学完了C/C++语法之后该学什么?

作者:互联网

在学完了C/C++语法之后,我相信很多朋友都会比较迷茫,到底应该学什么?

其实总结起来无非就是:

1、网络编程;

2、操作系统;

3、数据库;

4、数据结构与基础算法;

掌握这些基础知识,就像我们的内功,如果在未来想要走的更远,这些内功是必须要修炼的。框架千变万化,而这些通用的底层知识,却是几乎不变的,了解了这些知识,可以帮助我们更快着学习一门知识,更加懂得计算机的运行机制。

一、网络编程

在我们用的程序中,99% 都离不开网络,作为一个程序员,我觉得了解计算机网络是必须的,在大学的课程中,一般也都会开设这一门课。其实大家或许有这种疑问,一台电脑是怎么把消息发给另外一台电脑的呢?例如:

1、两台电脑啥线路也没有相连,怎么就能把消息发送给他呢?

2、世界上的电脑那么多,咋就能找到那台特点的电脑呢?有人说我们可以 MAC 或者 IP 来唯一标识啊,可是,疑惑又来了,世界那么大,电脑那么多,有了这个标识,我们该怎么找到他呢?遍历所有电脑?

3、多个程序同时发消息给一台电脑,电脑是如何准确把这些消息拿给这些不同程序的呢?

4、发送的消息丢失了怎么办?

总之,一大堆疑问,看了计算机网络之后,才豁然开朗。

所以这里,我是强烈建议大家学一下的,在面试中,计算机网络也是高频考点,这里我大致总结一下一些必学协议以及面试高频考点

1、http协议,包括:封装格式,常见响应码,不同版本的区别,常见请求方法,存在哪些安全隐患,啥是无状态协议等。

2、https建立连接的详细过程,哪里用了对称加密,哪里用了非对称加密,对加密算法(如RSA)等是否有了解?

3、TCP协议:三次握手、四次挥手、如何保证可靠传输、流量控制、拥塞控制、滑动窗口等等。

4、UDP 广播 多播

5、DNS、ICMP、ARP、DHCP、LWIP

上面写的这些协议,我觉得是比较重要的,特别是在面试中。

推荐书籍:《计算机网络系统方法(原书第4版)》、《TCP/IP详解》三卷

**


二、操作系统

操作系统也是一门非常重要的知识,在面试中也是问的非常多。对于操作系统,要学的也太多太多了,例如:

啥是进程,啥是线程,他们的本质区别?我们运行一个程序时,数据放在哪里?代码放在哪里?咋就还要分堆和栈?线程切换时是上下文是啥意思?

虚拟地址是什么鬼东西?线程需要那么多种状态干啥子?什么是乐观锁、悲观锁?死锁是怎么造成的?解决死锁的策略有哪些?等等

对于操作系统,我总结了下面一些比较核心,面试相对容易被考到的。

1、进程的通信方式

2、进程地址空间分段

3、内存管理,包括:虚拟内存(重点)、分页、分段、分页系统地址映射、内存置换算法(重点)。

4、死锁的处理策略(死锁预防、死锁检测与恢复、死锁避免)

5、进程调度算法

6、磁盘寻道算法

上面说的这些,我认为是比较重要的,如果你没学过,我相信学了之后,你可以学到很多东西,知识点只是其中之一。

推荐书籍:我看过的书籍是《操作系统之哲学原理》,不过大佬们都推荐《深入理解计算机操作系统(原书第三版)》,我看过目录,感觉还不错,这里也推荐这一本。不过对于零基础的,我建议可以先看一本专门给小白看的书:《程序是如何跑起来的》。

希望对大家有帮助!下期我们将会继续分享~

如果你想更好的提升你的编程能力,进入到百度腾讯等大厂工作,好好学习C/C++编程知识成为高薪软件开发工程师的话!那么你很幸运~

C语言C++编程学习交流圈子,QQ群1090842465点击进入】微信公众号:C语言编程学习基地

分享(源码、项目实战视频、项目笔记,基础入门教程)

欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!

编程学习书籍:

编程学习视频:

标签:该学,操作系统,编程,电脑,C++,学习,死锁,学完
来源: https://www.cnblogs.com/258a/p/14304995.html