7

技术面试官如何甄别培训班学员

 2 years ago
source link: https://www.cnblogs.com/JavaArchitect/p/15606327.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

    我大概做了9年左右技术面试官,主要是面java的,就以这个身份说说如何筛选各种培训班的学员。

    先说如何根据简历上筛选。

    1 看简历上最近的项目,现在大多数培训班,都会让学员别写培训班经历,但最近的项目很难做假。培训班学员,最近的项目不会超过6个月,但项目规模看上去绝对不像6个月能做出来的,比如是xx管理系统,xx物流系统,xx电商系统,而且项目里包含的技术一般都很高大上,比如Spring boot+分布式组件+云。

    2 再看之前的项目和公司。由于培训班学员之前大多没软件项目经历,所以培训班老师往往让他们不改公司名,但改项目名。所以会出现在xx商贸公司做软件项目的情况,也就是说,公司不是软件相关,但项目是软件项目。

    3 再看离现在最远的项目。由于大多数培训班对这些项目不怎么重视,所以这些项目往往会出漏洞,比如同时用到了阿里系和Spring cloud系的组件,或者求职者用到了当时不存在的技术。

    遇到可疑简历,一般先电话面试,而不是叫到场面对面面试。遇到这些疑似培训班简历,我一般先会说,你这份简历看上像培训班出身,你说实话,之前是不是在培训班呆过,如果是,我给你推荐我公司初级开发的岗位,这样你还有机会,否则我就严格问。话说到这个份上,培训班学员一般会坦白,这样我就按初级岗面了,或者干脆转到其他要初级岗的部门。

    如果求职者说没有培训班经历,那我就从如下几个方面问。

    1 问日志怎么输出的,一般项目是用logback+elk,或者其他日志组件,求职者一般能讲清楚日志怎么配置,日志规范是什么。而培训班能讲清楚技术和项目框架就不错了,一般不会顾及到日志,所以不少培训班学员说,就直接用System.out.println输出日志。

    2 问项目发布周期,项目怎么部署的,上线前上线时要做什么事。培训班的学员,大多只是在windows上开发调试,一般不知道在Linux部署这回事,或者不知道项目发布和部署的事情,这方面也能拍查出不少培训班学员。

    3 就问项目是否上线,客户是谁,安装部署在哪个服务器上。培训班学员的项目,大多是没上线。

    4 一般的项目,多少会做些高可用,比如多节点部署,或者是数据库集群,哪怕是最基本的mysql主从集群,或者监控,比如健康检查或业务埋点。这样项目才敢上线运行,否则项目在线上挂了都不知道。但培训班的项目,学员能跑通就不容易了,哪会考虑这些点。

    所以我就问,为了确保项目在线上正常运行,你们做了哪些方面的工作?比如是健康检查,监控日志,或者分布式部署,或者数据库集群等等,你可以找任何一个点来说明。这样培训班的学员大多回答不上。

    5 多结合几个模块串起来问,同时问接口调用安全性方面的内容。比如有求职者告诉我,他做的是基于Spring boot的订单管理模块,那我就问,这个模块的api是给谁调用的,调用时你是怎么做参数检查,参数错误会怎么处理,如何确保参数被篡改,如何做到跨域安全。这些点,正规项目里大概率会考虑到,但培训班项目只要能实现功能,这些点大概率不会考虑到。

    其实用上述方法,我都不用涉及到技术。如果在技术方面来筛选,其实更直接。

    1 问技术的使用必要性。比如培训班学员说项目里用到索引来调优,我就问,你们数据库规模多大,他们说才几百。这种规模用索引干嘛?或者说用了redis,我都不用问缓存穿透等问题,我就说,你们数据库并发量多少?他们说一秒十几次,那么这种场景干嘛还用redis?

    2 问技术使用的常见的坑,比如kafka,我就问,如何防重发,如何处理堆积消息。培训班学员大多只是调用api,这些坑基本不知道。

    3 让结合项目场景,说如何使用redis。比如问键是怎么设的,值用什么类型,如何防内存溢出。一般来说,有实际经验的求职者多少能说点,毕竟项目中用过,但培训班学员,只会基本的api调用,甚至在一些不必要的场景,都会硬塞一些值钱组件。

    4 问技术在异常情况下是怎么处理的,比如redis超时,或参数错误,你们怎么处理。培训班项目一般只考虑正常流程,会忽略异常情况,在真实项目更会考虑异常情况,所以这方面往往也是一问一个准。

    另外说个甄别培训班学员的方法,这也是百试百灵。那就是打断他们的节奏,看他们在猝不及防的情况下的表现。

    培训班的学员一般事先都准备过,所以自我介绍和介绍项目经验时,一般比较流利,谈基本技术时,往往也不会露出痕迹。所以在一些疑似培训班学员面试时,在他们介绍项目时,直接打断,然后问问题,比如问为什么要用xx技术,你项目是怎么上线的,或者问,做项目时你解决过哪些线上问题?

    这些问题只要真干过商业项目,一般都有经历,所以在猝不及防的情况下,很快能说好。但培训班在做模拟面试的时候,往往会按部就班,就像培训班项目不大会考虑异常情况一样,他们不大会处理面试突发情况,所以遇到这些需要零时想的问题,他们往往就不知道怎么回答了。

    本人知道不少同学入软件开发行不易,所以需要经培训班加持。但由于面试官职责所限,所以在面试中不得不甄别培训班学员。至于为什么有些公司不要培训班学员,或者说,甄别培训班学员本身是否合理,这不在本主题之内,所以不再展开讨论。

    不过在写到这里,也得给广大想从事软件开发的培训班学员打打气。

    1 一些不怎么资深的面试官,往往无法甄别出培训班学员,所以培训班里讲述的面试技巧还是有一定作用的。

    2 我在上海,发现程序员,尤其是java程序员,缺口还是比较大的,一些软件公司未必能招到人,所以广大培训班学员,只要你们会基本的增删改查,大厂可能一下子未必能进,但一般的公司往往问题不大,所以培训班给出的以往学员就业的列表,也具有一定的可信度。

    所以培训班学员在求职时,可以不亢不卑,把握好基本的增删改查以及常用技术的API用法,同时对一些值钱技术也别吹太厉害,找份工作应该不大。

    不过说来讽刺,本人一方面是外企和互联网公司的技术面试官,但平时周末,还兼职讲java课,在我的课堂中,也经常要帮助一些零基础的同学找工作。以技术面试官的身份,筛选培训班学员是职责中事,但作为培训班老师,我反倒要教他们如何应对面试。前文既然讲了如何筛选培训班学员,那么这里就讲讲培训班学员如何找工作这个话题。

    1 掌握基本面,什么是基本面,就最初级的程序员进公司干活需要什么技术,比如java方面是Spring boot增删改查。基本面需要通过若干个项目练习,至少知道项目整个流程(比如前端后端数据库)是怎么运行的,开发流程中重要模块时,需要哪些技能。这没话讲,哪怕再小的公司面试,也会问到基本面。

    2 背题。背网上有的静态的题目,比如java异常处理,Spring boot框架等,这个多多益善,同时根据面试反馈结果需要不断背。

    3 融入真实项目场景,结合项目需求准备技术说辞。培训班学员在面试时最大的问题时,由于无法讲清楚技术使用的必要性和场景,所以往往被面试官质疑项目的真实性。这前文已经提到了,比如讲低并发场景下还要用redis。

    这方面,首先当然需要理顺项目的流程,比如处理订单的业务,一开始从哪里接到请求,处理请求时历经哪些模块,最后用到哪些表,用到哪些分布式组件。但是,更要思考“用户是谁”,“技术是否合理”和“异常情况如何处理”这三点。

    具体还是以订单模块为例,要讲清楚谁(哪个客户)调用这个模块,调用方式是什么,并发量多少?这个并发量下,spring boot如何部署以及是否要用redis,同时,如果调用失败,该返回什么信息。虽然很多小公司未必会问这么细,但我让我的学员从项目角度准备好这些问题,这样虽然可能技术未必能说好,但至少不会被质疑项目的真实性了。

    4 结合需求讲技术,比如讲jpa,你就以订单模块为例,讲如何使用api,如何设计业务模型类。再如讲redis缓存,你就说因为并发量高,所以用redis,总之为每个技术找个必须要使用的理由,同时再结合使用场景介绍技术,这样一方面能更讲清楚技术,另一方面能进一步让面试官相信项目的真实性。

    5 同时准备些亮点,比如用索引优化数据库,用缓存提升性能,通过底层源码讲HashMap等,还有JVM调优等。这些技术未必很深,但很多求职者不会说,我的学生说出来了,就是他们的优势。当然,讲这些亮点时,也要围绕项目场景。

    6 刚开始,如果是零基础入行,尽量找些小公司,或者先以外派的身份进银行或大公司,这些公司基本是只要能做增删改查的活就让进,而且面试官本身的能力也不会像大厂那样资深,说难听点,甚至无法排查出“面试技能良好但干活能力一般”的人。

    这里顺带说句题外话,零基础想入行的同学,在挑培训班的时候,培训班本身的品牌是一方面,但讲课老师更重要。

    比如有些老师,本身没经过大厂,本身只会让学员调通api,本身不会讲资深的技能,不会从公司的角度辅导技术以及辅导面试,那么培训班学员的收获可能只是入门级的增删改查了。要找,最好找些有大厂工作经验,或者至少小公司做到技术高管的老师。

    如果注意我上文给出的点,培训班学员甚至可以在不提升技术的前提下提升面试技巧,乃至求职成功率。

    上文主要是讲要点,下面就涉及些技术。由于我是java方面的面试官,而且讲的培训课大多是java方面的。我观察下来,培训班学员在java方面,如果掌握Spring boot,再外带些分布式组件调优技能,用这做基本面,外带背些题,准备些亮点,其实更容易过面试。

    我培训班里是用我写的教材讲Spring boot和分布式组件,用下来效果还不错,所以推荐给大家,供大家参考。也请大家多多捧场,谢谢了。

    京东链接:https://item.jd.com/13443796.html


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK