我在川大旁的一个酒店12楼的客房里面试,lily给我的schedule是9点到9点半面试,实际上从9点面到了 10点45分。在这1个多小时内,面试官的问题密度灰常大,覆盖面之广,技术难度之深,在本人短暂的职业生涯中史无前例。他问到了unix/linux 或 windows 开发平台下的 c++,cgi,jsajaxcssaspflash,java ee网站开发,java me手机开发,嵌入式,3d渲染原理,3d游戏引擎,网络分层,tcp/ip协议的原理,winsock编程,服务器集群,分布式,web服务器原理,数据库设计,数据库压力测试,搜索引擎技术,基于.net/c#的web开发,大并发访问网站的架构设计,软件工程,算法和数据结构。基本上把我熟悉的,我了解皮毛的,和我听说过的,我没听说过的,全部问了一遍。面完出来之后,我的头都是晕乎乎的。。。
二面的面试官人很好,我没回答好的问题,他有时候会给我解释一遍。他把我的每个项目都看了一下,针对每个项目都有至少一个的比较有深度的问题。因为问题太多,具体的印象比较深刻的问题能想起几个就写几个:
让我把dreambook软件的系统架构图画出来,问我系统架构图、功能模块图、用户流程图的区别。(这个比较简单)
哪个部分是dreambook的核心,为什么?
下载一本书的所有网页后,生成一本书的目录、每章、每节之间的链接,这个树形结构分析的算法是怎样的?
去除每本书的网页的广告内容时,如何判断哪些是正文,哪些是无效信息?(模糊匹配算法)是否是基于html标签的?(是,但是不全是)是否是精确匹配的?(不是)
如何做用户需求分析?是不是需要准备什么?举例说明。
对baidu和google搜索引擎的原理了解多少?我们的搜索是搜索全文还是搜索摘要?(搜索全文,举了lucene的例子说明全文搜索原理)搜索量很大时,如何保证性能高效?(将搜索结果分页显示,一次只列出10个搜索结果)
有没有在linux下做过c++编程?开发平台是什么?写出该开发平台编译一个test.c文件的命令。
有没有开发过3d游戏引擎?做了一个什么样的游戏?这个游戏的特色在哪里?
osi 网络7层结构是什么?详述tcp连接3次握手的过程,如果在vc下开发,这个过程分别对应调用哪些windows api?(我发现这个问题是腾讯对所有人必考的问题)设计一个异步传输模式下的数据包结构。
对java ee框架下的spring、hibernate、struts了解多少?对一个 web服务器的原理机制,比如apache服务器的原理机制了解多少?iis呢?
叙述当一个用户登录qq时,与腾讯的服务器进行连接的过程。需要经过几层的路由?如果要自动选择最快的服务器进行连接,应该用什么方法实现?测试用户与腾讯的多个镜像服务器之间响应时间,是由用户发起测试还是由服务器发起测试?(服务器)采用什么协议测试?(icmp)
对于一个访问量很高的网站,性能瓶颈在哪里?可以做哪些优化,架构如何设计?
如何探测一个网络协议漏洞?发出的探测数据和接收到的响应数据是怎样的?如何判断是否存在漏洞?
最后一个问题印象最深,他说最后一个问题很简单(他笑),就是让我写一个双向链表的插入删除操作,要求1:每次插入删除之后,链表里的元素 ——假设是int——是按升序排列的;要求2:必须用c++实现 2个类cnode和clink,clink类里面封装add()和delete()方法。时间是20分钟,他要求我在这20分钟内,从12楼坐电梯下到1 楼大厅,在大厅找个桌子,用纸笔写好,然后上12楼交给他。
我在xxy寝室里写模拟文件系统写到4点睡的,写了一晚上的指针操作,这个问题我还是比较熟悉,按时交给了他。代码有优化的余地,不过没来得及优化,跟他说明了一下。注意的地方有2点,一个是指针操作的时候,删除哪个,连上哪个,操作顺序安排容易出错,要细心,还有就是添加和删除的结点位于第一个和最后一个时,处理方式有些不同。
最后他问我有没有什么问题,我问他什么时候给答复,他说下周内。然后他就叫下一个面试的同学进去了。
面完了才知道,这个面试官是晖哥所在部门老大的老大。。。大大牛啊~
结束,新的开始
回来之后跟李祺讨论了一下面试题,李祺和潘玉云都说bt。其实msra的面试题才bt,举个例子,这是李朋的一个电话面试题,比如 1~1000这1000 个数存在计算机中,随机删除其中一个,让你找出删除的是哪一个?这个问题是不是更bt?之所以举这个例子是因为我能答出来,李朋电话面试的其他问题我是一个都答不上来。。。可见msra面试的bt程度~
二面的面试官人很好,我没回答好的问题,他有时候会给我解释一遍。他把我的每个项目都看了一下,针对每个项目都有至少一个的比较有深度的问题。因为问题太多,具体的印象比较深刻的问题能想起几个就写几个:
让我把dreambook软件的系统架构图画出来,问我系统架构图、功能模块图、用户流程图的区别。(这个比较简单)
哪个部分是dreambook的核心,为什么?
下载一本书的所有网页后,生成一本书的目录、每章、每节之间的链接,这个树形结构分析的算法是怎样的?
去除每本书的网页的广告内容时,如何判断哪些是正文,哪些是无效信息?(模糊匹配算法)是否是基于html标签的?(是,但是不全是)是否是精确匹配的?(不是)
如何做用户需求分析?是不是需要准备什么?举例说明。
对baidu和google搜索引擎的原理了解多少?我们的搜索是搜索全文还是搜索摘要?(搜索全文,举了lucene的例子说明全文搜索原理)搜索量很大时,如何保证性能高效?(将搜索结果分页显示,一次只列出10个搜索结果)
有没有在linux下做过c++编程?开发平台是什么?写出该开发平台编译一个test.c文件的命令。
有没有开发过3d游戏引擎?做了一个什么样的游戏?这个游戏的特色在哪里?
osi 网络7层结构是什么?详述tcp连接3次握手的过程,如果在vc下开发,这个过程分别对应调用哪些windows api?(我发现这个问题是腾讯对所有人必考的问题)设计一个异步传输模式下的数据包结构。
对java ee框架下的spring、hibernate、struts了解多少?对一个 web服务器的原理机制,比如apache服务器的原理机制了解多少?iis呢?
叙述当一个用户登录qq时,与腾讯的服务器进行连接的过程。需要经过几层的路由?如果要自动选择最快的服务器进行连接,应该用什么方法实现?测试用户与腾讯的多个镜像服务器之间响应时间,是由用户发起测试还是由服务器发起测试?(服务器)采用什么协议测试?(icmp)
对于一个访问量很高的网站,性能瓶颈在哪里?可以做哪些优化,架构如何设计?
如何探测一个网络协议漏洞?发出的探测数据和接收到的响应数据是怎样的?如何判断是否存在漏洞?
最后一个问题印象最深,他说最后一个问题很简单(他笑),就是让我写一个双向链表的插入删除操作,要求1:每次插入删除之后,链表里的元素 ——假设是int——是按升序排列的;要求2:必须用c++实现 2个类cnode和clink,clink类里面封装add()和delete()方法。时间是20分钟,他要求我在这20分钟内,从12楼坐电梯下到1 楼大厅,在大厅找个桌子,用纸笔写好,然后上12楼交给他。
我在xxy寝室里写模拟文件系统写到4点睡的,写了一晚上的指针操作,这个问题我还是比较熟悉,按时交给了他。代码有优化的余地,不过没来得及优化,跟他说明了一下。注意的地方有2点,一个是指针操作的时候,删除哪个,连上哪个,操作顺序安排容易出错,要细心,还有就是添加和删除的结点位于第一个和最后一个时,处理方式有些不同。
最后他问我有没有什么问题,我问他什么时候给答复,他说下周内。然后他就叫下一个面试的同学进去了。
面完了才知道,这个面试官是晖哥所在部门老大的老大。。。大大牛啊~
结束,新的开始
回来之后跟李祺讨论了一下面试题,李祺和潘玉云都说bt。其实msra的面试题才bt,举个例子,这是李朋的一个电话面试题,比如 1~1000这1000 个数存在计算机中,随机删除其中一个,让你找出删除的是哪一个?这个问题是不是更bt?之所以举这个例子是因为我能答出来,李朋电话面试的其他问题我是一个都答不上来。。。可见msra面试的bt程度~