腾讯2018暑期实习生后台开发面经(已收offer)
1.看了我的项目,有2个,先问第一个。我自己写的操作系统内核。问进程调度模块。
问项目由来,收获了什么,这里我罗列了一下写完内核后收获的知识,然后举例说上下文切换,在自己写内核之前什么都不知道,写过了就知道实际所需要完成的步骤(PCB,页表切换,汇编代码完成寄存器压栈等等),还有实模式转保护模式的步骤(A20地址线,寄存器标志位),以及如何完成字符显示(显卡内存地址,2个字节表示一个字符等)
面试官关联到问多进程与多线程的区别。
再问一个服务端,一个进程三个线程与三个进程的区别,优劣。
然后他问tcp协议格式,问tcp包里面有ip地址吗?一开始说有,后面面试官提醒从网络分层角度再想想,然后我就说没有(哈哈哈哈哈哈哈,可把我机智坏了,其实我是把伪首部算进去了,所以说有)
然后准备主动聊一聊tcp机制的时候(这个我准备了好久,可以说很久)然后面试官突然打断我问红黑树的性质(这个应该是压力测试吧),然后果断回答。又要我画左右旋转。
3.然后就结束网络方面的问答了,问我第二个项目,机器学习项目。问这个项目的前因后果,然后问题目要求,自己如何解决这个题目的。巴拉巴拉一堆。
1.也是先问项目,问的我关于OS内核的项目,问我最大的收获在哪里,我说收获最大的是bootloader模块和内存管理模块。然后讲一讲实现。
4.稍微问了一下虚函数表指针。
5.IO多路复用 select poll epoll
6.一个5L的桶子和6L的桶子,打出3L水
7.sql语句写 一个属性的查询,分组,计数并排序输出。
3面是视频面,很绝望,不是hr面,还是技术面试(为什么我会有3次技术面啊,好痛苦),应该是来自总部的,面试官一看就是部门大佬,交流起来压力巨大,主要来源于气场与提问的问题两个方面上。气场真的很强,中途搭配上一段比较难的问题,直接让我大脑空白了一会。差点说不出话。
1.首先先问的机器学习项目,扣细节,问我这个项目具体题目,如何实现的。然后指出我人工标记阶段存在的问题,存在误差,用有误差的标记数据再去训练模型误差更大,然后说业界明明有成体系的人工标记解决方案为什么没有去采用?为什么一点都不了解这个阶段的解决方案等等,我反正直接被问的大脑一片空白了。然后被反驳连人工标记这个阶段都没处理好,怎么能说体现解决问题与学习的能力呢。这一段是真的大脑空白,哑口无言,坦白说自己没有太重视标记一阶段,将更多的心思放在算法模型身上所以确实在一定程度上做得不好之类的。让我真的体会到了懵逼是什么感受,结束这个话题的一小段时间内我大概都是发呆状态,直到下个话题我能答上后才反过神来。
2.问第二个项目os内核,也是问为什么做这个项目,有什么收获。这一阶段问了我许多问题,都是由我每说一个知识点引申出来的,而且还挺难的,当时有点懵逼,基本上没有一个问题是心有成竹的,只能尽力将自己所了解的可能和这个问题挂钩的知识都说出来,感觉面试官可能不太满意,比如问我有没有实现外部程序加载,我说没有实现,因为ELF文件解析还没完成,然后就问我ELF文件解析的过程,答的不好,然后转问说在linux下执行一个用户程序底层所要经历的全部过程,也答的不好。这一阶段的提问与我的回答我基本上不记得了,因为问的也不是知识,更多的是给你一个过程性的问题,要你根据自己的理解说说底层或者这个过程经历了哪些阶段。而没有一个问题是我完全有把握的,所以回答也是根据自己知识储备想到什么说什么,所以问题与回答都不记得了,都是临场的。
3.然后就是问一些个人的理解与看法,对于互联网公司。我首先说了自己对于互联网公司产品的理解,然后以qq和微信举例。面试官又问了google和阿里巴巴,然后也相应的说了。
4.问我学习能力方面,问我是如何学习一个新知识的。