互联网公司的面试官是如何360°无死角考察候选人的?[z]

[z]https://juejin.im/post/5c0e47ebf265da614e2be9a7

一、写在前面

最近收到不少读者反馈,说自己在应聘一些中大型互联网公司的Java工程师岗位时遇到了不少困惑。

这些同学说自己其实也做了精心准备,网上搜集了不少Java面试题,然而实际去互联网公司面试才发现,人家问的,和你准备的东西,对不上号,这就很尴尬了。。。

因此,从这篇文章开始,笔者准备写一个长期连载的系列:《Java进阶面试系列》。主要跟大家聊聊中大型互联网公司Java面试中的一些热门、高频的技术问题。

希望这个系列的文章,能在年后金三银四的跳槽季中,助各位小伙伴一臂之力。

二、先来体验一个真实的面试连环炮

好,闲话不多说,我们进入正题!

本系列文章,我们将会从消息中间件、分布式缓存、分布式搜索、分布式架构、海量数据、NoSQL、高并发、高可用、高性能、数据库、JVM虚拟机等各个方面来聊一下面试中的高频技术问题。

现在一些中大型互联网公司的面试官,很多都是技术水平非常不错的兄弟。在面试候选人的时候,一般都会采取连环炮的策略来深挖一个候选人的技术水平。

举个例子,比如说看你简历上写了熟悉消息中间件(MQ技术)。那么可能我们就会有一个类似下面这样的连环炮式发问:

  • 说说你们公司线上生产环境用的是什么消息中间件?
  • 那你们线上系统是有哪些技术挑战,为什么必须要在系统里引入消息中间件?
  • 你们的消息中间件技术选型为什么是RabbitMQ?为什么不用RocketMQ或者是Kafka?技术选型的依据是什么?
  • 你们怎么保证消息中间件的高可用性?避免消息中间件故障后引发系统整体故障?
  • 使用消息中间件技术的时候,你们怎么保证投递出去的消息一定不会丢失?
  • 你们怎么保证投递出去的消息只有一条且仅仅一条,不会出现重复的数据?如果消费了重复的消息怎么保证数据的准确性?
  • 你们线上业务用消息中间件的时候,是否需要保证消息的顺序性?如果不需要保证消息顺序是为什么?假如我有一个场景要保证消息的顺序,你们应该如何保证?
  • 下游消费系统如果宕机了,导致几百万条消息在消息中间件里积压了,此时该怎么处理?你们线上是否遇到过消息积压的生产故障?如果没遇到过,你考虑一下如何应对?
  • 你们用的是RabbitMQ?那你说说RabbitMQ的底层架构原理,逻辑架构、物理架构以及数据持久化机制?集群部署架构?你们RabbitMQ的最高峰QPS每秒是多少?线上如何部署的,部署了多少台机器,机器的配置如何?
  • 你们用的是Kafka?那你说说Kafka的底层架构原理,磁盘上数据如何存储的,整体分布式架构是如何实现的,如何保证数据的高容错性,零拷贝等技术是如何运用的,高吞吐量下如何优化生产者和消费者的性能?那你看过Kafka的源码没有,说说你对Kafka源码的理解?
  • 你们用的是RocketMQ?RocketMQ很大的一个特点是对分布式事务的支持,你说说他在分布式事务支持这块机制的底层原理?RocketMQ的源码看过么,聊聊你对RocketMQ源码的理解?
  • 如果让你来动手实现一个分布式消息中间件,整体架构你会如何设计实现?

上面仅仅是MQ相关技术问题的一部分,实际上,一个比较好的面试官的问题,就是从技术面、技术点、项目实践几块来抽丝剥茧的发问。

三、技术广度的考察

首先考察候选人整体技术面的完整性,各种技术或多或少都需要一些,因为工作中是需要具备一定的技术视野的,不能说光知道消息中间件,但是分布式缓存却一无所知,这就是典型的技术短板。

类似于以前高考的时候,你语文特别好,结果物理特别差,那也是不太合适的。

所以工程师首先要避免自己的技术短板,尤其是三到五年经验的同学,已经彻底度过了自己人生的职场生涯的初期小白入门菜鸟阶段。

所以,务必在工作三到五年的时候,保证自己的技术绝对没有任何短板,整体技术栈要或多或少都知道一些,不能出现盲区。

比如,我现在问你,你们公司有没有什么业务场景是可以用NoSQL的?现在国内各个公司用NoSQL的技术都有哪些选型?具体NoSQL可以解决什么问题?

结果你一问三不知,这就是典型的技术短板,不说对每个技术有多么的精通,但是你至少或多或少都知道一些,而且大概明白每个技术一般在什么情况下用,怎么来用,解决的是什么问题。

因此上面说的:消息中间件、分布式缓存、海量数据、分布式搜索、NoSQL、分布式架构、高并发、高可用、高性能,这些技术,并不是说真的要求工作几年的同学每个技术都精通到源码层面,而是说你工作几年以后,应该有一定的技术广度,开阔的技术视野。

