从事Java开发已经十多年了,关于学历和面试,我谈谈自己的看法。

先简单地说说学历的事儿:

  • 在我看来,学历很重要:我毕业于一个普通的本科学校,这个学历已经让我失去了很多面试的机会,是的,有很多公司,如果你的学历不高、学校一般,是连面试机会都没有的(我的学历是我们公司社招的底限,生源地一本;如果是校招的话,只招收985/211学校的学生);
  • 当然,当你有了几年的工作经验,学历的影响也会越来越小,我身边就有不少大专学历的,都就职于大型的互联网单位,工资待遇跟高学历的相比,也没有什么差距;而且大多数时候学历确实只是一块敲门砖,只要能面试通过,后续的升职加薪、绩效考核,能力还是占主要原因的;

下面主要说说面试的经验:
虽然我自己跳槽次数不多,但是面试成功率还是挺高的;

首先是简历,我提几点建议:

1.不要写精通,有几项熟练已经很厉害了;我就见过所有技能都是精通的简历,好像除了精通就不会其他词似的;
2.最好两页,不要太多,相同技术栈的项目,挑一个写就行了;我见过七八页的简历,写了七八个项目,每个项目的内容都差不多,没有必要;
3.如果是直接发HR邮箱的简历,可以使用word编辑完了之后,生成PDF格式发送,因为word的版本有高有低,你编辑的时候格式很好看,但是HR打开之后可能就各种变形了;
4.技术栈部分,可以根据招聘信息进行调整,但是不是让你把不会的写上去,而是让你调整顺序,突出重点;
5.项目经验一定要突出重点,比如我用了什么新技术解决了什么问题,我做的XX业务的核心系统对业务掌握很深入,这个项目我是项目经理带了十几个小弟之类的;
6.简历上的内容都是真实的,因为一般来说面试官是根据简历上的内容来提问的,所以需要斟酌知识点,保证都能回答;

第二,说说面试前的准备:

主流技术、组件、框架的学习,这里就不说了,因为这些都源于平时一点一滴的积累;这里强调一下,在准备面试的过程中,刷题还是很重要的,因为很多时候,我们会用一个东西,不一定可以把它讲出来,讲出来的不一定可以讲清楚;

对于一些常见的技术问题,是一定要深入掌握的,比如Java程序员经常会被问到的Java基础问题:集合(特别是HashMap)、JVM相关;写了Redis,很大程度上就被问到穿透、雪崩的问题;

常见的非技术面试题,也要提前准备,比如自我介绍、项目中遇到过哪些问题你是如何解决的、你对我们公司/你投的这个岗位有多少了解等等;如果你现在也在学习Java,在入门学习java的过程当中缺乏系统的学习教程,或者说缺乏一个交流技术的地方,你可以申请加入我的Java学习交流qun:前面输入是:三九零,最后输入是:七八一四。里面还有我这几年整理的Java学习手册,面试题,开发工具,PDF文档教程,你可以自行去下载。

项目是一定会被问到的,我建议要准备一段项目描述,控制在一分钟以内,说出项目的基本情况,比如背景、用到的技术栈、规模大小,这些可以少说一些;自己负责哪些事情,在项目中的角色是什么;然后可以描述一些技术细节,比如我使用到Redis做了数据缓存,为什么用?用完之后有什么效果之类的。这里要说你最有把握的技术,后面面试官的提问,很大程度是根据你说的这些内容来提问的。

最后,就是面试过程中还有哪些技巧:

学会引导面试官,比如你擅长做SQL优化、Java性能优化,那么在介绍项目的时候就可以提到项目中的数据量比较大,或者前端访问的并发量很高,这样就很容易让面试官“主动”问出来你们是如何解决的;

不要撒谎,但是最好也不要轻易放弃:被问到了一个没有接触过的问题,或者是一个不能100%确认的问题,不知道就是不知道,因为装模作样乱编的话,很容易被面试官揭穿;但是你可以讲一讲你的想法,或者解决这个问题的思路;

小心陷阱问题,不要太“实在”:当被问到“为什么要跳槽”的时候,尽管真的是因为“工资太低”、“老东家常年996受不了”,请不要说出来,请说一个“希望有一个更大的平台”这样的理由。