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

在学完了C/C++语法以后,我相信不少朋友都会比较迷茫,到底应该学什么?程序员

其实总结起来无非就是:面试

一、网络编程;算法

二、操做系统;数据库

三、数据库;编程

四、数据结构与基础算法;安全

掌握这些基础知识,就像咱们的内功,若是在将来想要走的更远,这些内功是必需要修炼的。框架变幻无穷,而这些通用的底层知识,倒是几乎不变的,了解了这些知识,能够帮助咱们更快着学习一门知识,更加懂得计算机的运行机制。微信

1、网络编程

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

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

二、世界上的电脑那么多,咋就能找到那台特色的电脑呢?有人说咱们能够 MAC 或者 IP 来惟一标识啊,但是,疑惑又来了,世界那么大,电脑那么多,有了这个标识,咱们该怎么找到他呢?遍历全部电脑?框架

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

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

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

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

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

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

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

四、UDP 广播 多播

五、DNS、ICMP、ARP、DHCP、LWIP

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

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

**


2、操做系统

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

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

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

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

一、进程的通讯方式

二、进程地址空间分段

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

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

五、进程调度算法

六、磁盘寻道算法

上面说的这些,我认为是比较重要的,若是你没学过,我相信学了以后,你能够学到不少东西,知识点只是其中之一。

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

但愿对你们有帮助!下期咱们将会继续分享~

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

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

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

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

编程学习书籍:

编程学习视频:

相关文章
相关标签/搜索