本人开发五年,从一个中游的公司跳槽的阿里P6,刚刚开始是进行了百度三面,后来拿到百度offer,又到阿里进行六轮面试,其实这六轮的面试下来总体感受仍是不错的,在这以前我其实面试的其余公司的时候很烂。若是要去百度或者阿里面试的话,都须要提早作好充足的准备吧,否则你会败的很惨。前端
下面整理下我从百度三轮面试回来的题目,供你参考!linux

一,百度一面nginx
一、给一个函数,返回 0 和 1,几率为 p 和 1-p,请你实现一个函数,使得返回 01 几率同样。web
二、10 亿个 url,每一个 url 大小小于 56B,要求去重,内存 4G。面试
三、把一个 bst 转化成一个双向链表。sql
四、http 和 https 区别,https 在请求时额外的过程,https 是如何保证数据安全的;shell
五、IP 地址子网划分;数据库
六、POST 和 GET 区别;编程
七、DNS 解析过程;设计模式
八、硬连接和软链接区别;
九、kill 用法,某个进程杀不掉的缘由(进入内核态,忽略 kill 信号);
十、linux 用过的命令;
十一、系统管理命令(如查看内存使用、网络状况)
十二、管道的使用;
1三、grep 的使用,必定要掌握,每次都会问在文件中查找;
1四、shell 脚本;
1五、find 命令;
1六、awk 使用

二,百度二面
对照着简历问了些东西。
一、Linux 下的一些指令,$(进程 id),$?(上一条命令退出时状态),怎么查看进程,按照内存大小,CPU 占用排序等等。(大写 M 和大写 P)
二、http 的 get 和 post 方法。
三、介绍下你所了解的 epoll。
四、数据库 sql 的了解程度。
五、项目中遇到的问题,本身咋解决的等等。
六、手写一个全排列。
七、b 树和 b 树。
八、介绍一下 hash,怎么解决冲突。
九、进程间的通讯,共享内存方式的优缺点。

三,百度三面
一、说下你平时看的一些技术博客,书籍;
二、linux 下的一些指令;
三、工做中你以为最不爽的事情是什么;
四、说下你的优缺点;
六、有没有想过去创业公司;
七、写个 strcpy 函数;
八、说说你本身的性格;
九、给你一个系统(面试官好像是无人车部门的),后台的逻辑已经实现了,可是前端加载很慢,怎么检测;
十、之后可能要学习不少新技术,你怎么看;
十一、项目中遇到的困难(提早想好,而且把实现或者优化方法说清楚);
十二、系统的量级、pv、uv 等;
1三、应对高并发的解决办法(分布式);
1四、在项目中主要负责了哪些工做。
1五、nginx 的负载均衡;
1六、分布式缓存的一致性,服务器如何扩容(哈希环)
百度面试总体偏向基础、原理和解决问题思路的考察,面试前必定要找面经,说不定能够遇到原题。
下面是阿里六轮面试的一些经验:

