头条后端面试

人生难得几回搏,此时不搏待何时。这篇文章主要讲述头条后端面试相关的知识,希望能为你提供帮助。
UPD:周五HR面完了,给了口头OFFER。说大概两个工作日给offer,头条效率好高,从投简历到面试完成不到1周
1.打完比赛回来,废了一周,就开始计划后边的事情了。把网络,数据库,OS看了看。就投了几个简历,很快就收到了头条的面试邀请,就硬着头皮上了。
2.HR小姐姐把面试地址发了给我,约好时间就开始了。面试之前也看了其他大佬面试头条的经验,据说如果一面过了会接着面,面试是连续的。
一面:两点钟面试官准时上线,开始自我介绍。
(1)自我介绍
(2)聊聊学校经历,聊了聊ACM。面试官似乎也是曾经ACM圈里的,对这个比赛很熟悉的样子。
(3)聊聊项目,技术实现。
(4)mysql索引机制
【头条后端面试】(5)InnoDB为什么用B+树
(6)线程和进程的使用场景
(7)Session和Cookie,会话保持(这个当时答上来,我说的是Session过期了就自动失效,谁知道完全不对)
(8)开始做题:矩阵中的最长上升路径,DP很快就D完了。然后是一个单调栈裸题。
最后面试官给了一个github的地址,说我项目里面有一个没有实现的点,可以看看这个。然后准备二面。
一面的面试官人超级好,很nice,提示了不少给我。点赞
二面:过了三十分钟左右,二面面试官就来了。
(1)听过你的项目用了mysql,说说索引?
(2)InnoDB索引底层?
(3)C++ map怎么实现(因为面试官问我熟悉java还是c++,我说C++)。
(4)为什么不用红黑树代替B+树索引?
(5)为什么不用B+树实现map?
(6)开始做题:
          1.说了一个pv和uv,如何统计过去一个小时的pv和uv? (这个说了一个差的很远的答案,然后面试官放弃了,问了我一个算法题)
        2.区间求并集。这个是一个线段树的裸题,我当时不准备写线段树,因为调又得调一年。我说set可以做,然后大力写写写,面试官看了觉得OK,就问啥时候能去?说一月份,可以实习半年左右,就结束了二面。
  二面之后我觉得我没了,因为有个题答得稀烂,还有其实我不是很了解红黑树,就在哪瞎BB。然后接到HR小姐姐得通知,二面没问题,接下来是技术主管。
    当时惊了,因为二面的面试官给我的感觉就是我G了。
    然后又约了三面,是上午十一点。起床洗漱一下就开始了,头发还是乱的。
三面:十一点,面试官准时上线。
      (1)聊聊项目还是做题?(我:都行)
    (2)那你说说你的经历和项目吧(我:balabala的一堆)
    (3)好,开始做题。
  (4)同余听说过嘛(我内心:我强项,但是还是压制住喜悦说,听说过)。那给你一个数n,m个整数,问你用这个m个整数组成的最小的整除n的数?组成代表的是数位拼起来。(我当场来了个DP[i][j]:第i位选j%n=k,最后找等于0的。)
            面试官:那复杂度?
          我:nm。
        面试官:那你啥时候停止呢?
      我:这个。。。。emmm,我算算,然后用同余算了半天。。BalaBala了一堆
      面试官:OK,可以,下一题。
      我:这个题贪心,然后二分查找。但是我无法证明贪心的正确性,所以我会选择最正确的二分图匹配。
      面试官:好的,那你写一下。大力写写写,终于过了。
      面试官:什么时候能来实习?可以实习多长时间?(然后我说了说,就结束了面试)
三面面试官也很棒,很温和
总结:虽然是第一次面试,但是感觉很棒,虽然还没结果,有了结果再更新。校招实习生真的是很注重基础的,没必要去学那些框架,库啥玩意的,把三大基础课学好,算法和数据结构再精深一点我觉得问题不大。还有最关键的一点就是生活处处皆学问,因为面试官问了我项目里面的用户密码是怎么存的,这个问题要追溯到11月,我们去上海ICPC打比赛时,我得注册信息错了,然后我的密码忘记了,我打电话给工作人员让他们把我的密码告诉我一下,他们说密码不是明文,存的是Hash值。当我听到面试官这个问题时:很淡定的回答,我为了偷懒直接存的明文,但是我知道时不能存明文的,要存Hash值。得到了赞许的目光。
 
 



    推荐阅读