发信人: chenxiansf (影自南飞)
发信站: 北邮人论坛
分享一下我这两个月里找暑期实习过程中记录总结的面试经验吧,希望能对大家有所帮助。 - 本人研二,计算机专业,本科非计算机相关专业,无实习经验,暑期实习投递的是C/C++研发工程师,实验室研究内容主要与虚拟化和网络相关。编程语言熟悉情况以C ++、Python为主,会一点Java和Javascript
- 面试经验包括 阿里巴巴、今日头条、腾讯、360、网易游戏、人人网、美团点评、京东、网易、去哪儿网、PayPal、美丽联合 共12家企业
- 一般只要是电话面试的都有电话录音回放记录,现场面试和视频面试都是回忆版,不怎么完整。所以问题少的并不一定是问的少
- 基本各家企业都有安排笔试,笔试主要是在赛码网、牛客网和ceping_com上进行。笔试有难有易,主要是基础知识选择题加编程算法题
- 面试题有些我没有答上来,有些没有答对,所以我的回答就不贴出来了,基本只要百度查阅一下就会有详细答案
就以各家公司第一次面试的顺序来说吧 阿里巴巴2月底由学长内推,在官网填写了简历。选择的是阿里云的研发工程师C/C++实习岗位。 - 阿里校招官网 https://campus_alibaba_com/trainProcess_htm
- 阿里部门介绍 https://campus_alibaba_com/trems_htm
- 阿里岗位介绍 https://campus_alibaba_com/traineePositionList_htm
- 校招进度查询 https://campus_alibaba_com/myJobApply_htm
电话一面(团队1)-3月7日(首先简历评级肯定不高,面试官电话联系我时我说现在没时间能不能明天,他说明天的话简历可能就作废了,所以只好硬着头皮上了。因此简历很重要,要精心制作) - B树、存储模型(B树、B+树与数据库引擎这块是热门问题)
- 字典树构造及其优化与应用
- 持久化数据结构,序列化与反序列化时机
- 大规模文本文件,全是单词,求前10词频的单词(Top k问题是热门问题)
- 堆排序与其在求10词频问题中的应用
- 字典树与其在统计词频上的应用
- 红黑树的特性与其在C++ STL中的应用
- 红黑树的调整
- 贪心算法与其弊端
- 能取得全局最优解的算法
- 动态规划的原理与本质(动态规划dynamic programming是笔试热门题型)
- 01背包问题的详细解释
- 进程间通信方式
- 数据库中join的类型与区别(如果平时不怎么写业务代码,可能不会经常用到数据库,建议面试前多准备一下)
- 数据库的ACID
- 实现bitmap数据结构,包括数据的存储与插入方式
- 实现unordered_map,键为string,value不限
- 实现unordered_map过程中的冲突解决办法
- 一串int型整数存放磁盘上的压缩存储方式,包括写入与读取及内存无法一次性读取时的解决办法
- 对Java的了解
- Bloom过滤器处理大规模问题时的持久化,包括内存大小受限、磁盘换入换出问题(Bloom过滤器是热门问题)
- 线程池的了解、优点、调度处理方式和保护任务队列的方式
- 对象复用的了解
- 零拷贝的了解
- Linux的I/O模型(I/O模型是热门问题)
- 异步I/O的详细解释
电话二面(团队1)-3月10日(二面一般对项目及各个知识点问的比较深入,答不上来的话可以直接说不太清楚,心态不能崩) - 线程池对线程的管理方式,包括初始化线程的方法、线程创建后的管理、指派任务的方式
- 同步I/O与异步I/O的区别,包括如何定义异步I/O、I/O实质上交给谁完成、如果实现异步
- Direct I/O 和其与异步I/O的区别
- Linux内核如何调用Direct I/O
- Bloom过滤器的优点与原理
- 字符串hash成状态位的具体实现方式
- hash函数如何保证冲突最小
- 文件读写使用的系统调用
- 文件读写中涉及的磁盘缓冲区与其手动flush问题
- 数据库join的具体含义
(二面后一周官网显示已回绝,同时新开了一条内推进度) 电话一面(团队2)-3月16日- struct与class的区别
- STL库的介绍(投C++的要对STL这块多上心)
- vector使用的注意点及其原因
- 频繁对vector调用push_back()对性能的影响和原因
- vector重新分配内存的大小与方式
- hashmap的实现方式
- map的实现方式
- 红黑树的了解
- C++虚函数的具体实现原理(虚函数和虚函数表是热门问题,一定要弄清楚其原理与实现)
- 实现编译器处理虚函数表应该如何处理
- 析构函数一般写成虚函数的原因
- 解释哲学家进餐问题
- 描述银行家算法
- 实现一种算法解决哲学家进餐问题
- 大数量整数的去重问题
- 如果用bitmap解决大数量整数去重问题,计算当全为int型整数时需要消耗的内存
- 算法题:环形公路上加油站算法问题(此题比较经典,可百度到)
现场二面 & 现场三面(团队2)-3月22日(团队2在北京,所以邀请我去望京现场面试的) - 变长编码的实现与传输问题
- 手写实现智能指针类
- 布隆过滤器的特性及将其特性反转的实现(反转后即查到的一定存在,查不到的不一定不存在)
- STL底层的介绍
(二面后一个月官网显示已回绝,同时新开了一条内推进度) 电话一面(团队3)-4月28日(此次一面是在笔试后一天打来电话的,但面试官并不知道笔试成绩,面试时临时查了笔试成绩) - TCP与UDP区别
- TCP建立连接的步骤(TCP连接建立与断开是热门问题)
- 对云计算网络的了解
- 对路由协议的了解与介绍
- 常用的Linux命令介绍
- 对awk与sed的了解
- C++、Java和Python的联系与区别,包括语言特性、垃圾回收、应用场景等
- HashMap和HashTable的区别与底层实现(此为Java题,即使投递C++方向,仍然要会一些Java)
- 二叉树的遍历与实现
电话二面(团队3)-5月6日(二面主要探讨项目与实现细节,并给出了一些额外要求让人立即实现。保持好心态一点点去想即可,面试官也会不断给些提示) - 网页解析的过程与实现方法
- Bloom过滤器的实现
- 网络层分片的原因与具体实现
电话加网页写代码三面-5月11日(三面运气比较好,面试官是个北邮的九几级学长,没有怎么为难人。不过不知道是不是交叉面) - 打开http://collabedit_com/ 在线编写代码
- 算法题1:给定有序数组,取前面某段调整到最后,即进行一次旋转操作后,对任意元素进行快速查询。敲代码不运行(leetcode上有此题)
- 算法题2:n对括号正常匹配情况的枚举输出。敲代码不运行
- TCP三次握手的详细过程
hr电话面(团队3)-5月11日- 了解实习时间
- hr介绍整个团队后让选择实习地点,北京或杭州
- 英文自我介绍(最好提前准备一段英文自我介绍)
实习生录用意向书发放-5月13日今日头条3月初通过论坛上一位学姐内推,直接发送的电子版简历。此阶段暑期实习招聘还没开始,基本都是散招,面试的过程很随意。二面结束后面试官通知面试未通过 - 招聘官网:https://job_toutiao_com/campus/summer
现场一面 & 现场二面-3月9日- 算法题1:无序数组查找第Top k元素。手写代码实现
- 算法题2:并查集。手写代码实现
- Python中range与xrange的区别
- 算法题3:链表反转。手写代码实现
- git merge与rebase的区别
4月份在官网上又重新投递了一次,4月18日参加了今日头条的第二场在线笔试(第一场是3月30日)。笔试通过后可以在线选择是现场面试还是视频面试,我选择了视频面试 视频一面-4月25日(一面面试官长的像赵又廷,视频一开当时我就惊呆了) - 算法题1:枚举给定数组中的所有非递减子序列。敲代码运行
- 算法题2:枚举给定数组的全排列。敲代码运行
- 介绍I/O复用技术,epoll优于select的原因
- 介绍线程池
- 图的邻接矩阵和邻接表的表示,邻接表的数据结构。敲代码不运行
视频二面-4月25日- 算法题1:给定二叉树,假设相连接的两结点间距离为1,求所有结点中距离其他所有结点距离和最小的结点。敲代码运行
- 介绍C ++内存管理(C ++的内存模型是热门问题)
- 对文件系统的了解
视频三面-4月25日- 算法题1:给定数组,快速求出所有数右边第一个比其大的数。回答思路
- 算法题2:给定k个数组,每个数组都是有序的,且每个数组最大值-最小值<1000,1<k<1000,求所有数的中位数。回答思路
- 进程与线程区别
- STL内存分配
暑期实习录用通知发放-5月12日
腾讯2月底由学长内推,在官网填写了简历。选择的是OMG(网络媒体事业群)的“软件开发-后台开发方向”岗位 - 腾讯校招官网 http://join_qq_com/index_php
- 微软公众号“腾讯招聘”,流程进度以及面试通知都在这上面查看
电话一面-3月25日(内推时是由SNG(社交网络事业群)面试的,面试官说简历所有事业群都能看到) - C和C++的特点与区别
- C++的多态
- 虚函数的实现
- C++内存分配
- 几大存储区
- Python的特点
- Python有哪些实现(此处是指CPython、Jython等)
- CPython的解释执行过程
- Python里面垃圾回收是怎样的
- Python多线程介绍
- 多线程可以使用多核吗
- 协程的了解
- cgi的了解
- http协议get和post的区别
- 进程间通信方式
- 建立TCP服务器的各个系统调用
- 处理多个套接字的I/O复用介绍
- epoll为什么更快
- 虚拟内存的概念与介绍
- 单链表的倒置
- 红黑树的了解与其查找复杂度(红黑树的特性和复杂度是热门问题)
- 快速排序的优化
- 字符串匹配算法
- TCP的三次握手与四次挥手的详细介绍
- TCP的超时等待的介绍
- 流量控制的介绍
- 数字证书的了解
- http和https的区别
- 对数据库包括其引擎的区别与了解
- 数据库索引的作用(数据库索引是热门问题)
(内推时间大概在清明节结束,结束后就能在公众号里面看到自己挂了。笔试是在4月2日和3日进行的) 现场一面-4月17日(笔试后的现场面试面的是IEG(互动娱乐事业群)) - C++内存模型
- 程序编译链接的过程和函数找不到在哪个阶段报错
- 线程间通信
- 游戏中打怪时已经各个小怪的坐标,你放一个技能是圆形范围,快速求能打到的小怪(范围搜索问题,热门场景考察题)
- 虚拟内存的意义与作用
现场二面-4月19日- 无锁编程解决单生产者多消费者问题和多生产者多消费者问题(此题问的比较深)
- 魔兽世界10人房间,现在组队规模有3人,有5人,如何让每个人等待的时间尽可能少,即将时间线上哪些队伍组合在一起开始一个游戏(01背包问题的应用题)
- 快速排序的稳定化算法(此方法可百度到)
现场hr面-4月20日- 对游戏行业的了解与感受
- 对加班的接受程度
- 对深圳的接受程度
- 已经拿到的offer
实习生录用函发放-4月26日3603月初在官网投递,选的是搜索事业线的C++研发。
360的两场笔试分别是3月18日和3月25日,我参加了第一场 - 2017年招聘官网:http://campus_chinahr_com/2017/360/internship_html
- 微信公众号:“360招聘”, 360招聘的流程进度都是在公众号查看
现场一面-3月31日- STL map
- 多线程同步、线程池、无锁编程
- I/O模型, select, epoll
- MySQL存储引擎, B+树
- shell指令, grep参数
- 设计模式, 手写单例模式(设计模式中单例模式是热门问题)
- 算法题:平面上百万个点,设计数据结构求每个点最近的k个点(范围搜索问题)
- 判断二叉树是不是镜像,手写翻转二叉树
- memcache了解
- TCP超时等待
(360面试是一站式的,由于我一面后临时有事就回学校了,hr说后续再通知去现场二面) 现场二面-4月14日- libevent的了解
- 线程间通信
- Linux内核的了解
现场hr面-4月14日- 实习时间
- 介绍搜索部门的业务
- 介绍搜索的盈利与发展方向
- 针对我对360云盘关闭的原因作出解释
电话发放offer-4月20日hr打电话说要给我发offer问我接不接受,我说能不能考虑一下,hr说最晚下周一前答复。晚上想了想打电话过去说接受offer(因为当时零offer),接电话的是另一个人,说会帮我转告。然后一周后就收到结果为待定的邮件了,之后就一直备胎到现在 网易游戏网易游戏有两大事业群,分别是“互动娱乐事业群”和“雷火&盘古事业群”。互娱的开发基本只招名校,官网上的职位也有写学校要求,北邮不在其中,不过仍然可以投递。 2月底在官网投递的,选择的是雷火&盘古事业群的研发工程师。 - 网易游戏暑期实习生招聘官网: http://game_campus_163_com/shixi/zhiwei/zaixian/sjl/2016/12/01/14261_658747_html
电话一面-4月10日- C++的构造函数可以为虚函数
- 动态绑定的介绍
- 引用是否能实现动态绑定,为什么引用可以实现
- 介绍所有的构造函数
- 什么情况下要给类写拷贝构造函数
- 成员初始化列表的概念
- 为什么用成员初始化列表会快一些
- 遇到coredump要怎么调试
- 内存检查工具的了解
- 调试程序的方法
- 对数据库的了解
- mysql执行的慢,如何分析
- 数据库如何建立索引,以及索引的实现
- 对于游戏开发的了解
(4月25日hr打电话来邀请去杭州参加现场面试,北京的学生来往交通费用按最高1000报销(不论火车飞机)。最后因为种种原因我没有去) 人人网人人网的笔试有两场,我参加的是4月9日的第二场。人人网招聘是在大街网上的 视频一面-4月13日(视频面试是在牛客网进行的) (其他问了些小的知识点,不多,也比较简单,结束后就全忘记了) (视频二面原先是通知为4月20日,因为人人网的问题后来hr打电话通知到4月27日,最后因为我的安排冲突放弃了面试) 美团点评2月底在论坛上由学长内推,官网填写的简历 - 实习生招聘官网:http://campus_meituan_com/?source=51job#/main/intern/post
- 微信公众号:美团点评招聘
现场一面-4月14日- C语言多线程的介绍
- 手写二叉树最近公共祖先
- stl介绍
- B+树详细介绍,手画B+树
- 数据库索引,联合索引,结合B+树分析
- C/C++内存模型
- DOM树的实现模拟
- 数据库引擎介绍,innodb和myisam的特点与区别(数据库引擎一般做业务的都会有问到)
- DFA的过程与正则的区别
- 介绍了解的设计模式
现场二面-4月14日- 手写层序遍历二叉树并输出结点层数
- python的unicode字符串与str联系区别
- python的yield(yield以及协程是python的热门问题)
- http协议与TCP联系
- http请求类别与get和post区别
- python多线程与协程联系和区别
- python反转list
- python文件编码与字符串编码
- 设计算法实现快速得到变化栈的最大结点元素
- 对上个算法进行空间占用小于n的优化
(美团的两个面试官说法都比较一致:一是他们主要招做业务的,做底层这种几乎不怎么招;二是他们很看重实习时间,小于3个月的要求会很高) 京东3月初在官网投递。京东这边投递时不分方向,面试只能说是看运气,分到对口的面试就比较容易 - 招聘官网:http://campus_jd_com/ 官网和公众号都能看流程进度
- 微信公众号:京东招聘
现场一面-4月15日- 手写C语言版strcpy实现
- 最高效率判断两链表是否相交,及求出首次相交结点(此题leetcode上有)
- 一个只含有虚函数的类的size为多少
- 含虚函数类的虚函数表是存放在哪里的
- 手画字典树
- 介绍更高效的建树判重数据结构
- 介绍bloom过滤器
- 给定数1-100,从中抽走一个数后形成一个数组,判断抽走的是哪个数
(由于我面的是京东云,所以一面面试官说我做的东西和他们很契合,非常希望我过去) 现场二面-4月15日- 京东云的发展状况,团队干的事,与业务的接合,在国内的地位等等
(二面是部门boss面的,没问技术问题,主要和我聊京东云的状况。感觉京东云这边应该比较缺做底层的人,所以如果有做底层的可以考虑一下京东。还有就是京东云在北辰世纪中心,离学校比较近) 现场hr面-4月19日实习生招聘录用函发放-4月25日网易北京3月初投递的网易,当时想的还是能在北京实习,所以投的是网易北京。建议如果投网易的话还是投网易杭州比较好 - 招聘官网:http://campus_163_com/#/internship/0/0/2
现场一面-4月21日 & 现场二面-4月21日(记录的时间比较晚,所以不少问题印象不深了,不过总体也不算太难) - 内存池的实现与线程安全的接口(这个问题挖掘的比较深)
- DFS的一个算法题
- 日志系统的了解
- MVC的了解
- I/O复用的水平触发与边缘触发
(4月25日电话询问了一下具体能实习的时间后再无音讯) 去哪儿网3月份在官网投递 - 招聘官网:http://qunar_zhiye_com/intern
现场一面-4月23日- 是否能转java开发
- 范围搜索算法(仍然是这个热门场景题)
- 单条记录高并发访问的优化
- 算法题:n乘m的矩形填充到N乘M的矩形中能否填充满问题。回答思路
现场二面-4月23日- 观察者模式和职责链模式
- 多线程的同步
- 菱形继承与接口目的
- 面向对象的三大特性
- MVC设计模式
- 什么样的代码是优秀的代码
- JAVA集合类的了解
现场hr面-4月23日和hr聊了很多,关于去哪儿网的业务,实习offer的选择等。hr的意思是相比特别大的公司,在去哪儿网的优势是可以有更多快速的晋升机会 实习生录用函发放-4月26日PayPal三月底左右在官网投递的,4月13参加笔试。笔试题目非常难,4道算法题。题目虽然大多有思路,也写了很多代码,然而一道题都没有AC。不过还是收到了面试邀请 视频一面-4月24日(视频面试是在牛客网进行的) - 字符串分割与查找匹配算法
- 一个文件预计每行有个int型整数,需要读取文件并查找是否含有目标整数
- 线程池的功能与目的
- python闭包
- python生成器
- 英文自我介绍与英文问答(口语差的让面试官目瞪口呆)
拒信-5月10日美丽联合(蘑菇街)3月份在论坛内推,官网填写的简历 视频一面-4月21日(视频面试是在牛客网进行) - 算法题1:二叉排序树的最近公共祖先,敲代码不运行
- 算法题2:快速排序,敲代码不运行
视频二面-4月26日- 词法分析与语法分析的过程
- 操作系统内核的划分
- 无锁编程
hr电话三面-5月5日
三面通知的是视频面试,但最后hr打电话来说就电话面试吧。聊了聊我工作的意向以及offer情况。因为这时已经拿到腾讯offer,所以和hr商量后就没有接收这边的offer 其他企业(下面是一些投递了但没有面试的企业,原因包括内推没回应、笔试未通过、面试电话漏接及面试时间安排冲突等。我也把列出来好让大家知晓一下流程。就按我认为的公司名气排列吧) 谷歌谷歌可以在官网投递也可以关注微信公众号“Google招聘包打听”了解招聘信息。每年codejam上也会有几次比赛,建议有时间都参加下。 微软微软可以在官网投递,同时可以关注微信公众号“微软招聘”了解信息。上半年3月和4月会安排实习生招聘的笔试,在hihocoder上进行,都是算法题。 - 招聘官网:http://www_joinms_com/cn_c/index_html
百度今年百度官网的实习生招聘开始的比较晚。今年的笔试时间是4月27日。 - 招聘官网:http://talent_baidu_com/external/baidu/index_html#/intern/12
华为今年华为的笔试时间与京东冲突了,但实际笔试前很多人都直接收到去面试的通知了。投递可以在官网投递,笔试时间是4月7日。 - 招聘官网:http://career_huawei_com/reccampportal/campus4_index_html#campus4/pages/home/trainee_html?type=0&faqtype=3
携程技术中心携程的通知面试电话好像和推广电话没分开,被很多人标识了。所以找实习期间最好关闭手机的骚扰拦截等功能 - 招聘官网:http://techshow_ctrip_com/campus/
新浪&微博- 招聘官网:http://sina_wintalent_cn/wt/sina/web/index/CompsinaPageindex
宜信大数据没有笔试,直接电话通知面试 - 招聘官网:http://cbdic_creditease_cn/about#join
招行信用卡中心招行信用卡中心如果是异地面试的话不报销交通费用 - 招聘官网:http://cmbcc_zhiye_com/home
完美世界完美世界的C++方向笔试题是我找实习过程中遇到的最难的笔试题 - 招聘官网:http://company_dajie_com/nb/minisite/wanmei/index_html
IndeedIndeed是家日企,招聘相当于秋季校招。上半年安排三次评测,每次都是几道算法题,最后取前几十名去日本面试,好像报销所有费用。Indeed的招聘宣传特别多,到时按宣传投递即可 美图- 招聘官网:http://hr_meitu_com/school/
搜狗好像没有笔试 - 招聘官网:http://campus_sogou_com/compsPage_html?key1=JOB002&key2=16
搜狐- 招聘官网:http://www_sohucampus_com/
唯品会当时投递时只有测试岗 - 招聘官网:http://campus_vip_com/vip/campus/trainee_jobs/
CVTE- 招聘官网:http://campus_cvte_com/
其他经验本来准备再写些刷题经验之类,但是时间比较紧张,所以就简要说下我的经验吧。 - 基础知识类的小题非常推荐刷牛客网,有分类有真题有错题整理有答案讨论
- 编程算法题比较推荐刷leetcode,但如果基础比较低,推荐看些数据结构和入门的算法书打基础,刚开始不推荐看算法导论这种
- C ++方向推荐看C ++ Primer
- 简历建议找有经验的学长把关,这个比较重要
- 项目经验上,如果实验室没什么合适的项目往上写的话,一定要提前准备一些练手项目。这些项目并不一定要求多难多复杂,但是往简历上写的话一定要能把各个技术点说清楚
- 实习经验很重要,不过没有也没关系,争取做些优质的练手项目
- 面试时如果遇到算法题而且一下没想到好的算法时,可以先说出显而易见的复杂度较高的算法来拖延思考的时间,这个我觉得比较有效
- 最后还有一点就是我觉得不管是投递什么方向,其他方向的知识都要学一点,这样给自己选择的空间就更多一些,同时学习各方向的知识会产生相互促进的作用
|