我可能是在同龄人中做面试官经验比较丰富的,在某乎实习的时候就参与了Java的技术面试。后来在阿里以及另一家公司也面试过不少候选人,校招、社招、外包都有面试过。这里以一个面试官的角度来给大家谈谈在面试的时候怎么能给面试官留下更好的印象,更容易拿到大厂的Offer。为了不造成任何面试题泄露,这里我不会涉及到任何具体的面试题。
社招其实和校招的面试重点有一些区别,以Java为例,社招更看重对Java技术体系的深入理解,以及解决问题的能力。比如对JVM、分布式、TCP/IP协议这些个关键字等方面问题。为了避免泄题嫌疑这里就不举具体例子,具体大家可以自行搜索一下。
社招的通常简历中会有很多项目经历,面试官也会挑一两个项目问的比较深入,所以写在简历上的项目一定要自己有比较深的理解,不然面试的时候深入问一下答不上来就会非常不好。
相对的,校招更看重的其实是基本功和学习能力(或者说是潜力)。Java知识更多会考一些基础,框架的原理方面不会问的很深,数据结构和算法、网络协议等会问的比较多,如果有靠谱的项目/比赛经历也会是考察重点。
还有比较敏感的学历问题,坦白说,如果一个HR/面试官要从成百上千的简历中初步筛选,是没有精力一个个认真看的,学历作为一个重要指标这个时候非常值得参考。而实际情况也是高学历的候选人大部分时候会明显强于低学历的候选人,即使一些人的简历看起来非常华丽。
关于社招今天刚好有此机会,经过半年多的时间我整理一份架构图谱,主要是针对2-5年左右的Java开发程序员提升的,不管是传统行业还是互联网行业,掌握这些技术都能对自己有一个质的飞跃。
一般阿里腾讯这样的大公司,校招面试的流程是一轮统一笔试+三轮技术面试+一轮HR面试,如果对候选人的水平有争议,技术面试有可能会增加一轮,以2019年春招(实习生招聘)为例:Java学习圈子
对应届生来说,大厂统一校招前,如果你想进哪一个,一定要关注一下他们的内推信息。内推一般都不用笔试,可以直接参加面试。而且一般内推和统一招聘是分开的,也就是内推挂了依然可以参加统一招聘,多一次机会。当然内推具体会不会影响统招,还是要让内推人确认下。
这里说一下实习生的春招和秋招,春招和秋招都是招第二年毕业的学生,区别是春招签的是实习Offer,秋招会签正式Offer,所以区别大家应该懂得(春招不一定能转正)。
社招一般也是三/四轮技术面+一轮HR面,不过社招很多时候会有一轮是级别比较高的人(总监级)人来面试。
首先在面试前一定要花一些时间进行准备,特别是常见的比较典型的面试题要准备一下,避免由于长时间没有接触某一类知识而在面试的时候发挥失常,比如计算机网络、常见的算法等。
大部分面试问题都能在网上找到相同类型的,但是想全部找到原题一边不太现实,很多面试官都会有自己准备的题目。比如我在每一次大规模招聘开始的时候,都会花一些时间自己准备几个题目。
然后就是简历一定要认真写,重点突出,最好一页就能写完。三四页的长篇大论一般我都不会认真看。简历中写上去的东西,一定要诚实,不懂得别乱写。
技术面试至少有一轮面试官会对着你的简历来问的,如果写的精通实际却解释不清楚,会给面试官非常差的印象,降低整个人的信用。所以简历中写道的项目,如果是很久以前的最好自己再回忆整理一下。
既然简历不能写的太长,那么哪些东西写上去会让面试官特别感兴趣呢?
相对的,有一类简历写法会让人比较反感,就是把各种技术名词罗列出来写成一长列,全是熟悉/精通xxxx。不是不能这么写,而是不能写的特别多。没有哪个人是能全部都精通的,如果你这么写了,面试官随便挑两个问一问结果答得不好,那么会觉得你精通的都这个水平,其他肯定更不怎么样。
面试官和候选人从来不是对立关系,作为面试官非常希望候选人特别优秀,最好面一个人就能直接通过,没有人想在低质量的候选人身上不断浪费时间。所以面试的时候一定要心态放好,不是去被刁难,而是平等的交流。这里说几个我认为比较重要的点:
作为面试官,绝大多数人一般都是非常友好的。很多时候一些比较难的问题,都会先抛出一个相对简单的,候选人解决完之后会提出下一个要求,比如限制条件再解决这个问题,或者指出你的实现方式存在的问题然后问你怎么解决。好的面试题通常不是一上来就特别难,而是看起来不算太难,但是随着面试官逐步引导追问会变得越来越难。
很多时候一个复杂的问题在面试的时候本来就很难用一两句话描述清楚,这个时候面试官很可能会故意只进行粗略的描述,希望候选人在读题的时候能自己发现问题并提出来。如果你感觉一个面试题有模棱两可的地方,一定要主动提出来,能给面试官留下很好的印象。Java学习圈子
面试的时候不要因为某个题目犯了严重错误就自暴自弃,后面不专心答题了。一个题目结束后调整好心态进行下一题。没有哪一个面试官会因为某一个题目而一票否决候选人,都是面试结束后根据候选人的综合表现来评价的。所以心态放好,即使个别题目错误的离谱,整体评价依然可以做到比较好。
一般面试快结束的时候,面试官都会问你有没有什么问题想问他的?很多人在这个时候手足无措不知道问些什么好。其实很多问题都可以问,比如:
但是切记有一个问题不要问,就是“我能通过这次面试么”,这个问题非常不适合在这里问,不通过的一般也不好当面说,能通过这一轮面试的一般也会其他候选人综合对比,或者有下一轮。
面试结束后,如果通过了,正常都会在一周内有回复的,如果等了一周也没有见到回复,那么最好问一下面试你的人,虽然八成是没戏了。如果没有通过面试也不要太灰心,可以加一下面试官的微信,或者让他帮你拉群。很多团队自己为了以后方面抢人,都会有一些招聘群,加进去方便下一次有机会的时候能获得第一手信息。
这个比较有意思,其实技术面试官都是比较资深的员工,大家平时都很忙的,很多时候面试其实是额外的任务。所以面试的时候,除了和候选人沟通之外,面试官有可能还在同时做自己的事。比如在线编程环节,沟通完题目要求之后,如果候选人埋头写题目不说话,我有时候就会去干别的事,15分钟后才回来看。所以即使写代码的时候最好和面试官保持沟通,说说自己的思路,不懂的地方提出来。不然面试官无聊了可能就去干别的去了。
还有很多面试官在开头会让候选人自我介绍,其实这个时候你只要保持镇定简单说下就好,他八成没听你说的话,正在抓紧时间看你的简历呢。所以我从来不会让人自我介绍,我会在面试开始前先花两分钟看完简历,标记重点要问的问题。甚至个别自己记不清的还要google一下。
最后说一句,无论多少人在说工作难找,优秀的人才总是每个公司都要抢的。
针对技术这一块,我自己除了整理了一份架构图谱,还找朋友录了一些视频,和自己收集了一些视频,讲解的都是一线大牛,里面包括了一些Java分布式、微服务架构、源码分析、性能优化、并发编程等技术视频,这段时间面试跳槽的朋友比较多,还有一套BAT面试题合集,我都分享在网盘里了,分为四个阶段学习,欢迎前来下载。
第一阶段
第一阶段主要从 svn/git 版本控制、Java高并发、JVM虚拟机、RPC架构实战、Redis、Hadoop、高并发分布式项目实战、Nginx、Tomcat负载均衡和调优的角度来学习。
第二阶段
第二阶段主要从架构设计、分布式、Niginx负载均衡、ActiveMQ集群、高可用MySQL、Storm流、Mycat分布式架构、分布式系统案例实战等方面来学习。
第三阶段
第三阶段主要注重架构实践:从高并发高级群分布式、高可用可扩展、Java高并发系统架构实例、高并发数据库设计、MySQL主从复制和高可用集群、海量数据库架构设计等方面学习。
第四阶段
第四阶段主要从互联网高并发解决方案、Java高级架构师、大数据、大数据底层算法、分布式数据库架构详解、等方面来学习。
最新Java面试题
珍藏多年的最全面的Java面试解答视频,今天忍痛割爱分享出来。
Java各类电子书
上图中的资料都是我精心录制视频,感兴趣的可以加入我的Java学习圈子:免费获取。希望能够在你接下来即将应对的的面试过程中能够尽到一份绵薄之力。