在面试过程中,面试官特别注重应聘者的归纳和总结能力。希望大家在回答面试官的问题时,都能把要回答的知识总结成 1,2,3,4 这样,然后一条条的给面试官讲述出来。比如你有一个秒杀系统,你就应该这样给面试官讲。我的秒杀系统的架构为 Nginx + Redis + RabbitMQ + MySQL。首先我在缓存数据库上采用 Cluster 形式的集群,解决了 xxx 问题。在消息中间件上采用什么方式解决了什么问题,最后在 MySQL 部分我针对 xxx 情况进行了 xxx 设计,解决了 xxx 问题。我见过许多应聘者,想起什么说什么,把自己说懵了,也把面试官搞糊了。不管是讲项目,还是背八股文,甚至是参加hr面,在听到问题的时候都应该想一下,把回答条理了再给面试官讲,这样面试官能快速的捕捉到你的重点。
推荐大家在准备到一定程度后,多进行面试"以面代练”。因为你在面试的时候,精神注意力是高度集中的,会发现很多你存在的问题,并且能在面试过程中把一些问题记牢。大部分人平时背一段几十字的文字,背好几分钟都背不下来,并且就算背下来隔一会就忘了。但是让他们复述过去一个小时面试官都问了什么问题,这能记得清清楚楚,还能写出一篇面经。另外,通过模拟面试能帮助你梳理回答问题的思路,回答问题条理对于面试也是很加分的。面试的形式可以找几个朋友或者学长学姐进行模拟面试,也可以在秋招前期投几个不太想去的公司进行面试(稍有些不道德,不过也算帮面试官完成面试 KPI 了吧)。
大家可以两周左右约一次朋友或者学长学姐进行模拟面试,这样对学习的促进作用也比较大。每天自己看十分容易懈怠,学习效率也不高。代码题也可以几个朋友轮着,每天其中一个人讲一道题,我当时就是这么干的。其实我感觉不管做什么,多合作还是能干成更多的事情。
在技术面试中,面试官通常都会让你介绍一下自己所做的项目。
你可不要小看这一环节!就是一个简单的项目介绍,求职者之间的差距就特别大。有些小伙伴说了半天就是说不到重点,面试官都着急。而有些小伙伴,不光言简意赅地介绍了项目经历,还顺带把面试官引向自己所擅长的领域。
想要做好项目介绍,重要的是自己对于项目非常了解。一般情况下,在面试之前,你至少需要对你所做的项目下面这些信息了如指掌:
- 项目背景 : 这个项目是在什么背景下做的。
- 项目架构图 : 通常面试官会让你手绘一下项目架构图。
- 项目技术栈 :你需要搞懂项目每个模块所涉及到的技术。
- 项目亮点 :这个项目有哪些亮点呢?
- 个人职责(重要) : 面试官更看重的是你为这个项目做了什么贡献。
具体介绍项目的时候,你可以这样来(个人历经各种挫折之后所总结的经验,仅供参考):
- 简单几句话介绍项目背景,让面试官对项目有一个大概的认识。
- 介绍一下项目所涉及到的一些技术点。介绍这些技术点的时候,顺带可以简单说说用这些技术都干了什么。比如介绍到 ES 的时候,你可以简单说说它在系统中哪些模块(搜索模块?日志模块)被用到。
- 介绍自己做了一些什么事情,旨在突出亮点。另外,项目上自己遇到的一些比较有含金量的问题及解决方案也可以顺带说一下。
通常我们的简历上都会有至少 2 个项目经历,个人建议你把你自己认为最有价值,最能体现出你个人能力的放在最前面。
最后, 一定一定一定要把自己在项目上做过的功能所涉及到的技术给研究透! 这会是面试中的重中之重。
项目经验的重要性,我想不需要我多做强调。如果你没有一个比较有含金量的项目的话,简历关大概率直接就会被 pass 掉!尤其是对于那些没有实习经历以及竞赛获奖经历的小伙伴来说,项目经历可以说是你的救命稻草了。
一般情况下,你有下面几种获得项目经验的方法:
1、参加竞赛
有很多项目相关的技术竞赛,尤其是在大学的时候。比如中国“互联网+”大学生创新创业大赛、“挑战杯”中国大学生创业计划大赛、“中国软件杯”大学生软件设计大赛。
另外,像国内的一些大厂也有一些相关比赛,含金量也比较高。比如阿里的天池、腾讯的各种公益挑战赛。
这些参加竞赛所获得的项目经历对于应届生来说是非常有价值的,即使你没有获奖。
2、实战项目视频/专栏
这种方式是我身边的大部分同学都在使用的方式。也是比较救急的方式,不过一些好的项目可能会花一些钱。
简单来说就是找一个教程来跟着做,不过,千万不要把这个跟着做理解为完全照葫芦画瓢!一定一定一定要多多思考,多多总结,多多改进!
3、实习项目
你去公司实习的话,一般情况下也会接触到实际的项目。
不要苛求自己把整个项目搞懂,找准一个功能线,然后把它搞懂即可!
4、老师的项目
大学老师经常会接一些项目,然后他可能会找一些学生来帮着做。
虽然,这种情况下,通常是给老师当苦力,但不失为一个不错的获得项目经验的机会。
更多关于项目准备的内容,推荐大家看看大赛的项目的准备,我想说这些……这篇文章。
要学会根据你自身的学习情况,给面试官一个对你各部分知识掌握情况的一个合理的心理预期。
其实在校招面试过程中,单论技术栈基础知识考察这方面,你会背负着两个期望值。
一个是大厂目前内卷行情对应届生的期望值,根据我的经验,目前对面试后端开发的应届生的期望就是 Java 基础做到熟悉、JVM 基本掌握,然后其它技术栈中有两到三项做到熟悉,比如我熟悉的是 MySQL、Redis、Spring 框架,其它的能做到了解就差不多了,其它部分我准备的时间就很少,Linux 部分我总共用了不到半天时间看了看常用命令,RabbitMQ 也就记熟了通信过程,Mybatis 就看了下最常问的几个问题,计算机基础知识也没花多长时间(不过计算机基础知识我平时学的还不错呀)。
另一个是面试官根据你的简历和你开始的自我介绍对你的期望值。写简历过程中大部分人都会适当包装自己,但是做到稍高于目前行情对应届生的期望以后就可以了,切忌让面试官在面试开始之前就给你一个很高的期望。在面试过程中如果你的表现和面试官心理预期相差比较大(俗称你拉了跨),即使你达到了面试官平时通过的水平,你也很可能被刷。另外面试过程中比如面试官准备问你 Redis,一般会先问你一句你 Redis 熟悉不,如果真熟悉你就说你这里学的还可以。如果不熟,你就说这里了解一些基本的概念和操作~ 这样一旦你觉得面试官的问题招架不住,你就说这最近接触的不多,记得不太清楚,这样面试官通常情况下也理解就会换一块内容问了。如果你在简历和自我介绍中就夸下海口,又是精通,又有调优经验的,面试过程中却只能答上几个最常问的八股文问题,那面试官肯定是不会满意的。
绝大多数面试官是根据你熟悉的东西展开问,把你会的尽可能挖出来,看你学到一个什么程度。少数面试官会揪着一些他在意但你不了解的东西硬问,这种情况说明你和他没什么缘分,不要在意。
可能有人看着这张图血压已经上来了~