外企HR面试(我是如何准备“BAT”与“外企”面试的)

2023-09-04 08:00:00 来源 : haohaofanwen.com 投稿人 : admin

下面是好好范文网小编收集整理的外企HR面试(我是如何准备“BAT”与“外企”面试的),仅供参考,欢迎大家阅读!

外企HR面试

往期文章:

你好,我是朱涛。这是「沉思录」的第六篇文章。

入职新公司快半年了,今天,我想和你聊聊,关于找工作、面试的一些心得与体会。说实话,在这次找工作之前,我面试找工作的经历并不丰富,反而是当面试官的次数更多。所以呢,这次换工作,我把国内、国外一二线公司都面了一遍,也算是弥补了自己这方面经验的不足吧。

「国内公司」比如百度、阿里、腾讯、字节,「外企」以 Google、Facebook、Microsoft 为代表,它们都是一流的互联网公司,但它们的面试,不管是从流程上,还是从内容上,差异还是挺大的。

如果你最近也想面试:国内、国外的一些大厂,相信这篇文章可以给你一定的帮助。

我们先聊聊国内公司。

国内公司

国内公司,包含传统互联网企业,还有一些国企、央企。

面试流程

从我的面试经验来说,国内公司大致的流程是这样的。

HR 沟通:顺带约下一轮的时间;

笔试:对于社招而言,互联网公司笔试比较少,但国企、央企还比较常见。

一轮技术面试:这一轮的面试官,一般都是团队内比较资深的工程师,技术细节的问题偏多,最后,一般还会预留20分钟左右的时间,出一道算法题, 大概是 LeetCode Medium级别。

二轮技术面试:这一轮的面试官,一般是团队直属 Leader。具体的内容可能因人而异,有些面试官,喜欢在一个问题上持续深挖,试探你的「技术深度」;有些面试官,喜欢跟你聊行业动向,考察你的「知识广度」。当然,大部分情况来说,两者都会考察。

三轮技术面试(终面):这一轮的面试官,一般是 Leader 的 Leader。从我的经验上来看,这一轮主要是考察候选人的「潜力」。那么,如何判断候选人的潜力大不大呢?答案就是:「基础」、「品性」。这一轮面试聊的内容,可能时而比较抽象,时而比较底层。

HR 面试:到了这一步,你的技术能力就已经得到认可了。剩下的,就是其他方面能力的考察了。通常来说,只要你没有诚信之类的问题,HR 是不会轻易拒你的。

那么,面试国内的大厂,我做了哪些准备呢?

面试准备

每个技术领域的知识,其实都是模块化的,我把它们分为以下几个部分:

算法数据结构:由于平时工作中用的并不多,所以,有必要在面试之前重新补一补算法和数据结构。

具体,我的做法是这样的:

数据结构:关闭 IDE 的语法提示,用主力语言(我用的 Kotlin)实现一遍常见的数据结构:Array、List、Stack、Queue、Map 等等;

算法:同样的,再把常见的算法自己手写一遍:常见的7种排序算法、3种字符串搜索算法、双指针、多指针、回溯,等等。

刷题:对于国内公司的面试准备,掌握 LeetCode 上 Top 200 的高频题就已经可以轻松应对了。注意,这里我说的是“掌握”,单纯只是刷一遍是不太可能达到这种境界的。我喜欢用不同的思路,不同的编程思想,从不同的角度,去剖析同一道算法题。比如,你可以去看看我的 GitHub:ZeroAndOne_8Solutions。

除了数据结构与算法之外,还需要注意:计算机基础

是的,你没看错,社招同样需要花时间补一补计算机的基础知识。比如:计算机网络、操作系统、加密算法等等。对于大部分工程师而言,Http、Https、Linux 系统、编解码,都还是需要有一些基本认识的。

最后,也是最重要的:专业知识

比如,我是 Android 工程师,面试之前,我会花很长时间补专业知识,从基础的到高阶的。目前市面上对高级 Android 工程师的要求其实不低。

基础知识:最基本的,四大组件、生命周期、启动模式、事件分发、自定义View,这些都要烂熟于心。

性能优化:Android 性能优化,这个方向的水其实很深。但对于普通的 Android 工程师而言,掌握一些基础的排查工具,以及基本的性能优化套路,还是很有必要的。如果是大厂专门做性能优化方向的工程师,往往需要深入 Dalvik、ART 虚拟机去做优化。

Framework:这部分,也许很多人会把它当作八股文来看待,比如: App 启动流程、Binder 机制,等等。我自己在准备的过程中,并不会强迫自己记住 Framework 层的具体细节,更多的,是去理解它背后的设计思想。工作中遇到问题的时候,去网上查源码,具体情况具体分析即可。

