bat面试总结

bat是国内互联网行业的龙头老大,招聘要求自然也是互联网行业最高~面试过程一般考查四个方面:基础+算法+数据结构+项目。

基础:c/c++/java等语言基础,这个根据你应聘所选的语言来定(一般不会考语言最基本的东西,都是考精髓部分);linux用户态的API函数(通过API函数考察linux的一些机制和原理性的东西);多线程和网络编程。

算法:主要就是查找和排序之类的算法(因为互联网公司的技术核心都体现在web服务器方面,web服务器就是不断在进行查找,搜索等工作,随着用户信息量越大,搜索的效率就越重要,因此会考这些算法),而且都是亿万数量级别的查找和排序,一般都要使用外部排序而不是简单的内部排序。还有一些ACM中的常用算法。

数据结构:一般会考哈希表+各种树(平衡二叉查找树,字典树等等),哈希表和各种树在服务器上是最重要的数据结构,它们可以将搜索查找等算法的时间复杂度降到常数级别。一般大公司的信息量动辄都是亿万级别,如果用一般的线性结构来存储的话,搜索排序时间复杂度你敢想吗?

项目:项目是核心。当然基础性的东西也很重要,否则到不了项目面,你就被pass了。项目最好能和你所应聘的公司相关,当然不相关也可以,但是你必须做的足够深入,把遇到的问题以及解决思路总结清楚,就ok。一般项目面的面试官都是大牛级别的,技术都是比较全面的,不用担心你做的东西他们不懂,一定要把你项目的重点难点讲出来,以及你是怎么解决这些难题的。一定要在项目上做足功课,切忌抱有蒙混过关的想法,否则,面试官稍微深入问下你,你就会卡住,很容易就被pass掉了。

最后补充下,除了算法和数据结构这些内功以外,编程方面,不外乎就是多线程编程和网络编程两部分(内核研究除外),功在平时,因此平时一定要在这两方面多下功夫,多搞这方面的开发和研究,多看这方面的优秀源代码。只要瞅准正确的方向,坚持不懈,相信这些互联网公司会为你敞开大门的!

原文地址:https://www.cnblogs.com/liangning/p/3982084.html