第一轮:团队面试
第一轮基本上是你的团队成员面试你,是和你同级或者高你一个P的师兄来面你,个人话基本没问什么特别的,主要仍是讲本身简历上的作的项目,这里须要你很熟悉本身的项目才行,我我的以为这里你要把项目里你的角色作了什么没作什么讲清楚,而后最好能把本身作的那部分重点展开来说,而后面试官会从你讲的内容里挑一些具体来问你,这部分就因人而异了,知道的说不知道的别瞎说。最后还会问你一些什么TCP/UDP啊、网络模型啊之类的基础知识。我是以为这一面只要你项目靠谱、不吹牛逼、底子扎实,过一面应该都不是问题。
第二轮:主管面试
这一面其实跟第一面差很少,就是你的师兄们筛完简历了,而后到你的主管来面试你了而已。这一面个人面试官仍是让我主要介绍简历(可能由于我是社招,有项目经历他们比较感兴趣吧),而后我就又讲了一遍,由于我一面完了以后有思考过,因此这一次基本上上次没有讲到或者讲得很差的地方此次我都有注意,基本讲的还行。而后接下来依旧是根据你讲的东西来挑重点的来问,这部分真的没有什么固定套路,都是他们听见啥感兴趣的就会问你是“怎么实现的,为何这么实现,有没有更好的实现方式”这三个问题,这一回除了你要对本身项目足够熟悉以外,还要求你对你作过的东西要有思考才行,你要是现想,那确定是不靠谱的。这一轮对面最少都是P8级别的人了,千万可别不懂装懂的乱说呀。仍是那句话,知之为知之,不知为不知,是知也。
第三轮:交叉面试
这一面基本是找个其余部门和你未来的主管平级的leader来面你一遍,防止前面本身部门面试做弊嘛,基本套路和二面差很少,可是会多问你一些基础知识和编程能力上的事,主要仍是以考核你为目的,确定不是为了难为你的,因此,好好加油表现出你本身就行。
第四轮:代码面试
这一面据我后来的师兄讲原本是二面,是想省了的,可是后面因为流程规定,又给我加回来了,因此我就经历了一次在线笔试的面试。这一面的面试是给你一个在线网站,而后你和你的面试官一块儿登录上去,共享web页面,而后他给你出题,你来现场写代码,伪代码就行,而后你再给他讲一遍你的逻辑就ok了。这一面没什么好讲的,写代码嘛,是骡子是马拉出来溜溜咯。出的题不会很难,我答的是两道,一道给我半小时,第一道是给你一个shell命令,执行的功能大概就是读取一个日志文件,而后根据日志里的某一字段排序,而后取前五,输出。大概考点就是:
1.你得读懂这个有cat、有awk、有sort等等猛地一看还挺长的shell命令;
2.实现它;
3.时空间复杂度/效率;
4.讲清楚。第二道题目是反转字符串,大概就是把字符串“123456789”从中间分开,而后分别反转,而后输出,输出结果是“432159876”。
5.尝试给出优化方案;大概就是这种类型的题,确定不会重复的,师兄说极可能就是他们最近写代码遇到的问题,就直接拿来问你了,因此也没什么固定套路,你也不用临时抱佛脚的刷题,随缘就好。
第五轮:boss面试
到这一面的时候基本就稳了,固然我也见过挂的。这一面就是你的主管的主管来面你了,我当时仍是先讲项目,而后挑重点的问,不过和二三面明显的区别就是他会问你更高层次的解决方案,不在拘泥于你作的那一点东西,会让你从总体上或者部分总体上讲清楚你项目的解决方案以及你本身的思考(上面的那三个问题),会让你尝试给出更好的解决方案,并解释缘由。我我的感受这一面更多的是考验你的全局观,你要是一直拘泥于本身的小天地,那估计会吃亏的。固然,面试分人的,有的非技术出身的主管就是和你聊聊天谈谈人生理想什么的,你要是不match也会被淘汰。
第六轮:HRG面试
谈人生谈理想谈三观谈薪资,只要你不反人类不扯淡,就ok。
以后就是一直在阿里进行工做的,大厂的话是一个不断磨炼本身的地方,可让本身成长的更快,你能深深的体会到阿里的工做氛围和架构体系是多么的强大,但愿这两次面试经验可以帮助到你们!
欢迎你们也分享分享本身的经验,可以帮助到你们,让你们学习到面试经验和知识!
部分面试文档

源码实战书籍

须要面试文档和源码实战书籍的小伙伴,就能够转发+关注小编+ vx便可获取了!
还有更多的Redis、MySQL、JVM、Kafka、微服务、Spring全家桶,架构视频,Kafka、Mysql、Tomcat、Docker、Spring、MyBatis、Nginx、Netty、Dubbo、Redis、Netty、分布式、性能调优、设计模式等等架构学习资料这里就不一一列举出来,有须要个人这些所有复习资料+vx获取!



架构视频