工程架构:在准备这个部分的时候,我主要是去读了一下主流的开源项目,并尝试自己手写实现出它们的 Kotlin 版本。在这个过程中,我不仅对项目本身有了更深的理解,对 Java 和 Kotlin 也有了更深的认识。

新技术:每个技术领域,一定是持续发展的。比如说,Android 领域,就有:Kotlin、协程 等等。不过,有趣的是,几乎没有面试官问我这方面的知识,我猜他们都很相信我吧。

聊完国内公司了,我们再聊聊国外公司吧。

外企

由于我肉身在国内,所以聊的外企大致分两种:Base 中国地区、Base 亚洲地区。Base 欧美地区的职位我都没有去聊,一方面我没有打算跑这么远,另一方面欧美的职位一般也不会考虑亚洲地区的候选人,签证之类的问题还是比较麻烦的。

面试流程

外企的面试流程和国内并不同,一般来说会是这样的。

Recruiter 电话沟通(英语):这一轮,业内一般叫做Intro Call。外企的简历筛选标准还是比较高的,能接到 Recruiter 的沟通面试,就已经说明候选人有很不错的背景了。这个阶段,Recruiter 主要介绍岗位的信息。当然,Recruiter 也会考察候选人的英语「听」、「说」能力,还有计算机基础知识。对,你没看错,Recruiter 也会问一些计算机相关问题,如果你的回答不能令 TA 满意,可能就没有后续了。(额外说明:外企面试流程当中,Recruiter 会充当国内 HR 的角色,这一点外企分工会更明确一些,不同的阶段,也会有不同的 Recruiter 对接。)

一轮技术面(英语):这一轮,业内一般叫做Phone Interview,也叫「电面」,是远程的。面试官一般会是和你有相同技术栈的工程师,考察内容基本上就是:半小时数据结构算法、半小时技术,难度不会太大。这轮面试的作用其实就相当于一轮初筛。

N轮技术面试(英语):从这一轮开始,业内一般叫做Onsite Interviews。在疫情出现之前,一般都会要求候选人到公司现场面试,用白板和马克笔进行面试,而且是:从早上面试到下午,车轮战。这样的面试一般有3~5轮,根据每个候选人的情况而定。面试内容,不仅涉及数据结构算法,还会有系统设计内容(System Design)、领导力(LeaderShip)等等。近几年,由于疫情原因 Onsite 也是线上视频面试了。经过前面的4~6轮面试以后,Recruiter 会收集面试官对你面试评价,提交给「技术委员会」(Hiring Committee)来统一评判。

Team Match:一般来说,到这个阶段就说明你已经通过「技术委员会」评审了。这时候就需要去匹配公司内部有 Head Count 的团队了。外企的工程师文化是相对开放的,比如:我是 Android 工程师,通过面试以后,我也是可以去做前端、后端的——只要我愿意,以及有人愿意要我。这一轮的面试官,一般是有空缺 Head Count 的团队 Leader,对方会介绍团队的状况,如果你加入会负责什么事情,这是个「双向选择」的过程。

其实,不同外企的面试流程还是会有一些差异的。比如说,我经历的外企面试当中,最多的有 8 轮,这不仅考验技术,更考验体能。

那么,我是如何准备外企面试的呢?

面试准备

外企的面试准备,跟国内公司的其实差不太多,但是侧重点不同,主要体现在下面两个方面。

数据结构算法:外企面试的准备,需要掌握更多高阶的数据结构与算法:字符串搜索算法、图论算法、动态规划;并查集、单调队列、线段树、跳表,越多越好。

系统设计:前端与后端的系统设计,会有较大的差别。比如:前端(客户端)的系统设计,可能会是设计一个 Twitter App;后端的系统设计则可能是整个 Twitter 的服务设计,负载均衡用什么、什么情况需要一致性哈希,数据库怎么设计、Feed 流用什么数据结构、消息推送用什么设计模式。由于我是 Android 工程师,因此我在准备的过程中,整体偏向前端的设计,去尝试设计了市面上主流的 App:微信、Twitter、TikTok等等。

结尾

这次面试准备,前前后后我花费了将近4个月,也总结、收集了一些文档资料,主要涵盖以下几个方面:

英语口语资料;

数据结构算法学习资料;

System Design 学习资料,国内基本没有客户端相关的系统设计资料,我主要收集的都是国外的文章与书籍;

最后,就是 Android 进阶相关话题的博客、开源项目。比如:性能优化、插件化、Framework、Kotlin、协程、Compose等等;

当然,如果你所在的团队和公司急需客户端人才,也欢迎你联系我,我也很愿意帮你扩散、转发。

最后,也是最重要的一点:我目前所在的团队也正在招聘,如果你感兴趣,也欢迎你来咨询

等你!


相关文章

    暂无相关信息
专题分类