微软暑期实习一面二面面经
微软一面面经
1.自我介绍,中英文都可
2.项目介绍,项目中的挑战
大概说了一下多线程和IO多路复用的挑战,然后也没有继续问了。
3.IO多路复用和多线程的优缺点
没有回答好,只知道优点,不知道缺点是什么
4.https的运作流程
从浏览器输入url开始,到 dns查询到tcp连接,最后传输都说了,然后他说不用讲这么多,只需要讲https相关的信息,后面回答了 https建立连接时的四次握手。
5.https报文传输过程中加密的那些内容,哪些是攻击者可以看到的
这个没有讲好,我去分析了https报文,其实攻击者只能看到转发过程的 ip地址,因为应用层的报文都被SSL/TLS协议加密了。
6.算法:752. 打开转盘锁
这道题没有见过,然后没有刷到关于图的算法,就打算用回溯法进行爆搜,然后写代码的时候把我自己给绕晕了,最后没写出来,然后下来看了一下是需要用最短路径来做的。
7.反问
建议:建议我可以做一些好的项目(参加实习或者参加开源项目),有一些更好的项目经历。
8.总结
八股文我回答的还行,但是问到项目就不知道该说啥了,没准备好项目介绍相关的东西,算法没刷到也没办法。
微软二面面经
1.自我介绍
说的时候嘴瓢了一下,搞得面试官以为我是拿微软面试练手,有点尴尬。然后说我在项目里收获了很多,后面追问了这个收获,我也没有具体讲出来收获了些啥,也很尴尬,她说我表达的太抽象了,需要讲具体的东西。
2.项目介绍
问了,使用了什么技术,遇到了什么问题,怎么解决的。还是之前的问题,我没有说具体的东西,一是因为时间有点久记不清了,二是确实又些东西不是我一点一点写的,是copy 的,就没什么印象,哎。
3.算法
topk
我描述了一下可以用最大堆来解决,然后描述了怎么建堆,我一开始说的要重建k 次堆,每次选出最大的那一个(有些问题,其实只用建一次堆,后面直接使用堆顶的下降算法就可以了),她应该是发现了我的问题,她让我分析时间复杂度,然后我说了是O(klogn),然后一直再引导我发现我的问题,但是我还没反应过来,一直在说为啥要重建堆,试图告诉她必须要重建堆,然后她继续追问有没有其他的解决方法,我没想出来。然后他就让我写代码,我写完了,她又问我为啥必须要重建堆,我突然发现其实不用重建堆,把堆顶的元素下沉就行了,然后改了代码,然后她看了一下(应该是没有啥问题了),就让我去编写测试用例跑(然后我之前没咋用这个电脑的 vscode跑过测试用例,这个电脑的环境也没配好),就没跑通。。。
4.反问
建议:她戳穿了我的问题,平时没写太多代码,项目也不是自己从头开始搭起来的,然后介绍的时候自己说的内容自己也不能具体说清楚,一看就是之前没参加过面试,说让我之后注意这个问题,但是表扬我算法方面基础还是挺好的。然后建议我在之后的面试过程中,注意表现自己解决问题的能力,这是他们看重的,然后切实从头开始搭建一些项目。