在学完了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详解》三卷
网友评论