腾讯C++客户端实习一面(凉经但收益匪浅)

面试大概50min,虽然肯定凉了但今天的面试真的受益匪浅,面试官在反问环节真的用一个过来人的角度给我指明了怎么做会更好。

面试官主要让介绍了web服务器项目,问了web服务器项目的运行流程,我当时主要还是围绕项目用了什么技术来讲,但是面试官后面说更希望我具体去解释项目实现细节,感觉他希望从我的解释中看出我到底有没有自己动手去敲一遍代码,比如他问了web服务器的端口是什么,这个我当时居然都不确定(实际上都过了四五个月没看了,记得才怪)

问了假如客户端向服务器发送一个请求,那么服务器的处理流程是什么,如果使用的是https连接,那么与http连接的区别是什么。然后根据我提到的使用了SSL/TLS连接,又根据我说的https使用了加密,追问了公钥放在哪里,私钥放在哪里,这个我也不会

当时还问了我面试中被提问最多的零拷贝技术mmap()+write(),我当时一套丝滑分析这个技术的上下文切换和数据拷贝次数,以为这下终于答上来一题了,结果面试官直接问能不能不进行上下文切换直接进行数据传输,直接给我问懵了,要操作硬件不是必须要有上下文切换么?这个问题也没能继续问下去了。

最后的codeing部分让我手写线程池,我说不会,结果让我手写一下自己博客里写过单例模式(懒汉+饿汉)(感觉面试官已经尽力给我机会了),我居然忘记怎么去写了,这一波只能说是循环轮旋爆炸了。

但是最后面试官的建议真的是让我收益匪浅了,面试官说我的问题主要从coding能力就看出来了,我比较少真正动手去写代码,简历更多的是对项目当中使用的技术的一个解释,所以希望我以后能够自己真正去实现代码,比如对于web服务器,如果自己能够先从最简单的web服务器写起,然后思考怎么去实现一个高并发的服务器,那么简历上的内容就会很不一样,面试官拿我简历上提到的零拷贝技术用以举例,如果我先自己用的read()+write()方法去实现数据读取,然后发现出现数据传输的性能瓶颈,那么这时候如果去查找市面上到底有哪些技术可以优化传输性能,一个个在自己的项目当中去应用,并且要根据一个评价传输性能的指标去做评价,那么最后挑选出来的数据读写方法才是最有说服力的,这比根据代码已经采用的技术去做解释会更好。而且如果自己做过这些,在描述当中一定是会体现出来的,这一点真的是我以前从来没有意识到的,狠狠受益了

最后感觉鹅厂对实践能力和知识的深度要求还是比较高的,表面功夫很难把面试官糊弄过去,面试官会根据你说的一个点去深挖,而实际上只要能把某一个点的知识弄透,可以和面试官进行有来有回的探讨,面试就会比较稳了,这也是我之前最大的误区,我之前把简历项目变成对项目里面用到的技术的名词解释了,而忽略了编程的过程实际上也是解决问题的过程,而解决问题的思路比解决问题用到的方法往往更有价值,希望自己以后多去拓展技术的深度吧

全部评论

相关推荐

5道选择填空,解释一下1.FIN_WAIT1发生在什么时候?2.C++选择正确的A:析构函数不可以是虚函数B:析构函数可以有参数C:多态都是靠重载实现的D:类内成员默认是private的3.sql4.内存对齐5.打怪x血,普攻1滴血,技能两滴血,求几种方式打死?解释为什么十分钟写二叉树的层序遍历,从下往上存我也就是reverse了一下。面的巨烂,五题对一题,压根分析不出来,太紧张了。好在层序遍历写出来了。有过的希望吗?------------------------发二面了-----------------------1.手撕LRU2.TCP的稳定的原因3.怎么判断一个点在长方形的里面4.B+树5.C++多态?动态绑定怎么实现?6.死锁的四个条件7.如要将138.10.0.0网络分为6个子网,则子网掩码应设为?8.给了一个图 dijkstra寻路9.已知最小堆为8,15,10,28,35,16,12,删除元素8后需重建堆,在此过程中会发生次比较10. 先输入2个值n m然后n个数字求出所有和是m的组合输出下标。每次尽量取前面的输入:7 61 2 2 4 5 5 3输出:1 2 73 4反问面试下来,感觉有点奇怪,写完LRU,说list不是双向链表,duque才是。我都说不会B+树了,还要我说B+树的数据结构之类的,我再说一遍不会才放过我了。C++就问了个多态,我答出来之后,说我C++比较熟悉就不问了。我也没答出多少,面试官也挺好的,引导我。------------------------两天后,面试不通过
查看15道真题和解析
点赞 评论 收藏
转发
6 15 评论
分享
牛客网
牛客企业服务