C++工程师岗位求职经验分享

这里王婆卖瓜自卖自夸一下,也简单推荐一下自己在秋招过程中创建了forthespada的github账号,在其中创建了名为CS-Notes的刷题笔记,包括剑指offer以及一些比较经典的平台上的笔记都是有的,每道题都做了详细的笔记包括暴力解法以及进阶的解法。

在线刷题平台分享:

牛客名企高频面试:https://www.nowcoder.com/ta/job-code-high

牛客剑指offer:https://www.nowcoder.com/ta/coding-interviews

牛客程序员代码面试指南:https://www.nowcoder.com/ta/programmer-code-interview-guide

优质课程推荐:

牛客算法基础入门班:https://www.nowcoder.com/courses/semester/2021algorithm-base

牛客算法基础提升班:https://www.nowcoder.com/courses/semester/2021algorithm-higher

课建议:这两个课程确实不错,题型都是是笔面试考到的知识点,名字虽然是基础班,但是干货很多,知识点+例题应用+代码讲解,带着你走完面试常见题型和解法,非常贴心了,讲的非常细致。

  1. 比如SYN请求包丢失的话,客户端会怎么做?
  2. 或者为什么要等待2MSL时间,为什么不等待1MSL或者3MSL呢?

3.1.4计算机网络

对于计算机网络的考察,并不会仔细问OSI七层模型中的每一层,只会挑选比较重要的应用层、传输层、网络层来进行考察,其余层偶尔也会有所涉及,但频率较小。但这并不意味着你可以不去看其它层的知识,因为计网知识是具有相关性的,OSI七层模型,上一层要用到下一层的数据,它们是层层相关的。切记切记!

3.1.4.1应用层

对于应用层来说主要考察的协议莫过于HTTP(HyperText Transfer Protocol,超文本传输协议)、HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer,HTTP的安全版本)、DNS(Domain Name Server,域名解析协议)了。

具体来说HTTP协议可能会问你几种请求方式(get、post、put等)、cookie与session、常见常态码一些知识点,有时候也会问你HTTP2.0相比于1.0有哪些改进这样的问题。

HTTP2.0使用了多路复用的技术,做到同一个连接并发处理多个请求,而且并发请求的数量比HTTP1.1大了好几个数量级。

对于HTTPS最常见的莫过于解释HTTPS的请求过程、对称加密和非对称加密以及其中涉及到的摘要算法,还有HTTPS为什么比HTTP安全和HTTPS的优缺点。这些知识点建议去看《图解HTTP》这本书,很详细的一本图解书,基本HTTP相关知识都有所讲解。

对于DNS协议,最知名的莫过于“DNS解析过程”这样一个经典的问题了,其中可能会涉及到“DNS中的传输协议选择为什么是UDP而不是TCP“这样的略微拓展问题。

浏览器缓存——》系统hosts文件——》本地DNS解析器缓存——》本地域名服务器(本地配置区域资源、本地域名服务器缓存)——》根域名服务器——》主域名服务器——》下一级域名域名服务器 客户端——》本地域名服务器(递归查询) 本地域名服务器—》DNS服务器的交互查询是迭代查询 以上是应用层经常考察的知识点。

3.1.4.2传输层

如果要用一个知识点代替校招过程中计网的考察重点,那肯定是TCP(Transmission Control Protocol,传输控制协议)/UDP(User Datagram Protocol,用户数据报协议)相关知识点。

对于TCP能考察的实在太多了,最经典的莫过于三次握手与四次挥手过程了,就如同笔者在2.2.4中介绍的那样现在对于三挥四握也不再是简简单单的考察过程那么简单了,会问你各种意外情况的TCP处理措施,emmm,越来越难了。除此之外,还有其余比较经典的问题:

l 为什么要等待2MSL等待延迟?

alt

第四次丢失,第三次重传,需要时间小于2MSL

l 四次挥手可以变三次吗?什么时候会成为三次?

如果客户端请求关闭连接时,服务器并没有数据需要发送,其实三次挥手应该也是可以的。

l TCP可靠传输如何保证?

l TCP滑动窗口是什么?

l TCP拥塞控制机制以及算法?

对于UDP的考察会比TCP要少一些,一般只会考察UDP与TCP的区别和特点等问题。因为TCP已经出来很长时间了,现在互联网上也有很多其他的传输协议,最知名的莫过于谷歌提出的基于UDP的可靠传输协议QUIC(Quick UDP Internet Connection)了,面试中一些面试官也会问QUIC相关。

至于为什么QUIC还没推广开,结合了TCP与UDP两者优点的QUIC确实是一个非常好的协议,为什么没推广开?看看IPV6与IPV4你就知道了,东西是好东西无疑,推广之路漫漫无期。

3.1.4.3网络层

网络层,最重要的莫过于IP(Internet Protocol,网际互连协议)协议了,还有ARP(Address Resolution Protocol,地址解析协议)、ICMP(Internet Control Message Protocol,Internet控制报文协议)等其余协议。

对于IP协议,其实能考察的知识点并不是很多,因为IP协议太碎,IP该数据包里的东西太多反而不好考察,比较知名的就是考察TTL(Time To Live,生存时间)是什么以及为什么要有TTL了。

TTL是IP协议包中的一个值,指定数据报被路由器丢弃之前允许通过的网段数量。 TTL 是由发送主机设置的,以防止数据包不断在 IP 互联网络上永不终止地循环。

至于ARP协议,其实是另一个经典计算机网络问题:“为什么有了MAC地址还需要IP地址和如何实现IP到MAC地址的寻找”的答案了

总之,MAC 地址就像自己的 ID 号,而 IP 地址就像带着邮政编码的住址,各有各的用途。所以我们需要两个地址,缺一不可。

如果你经常看一些面试经历分享(俗称面经),可能会看到另一个计网高频问题:Ping 一个网址的过程是什么?其实这个问题主要涉及的就是ICMP协议,所以不可避免的对于ICMP协议也要有所了解。

alt

这里简单贴上笔者简历,其中关键信息已脱敏,笔者简历修改迭代达26版之多,具体过程已发表在牛客专栏中,有需要的同学可以移步:一份百投百中的计算机校招简历是如何迭代足足26版的?https://blog.nowcoder.net/n/a94c64fe09ac43408ac3cc27519f735d

全部评论

相关推荐

点赞 评论 收藏
分享
点赞 评论 收藏
分享
mama3925:建议专业技能里测试移到最上面,加粗。然后适当加入些自动化测试工具。第二个项目,第三条亮点最后错别字。然后佬如果对自己很自信的话,可以项目放前面,然后项目里可以编造点测试经历,写在写在项目亮点的前两行。最后可加个自我评价,放个博客或者仓库链接
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务