受疫情影响,很多IT公司降薪、裁员,招聘的压力也随之加大。以下,记录一位逆流而上,在上周跳槽成功同学的面试经历,希望对大家有用。(已征求本人同意)。

    为避免一些不必要的麻烦,本文对面试官的提问进行了简化和整理。

 

    应聘者:二本学位;2年开发经验;男;

    应聘企业:某国内软件百强企业

 

     以下,是本次面试期间,技术官的提问,以及我对其中要点的解析。

 

1.介绍一下你的情况,重点说说简历上没写的内容。

解析:积极、正能量。

 

2.简历上写的,你做过“Xxx业务监管系统”,这是个什么项目,描述一下业务。

解析:三个方面:

    (1)“包装简历(zao jia)”的人屡见不鲜,面试官试图通过你的回答,看看你是否真的做过这个项目,或者这个项目仅仅是B站或者某个教学平台的项目案例。

    (2)想从你的描述中,找一个突破口,继续后面的提问。(例如,如果你写的是“电商系统”,后面就可能再问你“高并发...”;如果你写的是“金融系统...”,后面就可能再问你“实时性...”)

   (3)好奇心。想听听你做过的项目,到底是个什么东东。
 

3.再说说这个项目的架构,还有你主要做什么模块?

解析:看看你之前的工作,是一个 只专攻某一个模块的“码农”,还是较为“全栈”的深入接触了整个系统。

 

4.你刚说系统里用到了Eureka,它是干什么的?

解析:普通的技术提问。

 

5.你觉得Eureka的发展前景如何?

解析:这可能是一个“陷阱”,或者是在考察你 对技术的发展,是否有所了解。

    Eureka官方近期已经停止了对开源版本的维护,但国内已经在大面积流行使用。就是说,你用Eureka是正常的,但你最好得知道Eureka已经存在了隐患。

 

6.系统里的MQ用的哪一款?为什么用这个款,不用其他同类的中间件?

解析:考察你平时的工作,是习惯于搬砖,还是喜欢研究。

RabbitMQ、RocketMQ、Kafka等多个中间件都是MQ。如果你是习惯于搬砖,一定只知道“实现功能”就行了(也就是“干就对了”),不会去管别深层的原因。反之,如果你平时热衷于学习、思考,就一定会去思考 当前系统为什么要选择这个MQ,而不用其他。要懂得相似技术的不同之处。

 

7.简历里写,你参与这个项目14个月了,遇到过哪些印象深刻的问题,如何解决的?

解析:看看你平时的工作是“不懂就问”、在别人的帮助下才能工作;还是能够独立解决问题、独当一面。

 

8.缓存用的Redis吗?了解过其他缓存组件吗?使用缓存需要注意哪些问题?

解析:

考察你对常见技术的深入研究程度(或者态度)。

其他缓存组件:SSDB、或者干脆用HashMap

缓存需要注意的问题:缓存穿透、缓存击穿、缓存雪崩、一致性哈希、二级缓存……

 

9.如果不用缓存,这个项目的数据库能抗住并发请求吗?有没有思考过,或者测试过?

解析:

考察一些实用的“冷知识”。

tomcat、MySQL的并发量都只有几百。

 

10.问点基础的,Collection和Map是什么关系?

解析:考察细节,同样也是你秀技能的时刻。如果你对于基础知识的掌握非常扎实、并且有自己独到的理解。那么就出彩了,例如:

(1)从继承结构来看,二者没有关系。

(2)从底层源码来看,二者关系密切。比如HashSet的底层用到了HashMap,TreeSet的底层用到了TreeMap。

(3)技术面试,不是高考,不用100%完全去回答提出的问题。很多时候,是可以“答非所问”的,可以趁机发挥你对相关技术的理解。例如,此时就可以回答HashMap和ConcurrentHashMap的底层结构,或者说一下HashMap在JDK不同版本中的演变,甚至说一说你对HashMap等底层源码的理解都可以。总之,“秀”就对了。

 

11.JDK8以后的新特性熟悉吗?说一些你知道的,lambda就不要说了。

解析:lambda不是不重要,是非常重要,以至于面试官已默认你必须会。

其他新特性,没有lambda那么重要,但又不是不重要。所以,你得会一些,但到底会哪些,看你心情了,无所谓。

 

12.如果SQL性能太慢了,你是怎么优化调试的?

解析:态度+能力,我认为考“态度”更多一些。因为“SQL性能太慢”应该是编写任何一条SQL时,都要思考的问题,就看你是否真的去尝试思考这个问题了。

 

一般的解决方案:先通过慢查询日志,定位出速度较慢的SQL语句;然后再通过索引诊断,判断哪些索引是否失效、是否可以重构索引等。

 

13.如果你加入我们,会不会对你以前的开发团队 造成影响?

解析:考虑集体荣誉感。

如果你为了涨工资来我们公司,而不顾原来团队的死活。我敢让你来吗?

 

注:面试时,宁肯 回答的不是100%正确,也不要千篇一律的背面试宝典里的话。如果你的回答,有少量错误,但是体现了你的思维逻辑,那么不但不减分,还很可能加分。但如果你的回答,和前面N个人是一模一样的,那么抱歉,我们不需要一个背题的人来搞软件开发,回去等通知吧。

 

还有,不知道你发现面试的规律了吗?一般都是,“顺势聊天”+基础考点。其中,“顺势聊天”是指,通过某一个点,逐步展开、衍生出各种其他问题。例如,本次就是通过“简历上写的,你做过Xxx业务监管系统” 这一个问题开始,逐步问了该项目的业务、架构、项目里的Eureka、技术发展前景、MQ、解决问题能力等。

 

- 完 -