各种技术你都得适当的了解一些,同时尽可能有机会的话在自己负责的项目里多实践各种技术,多体会各种技术如何组成出一套架构来解决公司的技术难题的,尽量多对各种技术都一定的实践经验。

四、底层技术的考察

现在一般很多互联网大厂都会有基本功的考察,举个例子,Java虚拟机的核心原理、内存模型、垃圾回收、线上FullGC卡顿性能优化、线上OOM内存溢出问题你处理;Java并发中的volatile、锁优化、AQS源码;Netty背后的IO、网络相关的知识。

这些其实本质也可以归类到技术面的考察里,但是实际上这些技术都是开发任何系统都可能需要用到的核心底层技术,JVM、并发、NIO、网络通信,在很多系统而言都是通用的。因此特意单独拎出来,放在这里,作为一块东西来讲。

其实这种底层技术也是线上高负载大型系统的架构设计和开发,必须要具备的,因为底层技术不扎实,很多中间件技术或者其他高阶的技术,都是无法深入理解其中原理和底层的。而且很多时候,如果要解决线上系统的生产故障,都需要这些技术。

因此这些底层技术,看似不在那些高大上的技术范围里,没有炫酷的技术名词,但是JVM、Java并发、NIO、网络通信,这些东西都是一个工程师必须具备底层技术素养。

五、技术深度的考察

其次,我们一定会深入考察候选人平时工作中熟悉的以及常用的一些技术。

举个例子,比如你项目里用了Redis或者是Elasticsearch。只要你用过了,而且是你某个项目里的核心技术,那么一定会用连环炮式的发问,深入各种细节、底层、生产环境可能遇到的技术挑战。

总之,就是要用压力测试出来你在这块技术水平掌握的到底有多深,实践经验有多强。

一个好的面试官,自己本身技术功底扎实,是可以对一个技术问出一连串的连环炮的,就比如上面的那个消息中间件的连环炮发问。

而且只要面试官在一个技术上的深度超过候选人,那么通过连续的不断加深的发问,是可以考察出来一个候选人在自己最熟悉的技术领域的技术深度的。

比如说你对一个技术的掌握是否达到了源码级别?是否对某个框架,或者是中间件深入的理解底层的源码实现,从源码级别说清楚他的架构原理?是否对这个技术有过线上的高可用部署,承载过高并发流量的访问?是否对这个技术在线上生产环境解决过各种各样的复杂技术挑战?是否基于这个技术落地到你的业务系统中,设计出各种复杂的系统架构?

通过这种连环炮,基本上可以非常好的考察出某个候选人对技术深度的掌握。

技术深度的考察是中大型互联网公司面试官对一个高级/资深以上的候选人必须考察的,因为如果一个人工作5年以上,来应聘高级职位的话,那我们绝对是要求他对至少一个技术领域有着较为深入的研究的,比如说起码你得深入阅读过某个热门技术的核心源码,有一定的技术功底,可以解决一些复杂的线上故障。

因为技术广度决定了你可以利用各种技术来做项目,但是技术深度决定了你的技术功底,你未来学新东西有多快,线上系统出了故障你能否快速定位和解决,你能否基于对技术的深刻理解为公司的项目设计和开发出复杂而且优秀的架构出来。

六、下篇预告

上面就是《互联网公司的面试官是如何360°无死角考察候选人的?(上篇)》,主要是用一个面试连环炮带出来了平时中大型互联网公司面试官是如何发问的。然后从技术广度的考察、底层技术的考察、技术深度的考察几个角度说了一下,我们一般是如何来考察候选人的技术。

《互联网公司的面试官是如何360°无死角考察候选人的?(下篇)》,将会从项目经验的考察、系统设计的考察、候选人与岗位的匹配、多轮面试官的协作考察,来继续告诉大家互联网公司一般是如何科学的、全方位、无死角的来考察候选人的。

知己知彼、百战不殆,面试也是如此。所以我们的《Java进阶面试系列》,以这两篇文章作为开端。

你只有真正了解了面试官的选拔标准,考察范围,才能更好的进行针对性的准备,成为真正的“offer收割机”

由于公众号不再开通文章留言功能,如果对文章有什么问题或者对公众号有什么建议,欢迎在公众号聊天框留言交流!

END

作者:石杉的架构笔记
链接:https://juejin.im/post/5c0e47ebf265da614e2be9a7
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

原文地址:https://www.cnblogs.com/jjj250/p/10400385.html

时间: 2024-10-18 21:36:58

互联网公司的面试官是如何360°无死角考察候选人的?[z]的相关文章

干货|大厂程序员来讲一下互联网公司技术面试的流程以及注意事项

企业一般通过几轮技术面试来考察大家的各项能力,一般流程如下: 一面机试:一般会考选择题和编程题 二面基础算法面:就是基础的算法都是该专栏要讲的 三面综合技术面:会考察编程语言,计算机基础知识 ,以及了解项目经历等等 四面技术boss面:会问一些比较范范的内容,考察大家解决问题和快速学习的能力 最后hr面:主要了解面试者与企业文化相不相符,面试者的职业发展,offer的选择以及介绍一下企业提供的薪资待遇等等 并不是说一定是这五轮面试,不同的公司情况都不一样,甚至同一个公司不同事业群面试的流程都是不

Java面试-吊打面试官系列 Redis基础

你知道的越多,你不知道的越多 点赞再看,养成习惯 前言 Redis在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在Redis的使用和原理方面对小伙伴们进行360°的刁难.作为一个在互联网公司面一次拿一次offer的面霸(请允许我使用一下夸张的修辞手法),打败了无数竞争对手,每次都只能看到无数落寞的身影失望的离开,略感愧疚,在一个寂寞难耐的夜晚,我痛定思痛,决定开始写吊打面试官系列,希望能帮助各位读者以后面试势如破竹,对面试官进行360°的反击,吊打问你的面试官,吊打一同面试的同僚

《吊打面试官》系列-Redis基础

你知道的越多,你不知道的越多 点赞再看,养成习惯 前言 Redis在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在Redis的使用和原理方面对小伙伴们进行360°的刁难.作为一个在互联网公司面一次拿一次offer的面霸(请允许我使用一下夸张的修辞手法),打败了无数竞争对手,每次都只能看到无数落寞的身影失望的离开,略感愧疚,在一个寂寞难耐的夜晚,我痛定思痛,决定开始写<吊打面试官>系列,希望能帮助各位读者以后面试势如破竹,对面试官进行360°的反击,吊打问你的面试官,让一同面试的

《吊打面试官》系列-ArrayList

你知道的越多,你不知道的越多 点赞再看,养成习惯 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西. 前言 作为一个在互联网公司面一次拿一次Offer的面霸,打败了无数竞争对手,每次都只能看到无数落寞的身影失望的离开,略感愧疚(请允许我使用一下夸张的修辞手法). 于是在一个寂寞难耐的夜晚,我痛定思痛,决定开始写互联网技术栈面试相关的文章,希望能

(转)史上最全 40 道 Dubbo 面试题及答案,看完碾压面试官!

背景:因为自己的简历写了dubbo,面试时候经常被问到.实际自己对dubbo的认识只停留在使用阶段,所以有必要好好补充下基础的理论知识. https://zhuanlan.zhihu.com/p/45846108 想往高处走,怎么能不懂 Dubbo? Dubbo是国内最出名的分布式服务框架,也是 Java 程序员必备的必会的框架之一.Dubbo 更是中高级面试过程中经常会问的技术,无论你是否用过,你都必须熟悉. 下面我为大家准备了一些 Dubbo 常见的的面试题,一些是我经常问别人的,一些是我过

《吊打面试官》系列-Redis哨兵、持久化、主从、手撕LRU

你知道的越多,你不知道的越多 点赞再看,养成习惯 前言 Redis在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在Redis的使用和原理方面对小伙伴们进行360°的刁难.作为一个在互联网公司面一次拿一次offer的面霸(请允许我使用一下夸张的修辞手法),打败了无数竞争对手,每次都只能看到无数落寞的身影失望的离开,略感愧疚,在一个寂寞难耐的夜晚,我痛定思痛,决定开始写<吊打面试官>系列,希望能帮助各位读者以后面试势如破竹,对面试官进行360°的反击,吊打问你的面试官,让一同面试的

《吊打面试官》系列-Redis终章_凛冬将至、FPX_新王登基

前言 Redis在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在Redis的使用和原理方面对小伙伴们进行360°的刁难.作为一个在互联网公司面一次拿一次offer的面霸(请允许我使用一下夸张的修辞手法),打败了无数竞争对手,每次都只能看到无数落寞的身影失望的离开,略感愧疚,在一个寂寞难耐的夜晚,我痛定思痛,决定开始写<吊打面试官>系列,希望能帮助各位读者以后面试势如破竹,对面试官进行360°的反击,吊打问你的面试官,让一同面试的同僚瞠目结舌,疯狂收割大厂offer! 絮叨 男儿

《吊打面试官》系列-秒杀系统设计

你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图和个人联系方式,欢迎Star和指教 前言 Redis在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在Redis的使用和原理方面对小伙伴们进行360°的刁难. 作为一个在互联网公司面一次拿一次Offer的面霸,打败了无数竞争对手,每次都只能看到无数落寞的身影失望的离开,略感愧疚(请允许我使用一下夸张的修辞手法). 于是在一个寂寞难

fuck猎豹移动面试官

 特郁闷了,前几天在qq群遇到以为猎豹移动的,说招人做云后台开发,我还特意问了要求,他说很简单能做事就可以了. 一轮电话面试期望不大,但是出乎意料过了,接着二轮电话面试,感觉还好.后面是到广州的面试. 见到面试管, 先让我自我介绍,好吧说了一些········,然后简单介绍了一下以前的工作,接着让我说说自己的优点.这是重点了,我说我有创新能力,有钻研精神,还跟他列举了很多事例,我觉得这些事例都是很宝贵的.然后问了一个技术问题,有一个10G的文件里面是整型让我排序,我考虑了不到半分钟的时间后,