程序员面试题分享,掌握八成便可BAT一试!
作者:网友投稿 时间:2018-02-28 21:47
【IT168 资讯】最近,笔者在Github上看到了一个非常有趣的项目,来自一位谷歌软件开发工程师的分享,主要讲述了他是如何从一名web开发者蜕变为谷歌软件开发工程师的,这一路走来,他都看了哪些书籍,哪些视频和哪些面试题,只可惜虽然作者给了链接,但部分内容在国内还是无法访问。
(由于此处不便分享链接,所以对该项目感兴趣的可以在Github上搜索coding-interview-university,然后选择中文版本进行阅读)
看完,笔者也有了兴致,便在网上搜集了一些国内一线互联网公司的面试题和面试技巧,特此整理分享给需要的技术人员,看你和BAT之间差了多少!
阿里巴巴
根据部分网友的反馈,阿里的面试共分为五轮,前两轮均为电面(电话和视频),四轮技术一轮HR,大部分网友止步于二面。
技术面试部分,所掌握的编程语言和谋职的部门不同,问题自然也会不同。但是,主编程语言和项目经验是必备基础面试题。
首先是主编程语言,主要指开发者最拿手的,工作中使用的编程语言,不要和面试官说自己没有主编程语言但是会N多种编程语言,甚至是精通N多种语言,这样可能连一面都活不过去。

此外,如果你的主编程语言是确定的,那么接下来一半的问题会围绕主编程语言的高级特性展开,这些相关问题是比较容易在面试中被问到的。
在面试中,Hashmap、Arraylist、各类排序算法、红黑树、线程、消息队列、分布式、Forward和redirect都是常被问到的概念,每个概念又可以展开无数个问题。其中,蚂蚁金服(上海)会更重视数据库和开源相关技术。
HR面试的问题都是一些常见问题,比如期望的薪资、上一家公司的离职原因、为什么选择阿里、最有成就感的事情、项目中遇到的最大挑战以及如何评价自己等,阿里是一家非常有情怀的企业,千万不要小看HR询问的这几个看似常规的问题,或许就可以决定你最终是否被录取。一定要认真、积极、让HR感觉到你对阿里的热情。
百度
百度是一家技术基因的公司,非常注重研发人员的代码能力和对算法的了解程度,如果想入职百度研发岗,建议各位技术人先考察一下自身的能力再说,不然会被虐的很惨。
百度技术面共三轮,第一轮需要自我介绍,手写一些简单的算法,比如单例模式,快速排序等,穿插着Hashmap、Object类、Finalize、JVM等概念性问题,最后一题可能需要设计一个大型管理系统,比如图书管理系统之类的。
二面首先会问一些项目经历,然后手撕各类算法,比如某网友分享的试题中,提到了反转单链表、爬楼梯,状态转移方程等,最后一道试题会考察程序员的智力,比如时针和分针什么时候重合。

三面除了进一步了解项目经历之外,会出现一些比较大型的手撕算法题,比如给出一些基本条件,让你求某两点之间的最短路径,之后在这个问题上继续扩展,设计完成还需要运用不同方法求解,讲出其中的设计原理等。
三轮面试的面试官使用的语言很可能不同,并且即便代码思路清晰,下笔也还是要快一点,不然面试官一催,很可能就慌了。
腾讯
腾讯的笔试通过率还是比较高的,前两轮面试除了基本的自我介绍和项目介绍以外,主要会考察的知识点有Hibernate、mysql数据库、Redis、memcache以及Java的full gc,手撕算法和场景题同样很重要。
这里对算法题就不举例了,无非是常见的一些知识。网友提供的场景题示例为:千万用户抢购,如何处理高并发,并且有一个链接,指向前一天抢购成功的用户,如何设计整个系统和数据库。
网易
网易十分看中研发者的过往项目经验,对项目介绍和项目开发过程中遇到的难点一定要提前梳理清楚,否则现场一定会被面试官怼得体无完肤。面试网易之前,可以多看看分布式事务方面的概念,网易也有自己的一些场景题,比如,设计一个下单系统,下单成功后可以给用户发放优惠券。
今日头条




