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

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

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

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

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

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

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

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

全部评论

相关推荐

7 19 评论
分享
牛客网
牛客企业服务