当前位置: 首页 > 科技观察

再见!技术面试官居然给了我一个脑筋急转弯,问我王者荣耀是什么段位?

时间:2023-03-21 01:50:48 科技观察

应聘者,我叫小智,Java后端开发,毕业3年,在某传统银行研发中心负责主要研发岗位。虽然这份工作不是很忙,拿的薪水也不错,但是使用的技术比较落后,银行也比较保守,所以迭代速度没有那么快。我身边的大部分同事都比较安于现状,一些新技术也不愿意去尝试,甚至有的老员工就是天天打鱼,从早到晚。最近和一个和我之前水平差不多的前同事聊天,然后跳槽到国内的一家互联网大公司。在他的怂恿下,我决定换一家公司试试。于是我准备了一份简历,投递到几个我感兴趣的大厂,我还是挺有信心的。一方面,我在银行有几年的开发经验,而我以前的同事能力不如我,所以很轻松就拿到了P6+的offer。很快我就收到了第一份面试邀请。是一家大厂的面试官打电话给我预约的。他问我什么时候有空,想约我电话面试。想都没想,当晚就约好了。真佩服大厂的效率,这么快就约了面试。面试前,为了保证心情好,出去看了电影,《半个喜剧》,演技还不错。晚上,面试开始了。好久没面试了,但一点都不紧张。毕竟,我不是初出茅庐的学生。面试官上来让我做自我介绍的时候,我没有任何准备,简单说了下自己的经历和最近的一些项目。这才知道我面试的部门是互联网金融相关的部门。面试官好像对业务更感兴趣,不过这应该是个技术面试。他为什么要问我关于信用和支付的事情?商业。我对这些东西接触不多。虽然我在工作中做的是这些业务的开发,但我只负责其中一个模块的功能实现,怎么可能对整个业务了解得那么清楚。所以我简短地和他打交道,并善意地提醒他问我一些技术问题。面试官挺有意思的,然后问了一些和我做过的项目相关的问题,但是我觉得问的问题太偏了,或者有些问题根本不是我应该考虑的,还有一些场景我无法理解。我从来没有遇到过任何答案。比如,总是有这样的问题:为什么要用消息中间件,如何选择技术?你对比过其他的消息中间件吗?你如何解决你与上下游系统交互中的数据一致性问题?超时我该怎么办?你的数据量有多大,QPS峰值是多少?我平时不太关心这些问题,所以基本不回答。可能他也发现他问的问题太偏了,所以他问我你是如何掌握Java基础的?我该如何回答这种问题?我能说不好吗?当然。然后他就开始问我一些和并发相关的问题,由此得出了Java内存模型。我一向不喜欢死记硬背概念,所以这个问题我答不好。他还问了我一些锁原理相关的知识,但是我在工作中很少直接用到并发编程,所以我把这个情况告诉了面试官,让他再问一些其他的问题。毕竟,并发在起作用。直接用的机会真的不多,面试官也表示理解。然后他就开始问我的知识点,那是我上大学的时候所有的基础知识,我现在基本忘得一干二净了。先问JVM,再问集合类,最后问我异常相关的东西。但是我很久没有复习这些知识了,也记不太清楚了,不过还是根据自己的印象,针对一些知识回答了一些关键词。虽然不是很顺利,但我觉得我的回答还可以。这个关于Java知识的问题问了很久,然后沉默了大概4-5秒。我从没想过接下来会发生什么。“我们来讨论一个概率问题。”“我们放松一下,来个脑筋急转弯怎么样?”“你平时看书吗?最近在看什么技术书籍?”“那你平时都在做什么?你想玩王者荣耀吗?那你是什么段位?”面试官问我的东西越来越多,我想不通。这些到底是什么问题。后来他好像听出了我话里的不满。然后简单的多说了几句,就结束了这场莫名其妙的采访。面试官是狮子座。我在家是技术小白,工作是后端技术达人,业余时间是技术博主。今天收到同事推荐的简历。看到应聘者985大学毕业,在国内大型国有银行做过后端开发。它非常适合我们部门,所以我很期待与候选人进行面试。.打完电话还算顺利,就约好了当晚的面试。应聘者这么爽快地答应了,看他最近接到了很多其他公司的面试,想必是早有准备。晚上面试的时候,一定要想办法拿下这个优秀的人选。晚上面试的时候,候选人自我介绍的时候显得有些紧张,不是很顺利,但我还是了解到他是负责银行征信系统业务开发的。正好我们部门也有信用相关的业务,所以想问问他几个业务问题,一方面看他适不适合我们部门,另一方面看他是不是技术开发人员谁懂商业。我觉得这一点还是很重要的。我们这次招聘的是Java高级开发职位,要求懂业务。不懂业务的业务开发不是好的开发。不过不知道是不是传统企业内部制度的问题。候选人似乎对他负责的业务的上下游了解不多。我只是对我负责的模块有一些了解。我面试的时候从来没有提前准备过题库。我总是根据面试官的回答,从他的回答中挑选出我感兴趣的点。大部分情况都是从业务问题开始,到技术选型、技术架构,再到遇到技术难点如何解决,再过渡到一些技术细节,再问Java基础知识。所以,问了业务之后,又问了一些项目的,主要是看应聘者有没有钻研精神。我们不喜欢只使用它而不考虑为什么使用它的人。但是,由于应聘者的回答不好,我只能转而问一些他可能比较擅长的工程开发内容,那就是Java的基础知识。因为面试了一个3年经验丰富的开发者,所以会比较关注一些更高级的知识,比如并发编程,JVM等。Java内存模型synchronized的原理是什么?什么是JVM运行时区域?你知道GC算法吗?如何判断一个对象可以被回收呢?你了解Java类加载机制吗?许多。有些问题还是可以回答的,有些问题对面试官来说似乎很陌生,比如“父母委托”。这些日常开发虽然用的不多,但是都是非常基础的知识。一旦线上出现故障,不了解这些知识就只能是无头鸡。好吧,我不会问我没用过,那集合类肯定用过。先来一道开胃菜:你知道HasMap和concurrentHashMap的区别吗?不知道什么是concurrentHashMap?HasMap和哈希表有什么区别?通常只使用一些ArrayLists。然后说说ArrayList和LinkedList的区别?额,嗯,嗯,嗯,,,本来想问一下并发契约相关的,比如CAS,COW等等,现在好像都用不到了。气氛越来越尴尬,作为面试官,我要保持冷静,保持微笑,保持礼貌!尝试询问面试官他认为他最了解Java的哪一部分。有多少种异常?我应该如何处理工作中遇到的任何运行时异常?怎么样,答案是不是很好?但是面试时间才过去20分钟,不能草草结束。太失礼了,还是要努力挖掘他的潜力。我们来讨论一个概率问题。假设有一个村庄,所有的夫妇都同意如果他们生了一个女孩就停止。如果生男孩,继续生,直到生女孩。那么,估计时间久了,这个村男女比例的概率问题就有了一个优势,就是考生可以有更多的时间去思考,所以大概过了5分钟。作为面试官,我代表的是公司的形象,我不能笑,更不能哭,我要坚强。不管怎么样,你都要再坚持5分钟,才能把半个小时的面试时间补回来。否则,会给应聘者留下不好的印象,甚至是阴影。我们为什么不做一个脑筋急转弯?老师在课堂上抽查背诵课文。小猪、小狗、小猫都举起了手。老师会叫谁?.......好的。时间差不多了,有什么问题可以问考生。我准备回答他我们部门是做什么的,主要用什么技术等等。但是应聘者说没有……好吧,在对应聘者表示感谢之后,尴尬的面试就这样狼狈地结束了。本故事纯属虚构,如有雷同纯属地狱。不过,作为面试官,我想经历这样一个故事,给大家提几点建议:1、珍惜面试机会,参加面试前一定要做好充分的准备。2、不管是什么水平的技术人员,最基本的技术知识还是要懂的。3、不要只做业务呆板,没事的时候也要好好检讨一下自己的技术,不要白白浪费了。4、如果是业务开发,必须对自己负责的业务以及上下游相关业务有一定的了解。5.不要想逃避,这对我来说是不可能的。最后祝大家拿到满意的offer。