淘天面经(还愿)
这篇还愿的经验贴之前就几乎写完了,后续又出现了一些别的事,特别中间学校的事情比较多,有的还比较难受,就一直没有发出来。趁现在还没到秋招的时候,赶紧发出来有人看到或许也能有所帮助。
timeline:
3.28 投递
4.2 收到笔试和测评(笔试在随后的一个考试日期做的,不记得哪天)
4.10 一面
4.16 二面
4.26 三面(本来会更早一点, 没时间就往后约了几天)
5.8 四面(hr面)
5.9 意向
由于面试的时候我没有录音,所以只是尽可能回忆当时的情况,不仅是本次面试题,也包括结合其他面试的一些小的感想
(另外不确定这种面经是不是符合规定的,如果有不合规定的情况可以联系删除)
一面:
一面的时候考察包括三个部分:项目+基础+算法题
项目部分比较个人化,我是之前有一段实习,项目基本针对实习里做的事来问,需要很具体地讲出来你做了什么、为什么要这么做之类的,在这次面试里问的不是特别多,大概20min多一点的时间;
结合其他的面试经验,抽象出来对于实习/项目的准备可以包括,项目背景(为什么要做这个),具体做法(怎么解决的问题、为什么要这么做、而不是其他的方法?)以及可能的一些拓展(这个在本次面试没有问到,在别的面试里出现过,可以针对性准备)
基础知识部分问的也没有偏难怪,都是必须掌握的一些问题
重点考察在OS,但是问的问题也很常规,进程(概念、切换、和线程对比、通信),虚拟地址;
数据库问了索引相关的,哪几类,优缺点
计网印象中也问了一个问题,但是记不清了
算法题问的是二叉树最长路径,leetcode hard但是常规题,这个几分钟就做出来了;
面试时间一共40多分钟(好像),最后反问环节问了面试官觉得我的表现怎么样,反馈说挺好的,三天左右出结果
二面:
一面第二天就约了二面的面试,这次面试是我所有面试场次中难度绝对排到前三的场次,一共面了两个小时
考察的范围包括:项目+基础+场景设计题+代码题(非算法题,也是设计类型的)
项目就不再赘述了,问的问题就是上面总结的那些,加上具体的描述和面试官可能的追问以及对应的回答,大概用半个小时多一点的时间,印象中没有深问拓展的问题(可能问了一个简单的开放性问题,但是也是个人强相关,参考意义不大)
基础部分一方面是直接问的问题,比如网络里面关于tcp的基础问题以及数据结构里的vector、list、map、unordered_map以及它们的区别,C++语法里面关于虚函数的经典问题(这部分我总结了一些问题暂时没找到文件,可以再找一下)。
主要是操作系统的考察,除了基础的八股简单考了两道(进程、页表)之外,主要通过场景题考察,
1.比如设计一个程序,要求设计一个方式记录下我的这个函数在一段时间内调用了多少次,要求考虑多线程,开销尽可能小;
2.现在来了一堆流量或者说请求,要求在这些请求里面随机抽样,对每一个请求的抽样概率都相等,怎么设计这样的抽样。这个当时想了一些时间,最后的设计方法几乎到正确答案,但是没有正确
印象中还有第三题,但是想了好一会儿确实不是特别清晰
手撕题不是一个leetcode类型,是要求写一个程序,满足测试次数和请求强度要求,并且请求处理尽量平滑,这个当时不太懂,请教了面试官之后慢慢写出一个多线程的程序,符合要求,但应该不够完美。
面试总时间超过一个半小时,接近两个小时,感觉几乎是压力最大的一场面试(也可能是第二大的),收获很多,感觉面试官很专业,问问题的时候感觉比较严肃,后来反问阶段才感觉人其实挺好的
三面:
三面比较清晰,上来就是问项目,问了两个项目,问具体内容、做这个项目的意义之类的,问答语速都比较快,当时有点紧张有个扩展的问题答的不对,不过面试官很好,说没关系,心态稍微平复一点,20min左右的时间。
然后问三个题,
第一个是一个智力题,赛马问题;
第二个是一个算法代码题,leetcode里的组合问题(不太清楚是哪一种了,但是比较基本DFS可解决);
第三个问题是一个场景题写一个模拟,场景是扑克牌换位后,抽到4张某种数字牌的概率,代码模拟出来,然后问了一下知不知道怎么算概率,我说可以推一下不过费时间,然后估算了一个概率,后面模拟看应该估得差不多。
后记:
这次几次面试我其实都挺紧张,包括二面之后也比较忐忑,感觉有些希望但是不是很确定,虽然最后的发挥也都还不错,拿到了offer,还是觉得这个过程中也有一些运气的因素,比如出的刚好是我会的题,面试官可能也比较喜欢我的回答或者表现之类的,总之我觉得算是艰难时期的一件运气很好的事,直到现在也很感谢。希望后面的运气也可以很好,也希望这篇面经可以帮助到朋友们,大家一起加油。