首页 > 数据库 > 数据库开发技术 > 三流面试聊技术,二流面试聊框架,一流面试…

简介:大家好,我是枫哥,🌟一线互联网的IT民工、📝资深面试官、🌹Java跳蚤网课堂创始人。拥有多年一线研发经验,曾就职过科大讯飞、美团网、平安等公司。在上海有自己小伙伴组建的副业团队,目前业余时间专注Java技术分享,春招/秋招/社招/跳槽,一对一学习辅助,项目接活开发。
🌟 欢迎关注 🌟 收藏 🌹在看 🌹
🍊🍊:文末送福利

在这个答案中,以我常规的面试流程为例,谈谈java会问什么问题,以及如何确认候选人符合招聘要求。
先说面试前的准备。有些面试官可能会拿到简历直接问,候选人介绍自己的时候会草草浏览简历,但我不是。
问招聘项目经理,这个职位需要什么技术,比如Springboot,有数据库优化经验,有2到3年相关经验等等。问清楚了,我会在面试中组织自己的问题。
浏览候选人的简历,找出不利点和加分项。
缺点包括候选人的教育背景,非计算机相关专业,候选人的经验看起来像培训经验,或者项目看起来像自学,或者过去半年没有Java,或者没有工作超过3个月,或者经常跳槽。
加分项包括获奖经验,或像我一样出版书籍,或有大工厂经验,或最近的项目技术与招聘非常匹配等。
在这里,即使在简历中发现更多的缺点,面试也会继续,但这些缺点将写在最终的面试结论中。
最重要的是整理候选人Java相关项目的经验和技术。
比如候选人使用springboot、redis、kafka等技术,然后画下来,面试时会问。
面试前,我会用5分钟左右的时间做上面提到的准备,这是必要的,对招聘项目组和候选人负责。在这个时候,候选人很可能已经到了会议室。
下面开始面试。
首先是问候,比如要不要喝水,过来方便吗?这样做的目的是为了让候选人放松。
然后进入自我介绍阶段。如果候选人不主动说出以前的项目和公司情况,我会进一步提问。
候选人通常会谈论他们的年龄、工作经历、以前的公司和他们所掌握的技术。此时,如果候选人所说的工作情况与简历不一致,那么我注于检查虚假简历。
然后进入介绍项目的阶段,可以说是正式面试的开始。
在这个过程中,我希望候选人能在2到3分钟内大致介绍以前的项目、技术和亮点。但许多候选人会谈论这个项目的需求,而忽略了这个项目使用的技术和两点钟,然后我会打断它,专注于问,这个项目使用了哪些技术?如果候选人的简历也使用分布式组件来实现高并发性,我会专注于一些情况。问题的格式是,我看到你的简历上写着使用xx技术,结合你的项目需求,谈谈使用该技术的必要性。
也就是说,通过项目介绍,我开始询问项目中候选人相应技术(当然是招聘所需技术)的使用情况,不会涉及太多的技术细节。
如果候选人真的做过这个项目,一般可以说为什么要用这个技术,比如项目并发量达到5000tps,所以要用nginx做分布式部署,因为支付模块是异步的,所以要用kafka做消息队列等等。但是如果候选人的项目是编制的,很有可能他们只会说技术,不能说为什么要用这个技术。这可以确认技术的项目经验。
然后大致询问项目的开发流程和在线流程。如果候选人不知道该怎么说,我也会引导他们。
比如问,你的项目是github还是其他管理代码的方式?用Maven还是gradle管理项目?用什么来部署和发布?测试工具是什么(如junit或其他自动化测试工具)。在这方面,我只是问用什么,不会开始问怎么用。这个问题的目的一方面是评估候选人的项目开发能力,另一方面也是调查虚假项目。
然后是结合候选人在简历上写的技术问题。这个问题将根据以下层次提出。例如,当我看到候选人写Redis作为缓存时,我会在第一层问,为什么要使用它?只不过是数据库压力很大,所以需要使用它。第二层问题,如何使用它?只不过是使用Jedis或Redistemplate等组件,第三层问题,结合需求告诉我如何使用?只不过是,当xx缓存需求时,设置键是什么,值是什么。
如果只是招聘初级开发,那么问这个程度就可以了。如果你申请高级开发,那么我会问更多的问题,比如你使用的Redis数据结构是什么?如何持久化。如果是招商引资的深度开发或架构,那么我会问更深层次,比如如何搭建Redis集群,如果Redis集群失败了怎么办?Redis如何与数据互动?你遇到缓存穿透问题了吗?
只要简历上写的有价值的技术,比如kakfa、mycat等,我就会一一问候选人。请注意我的文法,不是简单的问语法,而是结合项目问如何使用。同时,我经常上网看一些redis面试题,但我不会直接问。我也会让候选人谈谈如何在你的项目中实现相关技术(如防渗透)。
结合简历上的项目和技术问题,我心里会有期待。比如对初级开发的期望是Springboot的添加、删除级开发的期望是有基本的分布式组件使用经验等等。所以我不在乎候选人有多少问题没有回答,但我在乎候选人的基本稳定性。
例如,在初级开发中,我结合项目问题,发现候选人可以使用Springboot+JPA(加上其他组件的其他注释)进行增加、删除和修改。事实上,候选人的技术已经成功了一半。即使你不同意以下技术问题,只要不太差,一般都可以通过。但如果候选人可以通过基本的磁盘技术上下,那么你必须通过以下问题来确认他们是否可以通过面试。
后面是我(面试官)的免费帖子,我通常会从Java核心、数据库、(SpringBoot)框架和分布式组件中提出问题。这些问题在网上都有,我就不一一解释了。
我会把这些问题分为三类:基础、优化和深度。初级开发只需要回答基本问题。高级开发需要回答优化程度,更高级的岗位需要知道高级问题。毕竟不同层次的发展在工作中有不同的职责。
例如,在Java的核心方面,final用法、treset和hashset之间的区别等,这些都可以直接回答,属于基础。在Springboot方面,常用的jpa注解或Springbooot方面的注解以及与Springbooot开发过程相关的问题也是基本问题。
优化中的问题很容易理解,比如你如何检查OOM问题,如何检查数据库的性能,然后启动数据库索引、缓存等用法。
深度包括底层源代码,如Arrayaylist底层源代码。它还包括解决实际问题的经验,比如你如何调查Redis加班问题,以及kafka重发导致的不动力问题。
这里有几句冗长的话。根据我的面试结果,大多数初级开发只能回答基本问题。虽然这可以满足要求,但初级开发也可以通过背诵或准备回答更高层次的问题。如果回答,这是初级开发的奖励。
然而,许多具有7年以上高级开发甚至工作经验的高级开发人员在简历上有丰富的项目经验,但项目经验,但他们仍然不能说优化或更深入的问题,这是一个非常痛苦的问题。毕竟,面试官通过面试来确认候选人的能力。无论你通常做得多好,面试都不好,你的能力都会被低估。被低估的后果是,面试不能通过,或者薪水打折。
同时,虽然我认为我的面试能力还可以,但我偶尔会错过一些会说但实际能力不达标的候选人。例如,一个职位是根据四年的经验支付的。当一个候选人接受我的面试时,他可以表现出这种能力,但进入项目组后,他被发现只有两年的发展能力。在这种情况下,项目经理会私下告诉我,但我什么也不会发生。毕竟,我见面后,项目经理会再见面。如果招聘能力不一致,他也有责任。
在这里,我只从面试官的角度记录我看到的。至于如何提高面试经验,可以看看我的相关文章,有空会多写这样的文章。
事实上,我已经问了所有我应该问的问题。我结合项目确认了候选人的技术,并从java核心、数据库、框架和分布式组件的角度全面确认了候选人的能力。但我认为我更考虑候选人,所以我会给候选人一个自由发挥的机会。
我会问两个问题:1。你有哪些亮点可以帮助你成功申请?2你还有哪些技术亮点刚才没有机会解释?同时给出几个方向,比如oom调优、数据库调优、分布式组件使用、底层源代码分析等。
如果候选人能说出具体的亮点或优势,我会记录下来。
如果是外企面试,我会评估我的英语能力,无非是用英语介绍,介绍最熟悉的技术和项目。
最后,我问了一些非技术性的问题,比如期望工资和工作时间。如果候选人在简历中有不利因素,比如频繁跳槽,我会问原因。这时,我只是记得,不会发表任何意见。
当然,也有例行公事的问题,我的问题问完了,你有什么问题?完成后,技术面试就结束了。
在这个时候,候选人通常会等待,我会根据面试问题形成面试报告,面试报告一般分为三个部分。
结合岗位需求,说明候选人在java核心、数据库、框架、分布式组件等方面是否达标。为了量化,通常会给出一个例子,比如写候选人的能力和组中xx的能力非常相似。
列出加分项和不利点。正如我之前所说,加分项包括加班、年轻、有大工厂经验、有海外经验、获奖、出版书籍或博客等可以帮助候选人成功申请的要点。缺点包括最近频繁跳槽、过去半年项目背景技术与所需不匹配、长期不在职等。
需要强调的是,如果候选人在面试中表现出的一些不利因素也会被记录下来,比如说不合理等等。
第三部分是结论,结论只不过是,通过,不通过,可以继续面试价值,或者,虽然组不合适,但可以推荐给其他组面试。
毕竟,人们来现场一次并不容易,所以如果他们通过了,或者可以上下,或者即使他们有继续面试的价值,项目经理通常也会再去面试。如果其他小组可以面试,其他面试官也会过去沟通。也就是说,如果你去现场面试,技术面试后不继续面试,面试结果可能不好。至于项目经理如何面对,与技术面试无关,不再继续。
原文作者:IT枫斗者;如有侵权,请联系管理员删除。