Priest Tomb



聊聊 2021 年的面试

1 写在前面

2021 年 4 月底,按计划,从姑且算是呆过 10 年的榕城返乡,5 月 2 日,带着在 3 家公司工作的将近 6 年的工作经验,到我大霸都开始找房找工作。

找房还算顺利,花了两天时间,在提前选定好的区域找到了一套勉强能接受的房子,签下一年的租赁合同,随即开始办理宽带、置办一些简易的必备家具,另外也继续对面试做准备。

从 5 月 8 号第一场阴差阳错导致的视频面试开始,一直面到 5 月 21 号,视频面试、电话面试、现场面试,包括一面二面总共搞了 16 场,计算了一下,跟过去几年总的面试次数相当了。


2 面试问些啥

除了自我介绍、做过的项目介绍这些常规沟通外,作为开发人员,面试的提问主要就是两类了。

2.1 纯技术问题

这一块儿不得不说,网上随便搜搜“Java 面试”,已经基本涵盖面试中 90% 的问题了。

被问到的东西大体包括:

  • Spring、Spring Boot、SpringMVC、Spring Cloud

几个框架的比较、IOC 和 AOP 是什么以及实现原理、Bean 的生命周期、过滤器 VS 监听器 VS 拦截器、使用了哪些设计模式、事务隔离级别和事务传播。

  • Java

JVM 介绍、JVM 优化、是否使用过多线程、线程池的使用和参数、线程间如何实现通信、IO 主要用过哪些、字节流 VS 字符流、常用的数据结构介绍、介绍 HashMap 大致的原理、使用过哪些 Queue、Set 如何实现的去重、hashcode() 和 equals()、如何处理分布式事务。

  • 数据库

事务隔离级别及 MVCC、索引的类型、索引设计原则、读写分离、数据库优化、数据库的锁。

  • Redis

缓存雪崩 VS 缓存穿透 VS 缓存击穿、持久化、集群、常用的数据结构、底层的存储原理。

  • 其他

Nginx、RocketMQ、ElasticSearch、Git,这些简历上我自己写到的技术,有些面试官可能也会问一些,比如用的场景、底层原理。

2.2 解决问题的思路

这类问题基本都出现在二面或者复试,讲道理三年前上一次面试的时候还没遇到过这类的问题,看样子还是工作年限上来了,想应聘高级 Java 开发工程师的话,思路和经验也是极其重要的考核。

简单举几个例子,比如:

  • 给一个简单场景,数据库表结构如何设计;

  • 有几种方案对一张有重复数据的表进行去重;

  • 设计定时任务要有哪些注意事项;

  • 促销活动如何设计(指整个架构);

  • 网页的一个功能卡死如何一步步排查。


3 面试结果

面试后一般都能很快收到结果,短则几小时,长则两天,再收不到消息,那基本就没戏了。当然,不排除有些大公司会慢一些,比如有一家隔了一周才打电话说过了一面,二面让继续等通知,然而现在又过了一周,还没消息。

今年这一波面试,收到了 5 个 offer:2 个不喜欢的 + 2 个中等的 + 1 个喜欢的。不喜欢的原因大致是薪资福利以及对公司的印象,喜欢的原因当然主要还是不加班,不加班的前提下,薪资就算是低点又何妨,上班远点又何妨。

在 offer 沟通阶段,也了解了这些公司的五险一金情况,各有不同,有的基数低比例高,有的基数高比例低,反正没有那种以满额工资做基数 + 最高比例的公司,这种财大气粗的公司在二三线城市应该都是少数派吧。


4 最后

面试对我而言一直跟考试一样,因为那些未知的提问(题目)而恐惧,尤其是害怕接连被问到自己不擅长的东西,比如那些在日常工作中 99% 的情况下都没有用处的算法题,好在这次的面试中没有遇到。

某种程度上来说,这一次的面试刚巧错过了传统的金三银四,在看准网上查看一些公司的招聘数据时也确实能发现他们在三四月份已经较大规模的招聘了一些人,所以一些感觉良好但没收到 offer 的情况,以及个别明显是应付式面试的情况,也有点理解。

最后再吐槽句,这两周面试中到现场面试的有 10 家公司,令人吃惊的是仅有一家规模很小的小公司有给面试者倒一杯水,这在以前的面试经历中可是极少出现的现象。我可不相信不倒水的公司在霸都仅是少数,而刚好被我碰到了。