第一次是一家香港公司,跟现在公司的领域很相近。笔试是3个小时的,不过里面题目难度中性,都是改编题,印象中其中一题是霍夫曼编码之类的有点好玩。反正一个半小时做完了。
后来电话面试就坑B了,一接电话是浓厚的印度英语!结果就是对方的每一个问题我都要跟他确认一下,两边都不爽。电话面试持续了45分钟左右,上来先问项目经历,然后主要问C++11特性: move, forward, 智能指针,还问了些模板什么的。另外在扯CPU的cache warm。这个电面妥妥的跪了,一方面C++11的某些细节我没有掌握,但我觉得最大的问题就是语言不通,这个怪我听力不好,但是咖喱味的英语真乃从未有过的体验,下次不敢了。
======
第二次突然一猎头在领英上找到我说有杭州的机会,那就试试。结果是X方量化。
之前一次听同事说X方面试难,如何如何厉害,也想见识一下。这里客观陈述一下
- 在线笔试。题目是牛客网的通题,都是套路题,最后两道编程对于不常刷题的人来说时间有一点赶,不过难度就是LeetCode Easy的难度;
- 面试第一轮。问各种C++的问题,但是基本是STL容器内部运作的机制,并且当我讲到C++11特性的时候(比如move)对方并没有细问,故猜测該公司用C++11的地方可能略有局限。随后一道公司自己出的算法题,考数据结构设计的。在面试官给出某种场景的前提下,我给出了个性能更好的解决方案,不过面试官也换了场景让我的方案往他预想的地方靠,最终终于实现了一统~面试官对时间复杂度的计算有要求。
- 面试第二轮。也是各种C++问题开场,难度一般。遂给了一道算法题,当时懵了竟然想到用动态规划,但是后来经提示有O(N)方法于是用了贪心法,然后面试官又小改了一下测试我是不是真的理解了。另外就是讲到C++模板还有我的项目经历,我提到之前使用过CRTP做东西,于是让我写了下CRTP长什么样。
- 面试第三轮。一个中年大叔,一进门就接了一分钟电话,然后让我做自我介绍。当时心想肯定是个领导于是开始忽悠简历,然后做了个滑动窗口最大值的原题就结束了。
- 面试第四轮。后来了解到是CTO,反正被带去吃了个午饭瞎聊然后说问个小问题。蓄水池抽样,不过可惜我当时拉肚子加上对概率不敏感,瞎凑对了抽样概率但是一直卡壳没法证明它是对的,估计让大佬失望了哈哈。
- 然后是HR面,不细说了。
最终结局是Offer隔了两天收到了,但是我与猎头都不是很满意。个人觉得面试上没有安排系统设计的问题可能是对方的一个疏忽点,也可能觉得我就是个junior而已怕把我伤了,其实可以试探一下的。
目前的教训是面试之前不能乱吃东西,第三轮到第四轮的时候肠胃就开始闹腾。第二就是还是要熟悉一下基本的概率套路,自己在这方面是弱点。第三就是下次面试之前要打听一下薪资待遇,这次还特地周末看了看书,现在想想瞎紧张个啥….