这一周的实习面试(头条+搜狐+美团+百度)
趁着烤漆写完了一个编译器,结束了学校编译原理的课程,
看了一些Java的基础知识,在实习僧上投了几份简历,有两个通知去面试了,
头条和百度是找学长要的内推名额,
(结果头条说Java后台岗满了,能不能面测开,我想着都内推了就去了)
本周从周一到今天周四,一天面一家,现在可以说是休息了
具体问了哪些方面有空来补充吧
1. 今日头条测开(笔试+二面)
头条最开始是在实习僧投的实习,不过过了一周一点反应也没有,就找了上一届的学长直接内推,过了几天HR联系说是后台实习岗位满了,就去面的测开。
最开始我以为测开是写Python脚本测试的那种,去面试的时候是在办公楼里面,路过了很多工位,感觉是一个很有活力的公司,工作氛围挺好的。
上来给我一个笔试题(OS:我是内推来的,给我笔试是干嘛呢?限时40分钟,方的EP,直接就开做了):
(1)给一个数组,找到和为50的情况个数(Two-Sum,我个面试官分析了一下有重复元素和没有重复元素的情况)
(2)给一个JsonA和JsonB,写一个算法识别是否相同(题目也没给啥输入要求和语言要求,我直接用Java HashMap做的)
(3)数据库写SQL:给一个表,有不同的班级,查询一个班上平均分大于科目A的总人数(就一个group by 不过写的有点问题)
(4)设计微博点赞的MySQL表
(5)如何对IM通信工具(如QQ)做测试,写测试报告,从哪些方面考虑(这道题XJB回答的,对测试一点不懂)
一面:
叫我手写了一个算法题(很快做出来了,所以记不清楚了),可能是LeetCode Medium|Easy难度的吧
问了一些Java里的问题...
二面:
上来说觉得我算法功底还可以,问我愿不愿意做测开的工作,我说测开会写自动化测试代码吗?面试官说一点也不写,只写test case,然后我说的确一点兴趣也没有,就结束了...说是会帮我找其他后台缺人的,再去面试。
(头条本来是最想去的公司了,离学校又近,300|400/day 对实习生很友好)
2. 搜狐后台(二面,挂)
一面
手写链表反转;
topK问题,没写代码;
老虎吃羊的问题;
Python基础;
二面
操作系统I/O;
C程序编译的整个过程;
CPU构成(计组忘得太多,就答出了寄存器、PC);
B+树查找;
搜狐这场可以说是我面的最差的一次,二面二十分钟不到就结束了,关于操作系统和计算机组成问的很细,当时没怎么复习去的,被怼的怀疑人生......
3. 美团后台(二面,等通知)
总共两个小时
一面
手写层次遍历二叉树(我的DFS,面试官说可以用BFS,空间复杂度更低);
手写Z字形遍历二叉树(因为我第一个方法是DFS,保存了每层遍历的结果,所以直接用奇偶数判断是否逆序输出...20s解决了问题,场面有点尴尬),这两道应该是LeetCode原题;
Volatile关键词;
问项目细节;
autowired底层如何实现;
atomic包(忘了)
JVM内存 xinshen
二面
一个递增数组,找到下标和值相等的部分(我用的二分);
Java多线程的锁有哪些?
一个C++程序编译的整个过程;
linux启动的第一个进程(???这个还真没注意过,后来发现是基础);
fork的返回值
什么时候会产生分页中断,中断是什么?(这题回答错了,应该是挂在这里了)
从用户态到内核态如何转换
4. 百度云计算(三面,过)
面试时间最久,花了三个小时,不过所有的手撕代码和智力题都过了,操作系统回答的很烂
Summary
-
操作系统和计算机组成是基本功,两场面试全挂在了操作系统上...买了本Unix环境高级编程配合着CSAPP慢慢补
-
读书比工作轻松多了