由于小米迟迟没得到回复,而且对于面试我自我感觉比较不佳,所以我就当其是挂了。之前招银网络电话面试也迟迟没得到消息,我内心很慌乱。于是又投了许多公司。包括bilibili,知乎等。
上周收到了深信服的笔试通知,上周五晚上做了一下,结果比较惨,编程题100%的就一道,还是特别简单的以前写过的哈夫曼树的建立,还是填空。。。
本以为自己肯定挂了,结果没过几小时收到了笔试通过的通知,我真是惊为天人,一惊其速度,二惊我竟然过了。
第二天周六我去参加面试,面试官问了一些问题,我写几个我记得的:
- linux下守护进程的创建。(我答道新建session,关闭一些fd,修改当前工作目录为根目录。修改位掩码没答道(但实际上我觉得只要新建一个session就差不多了,不收到SIGHUP就行了))
- linux下的僵尸进程。(比较简单)
- 一个人在一小时内等到车的概率为p,请问其在三小时内等到车的概率为多少?(答案是1-(1-p)^3,但我觉得有待商榷)
- select函数的签名(我基本答到了,最后timeout我忘了,不过面试官没说什么)
- 为什么epoll效率高于select和poll?(我只说了select要遍历0~第一个参数。(在我现在看来,基本没答什么,poll当文件描述符数目很大的情况下,需要在用户态和内核态拷贝大量数据,而select在fd分布比较稀疏时,需要遍历很多“空”的文件描述符。还有一些其他细节))
- 子字符串查找算法。(这题真是撞枪口上了。我前不久刚看完《algorithms》的这一部分,无非就是KMP,Robin-Karp,Boyer-Moore)。之后大概说了一下KMP思想(自动机)
- TCP的一些简单内容(三次握手做什么,我竟然大概答出了,我也是惊呆了,毕竟我还没开始复(yu)习这部分内容。以及TCP相比UDP有什么优点,可靠)
- 在NxN的盘上随机生成M个雷。(我说了《programming perls》里的从N^2里随机取M个数的方法,但面试官不怎么满意)
顺利通过一面。第三天参加二面。先是一个很和蔼的面试官详细问了我的项目,以及问我将一个项目做成一个产品要怎么创新,有什么能赚钱的点子?
看我这屌丝样,就知道我肯定答不出来,我吱吱呜呜说了一些(这些在我看来没啥用):(,然后分析了这些方案的缺点:(,最后得出结论我不适合创业:(。
于是这个面试官让我等等。
一小时后,我开始了第三面。这次好像是boss面(因为我看见我简历上写着“boss面”)。大致问我有没有参与什么开源项目(我说tilda在xfce下有bug,于是我想修复bug,最后我发现那一部分代码好像没错,结果是啥也没做。。。),以及给一些服务器分配任务的算法(服务器有一定的权值。我又用了《programming perls》里的那种方法,将权值平铺,然后随机选值。面试官给了种更好的做法,遍历,给每个服务器分配任务后,将其权值减少这些权值的最小公约数(只要计算一次)。确实,此方法效率高些,但我的方法能完全随机,不过好像题目并不要求完全随机,只要负载均衡即可)。
第四天,hr打个电话给我,告诉我,我有机会申请sp,要我第五天早上参加面试。
第五天,我起得较早,打开手机看短信和邮件,然后发现我小米过了:),我激动得差点跳起来。但我还是淡定去参加了深信服sp面试,面试主要还是问项目经验,以及我之后想做什么方向,我说云计算,然后又改口网络安全(现在让我选还得是云计算)。我自我感觉还不错,心想这下sp稳了。
第七天,我去拿offer,发现我sp没过(打脸),我才发现我是多么弱,过几个简单面试竟然就沾沾自喜,连个sp都拿不到。痛定思痛,我决定好好学习,来年春招再好好投。
如果深信服我sp过了,我觉得还会好好思考小米与深信服,但现在我更倾向去小米,一来人生地不熟(新鲜),二来面试官厉害些:)。
正应了孔子那句话:
富而可求也;虽执鞭之士,吾亦为之。如不可求,从吾所好。
之后打算:如果小米急着签三方,我就与之签了;如果不急,那就不急。反正来年我都会参加春招。