前言
四月份的时候因为换工作的缘故,陆续参加了华为、蚂蚁、字节跳动、PDD、百度、Paypal 的社招面试,除了字节跳动流程较长,我主动结束面试以外,其他的都顺利拿到了 Offer。
最近时间稍微宽裕点了,写个面经,希望对大家找工作有所帮助。
面试体验
下面就是我各家公司面试的一个体验
华为
1.简历投递方式:在 BOSS 直聘上联系的华为 HR。
2.线上笔试:在正式面试之前,会有线上笔试环节,3 道算法题,难易程度由浅入深,做出来两道基本就没问题了。
3.一面:视频面试,这轮面试会有两个面试官,每个面试官大概会面试 45 分钟,面试内容偏向 Java 基础为主;最后会写个算法题,不过也不复杂。
4.二面:这轮主要是几个领导一起电话面试,可能会问一些项目相关的内容,不过更多是框架相关的,不会涉及到很底层的技术细节。
5.HR面试:沟通一下职级和薪资情况,华为的薪资是由基本工资和绩效工资组成的,然后年终可能是 2 个月,我尝试去 argue 了一下薪资,但是好像并没有什么卵用。
总结:华为面试官和 HR 都很 Nice,整体面试难度中规中矩,都是偏重于基础和简单的算法,另外面试流程也很快,基本上两周之内结束没问题。不过现在华为社招基本是 OD,也就是挂靠到外企德科那边,不是正式员工,所以日后升职加薪可能会有所影响,这点大家需要自己考虑下。
蚂蚁金服
1.简历投递方式:朋友直接内推的,内推过后一周之内就联系面试了。
2.一面:线上电话面试,杭州打来的,主要是介绍下项目,他会根据项目中的技术点,进行一些讨论。印象比较深的是,当时我们讨论下分布式一致性的解决方案,但感觉他对我的回答不太满意,哈哈。最后会发一个链接过来做题,题目主要考察 Java 多线程的使用,我当时的题目是在某种场景下找到最快的支付方式。
3.二面:上海打来的电话面试,这轮是主管面试,也是项目为主,然后拓展开去很多基础问题,比如分布式锁、分布式一致性、事物、Java 线程等等。这轮没有做题,聊了大概一个小时,就结束了。
3.三面:这次是 2 轮面试官的主管来面试,让我直接去上海蚂蚁 Z 空间面试。这轮的话,主要是讲项目或者是说更宏观一点的东西,没有具体技术细节。
5.HR面试:因为我面试的 P6,所以 3 轮过后就直接 HR 面试了,HR 侧重阿里味的考察,比如乐观、皮实等等。
总结:面试难度适中,流程基本上一周一面,整体下来一个月,当然不包括后续的背调、体检之类的,因此如果要面试阿里,可以提前一些开始面试,然后一边面试一边复盘总结。
PDD
1.简历投递方式:BOSS 直聘找到 pdd HR。
2.一面:视频面试。前半小时聊项目,后半小时做题。
3.二面:视频面试。前半小时聊项目,后半小时做题。
4.三面:视频面试。前半小时做题,后半小时聊项目。
5.HR面试:确定薪资,因为 PDD 的强度非常大,大家可以大胆一点要薪资,不然进去以后后悔就晚了。
总结:PDD 的面试流程非常简单粗暴,就是做题加上聊项目,一半一半,题目难度基本是 Leetcode 上的 Medium 难度,我面试下来也没有碰到很偏很怪的题目,面试准备的时候,把 Leetcode 上面常考的 200 题刷一刷就没问题了。虽然最后没有去 PDD,但是 PDD 的面试官和 HR 都给我留下很好的印象,面试流程很舒服,就像和朋友交流一样;PDD 的流程很快,大概两周之内出结果,因为不同公司的流程不一样,HR 那边一直等了我好几周,可以让我拿到其他 Offer 了再回复她,这点上真的特别感激。
百度
1.简历投递方式:BOSS 直聘找到 HR。
2.一面:视频面试。分享项目,然后问一些技术细节,主要偏向 Java 基础、缓存、分布式这块。
3.二面:视频面试。这轮和上轮差不多,不过会问更多的技术细节,让我在线写了一个生产者消费者模式,还有一个算法题。
4.三面:视频面试。主管面试,比较轻松一些,聊聊工作、聊聊规划就完了。
5.HR面试:确定薪资,百度的薪资组成是 Base 加上股票。如果有其他公司的 Offer,可以大胆 argue 一下,HR 可能会有各种理由说不能加了,但是一定要坚持 argue,我体验下来,argue 的空间还是很大的。
总结:面试侧重于纯技术,所以关于技术细节,一定要搞清楚弄明白;至于算法,百度考察的不深。面试流程很快,大概一周多就结束了。
经验总结
多家面试总结下来,考察的范围都很广,包括基础知识、项目和算法。
基础知识这块,需要花大量时间准备每一个细节,知其所以然,这样才能面试的时候问起来,都能头头是道。比如 Java 的 AQS 原理,多线程,JVM 内存等,框架的话,有 Spring,MySQL、Redis、Kafka、ES、ZK 等,都要十分熟悉。
项目,阿里比较注重项目,所以不仅要熟悉项目做了什么事情,而且要提炼出项目中的闪光点或者说不一样的地方,为什么要选择这种技术、架构怎么设计、以后如何扩展、出问题了怎么定位等等;这些在面试之前都要想清楚。
算法,这点没的说,就是要多刷题。面试了这么多公司,除了阿里,其他公司的每一轮都会要求做算法题,所以在面试之前要对各种常见算法了然于心,比如 DFS、BFS、树、贪心算法、常见 DP 等等,有时间的话多去刷刷题找感觉。
面试题分享
这部分分享一下我在面试准备过程中,以及面试时遇到的常考基础题,大家可以针对题目复习一下。所有的面试题及答案我都已经整理成 PDF
以下提及到的所有的笔记内容、面试题、简历等资料,均点击文末名片免费获取
大纲目录
一、基础篇:
(含:Java概述,语法,面向对象,IO流,API,集合,NIO,HashMap,基础常见面试题....)
二、设计模式篇
(含:单例模式,工厂模式,抽象工厂模式,建造者模式,原型模式,适配器模式,装饰器模式,代理模式等23种设计模式...)
三、经典面试题篇
(含:22大问题,从基础到高级,BATJ面试常问的点...)
四、JVM篇
(含:JVM虚拟机,内存模型,GC算法,性能调优,源码分析,老年代和新生代,JVM常见面试题...)
五、算法篇
(大厂必备算法!含:红黑树,B+树,贪心算法,哈希分治法,七大查找算法,动态规划,一致性算法,数据结构等...)
六、分布式篇
(含:分布式系统原理,数据分布式方式,基本副本协议,Lease机制,Dubbo,集群,分布式锁,等...)
七、Spring篇
(含:spring原理,spring AOP的实现原理和常见,spring 5,spring IOC,springMVC,事务管理,MVC框架等...)
八、Mysql篇
(含:mysql数据库基础知识,数据类型,失误,试图,mysql索引,mysql锁,mysql优化,等...)
九、Dubbo篇
(含:Dubbo基础,架构设计,集群,配置,通信协议,SPI,等...)
十、计算机网络篇
(含:网络协议,TCP/IP系统结构,TCP/IP协议族,常见面试题,等...)
PS:干货满满 不带任何水分!内容还有很多很多,就不一 一展示了。需要的小伙伴可自行领取。希望可以帮助大家在学习和面试的路上更加顺畅!