简历编写
简历上写的必须要会,我算是半路转java的,考研失败后原本学习的Nodejs,Python web和爬虫方向都不好找工作,所以决定转了Java。面试的时候,其实我Java 的web框架都还不是很熟悉,最开始的时候面试Java实习生的工作,面试官让我讲几个Spring Boot的注解,我都讲不出来,场面一度非常尴尬。后面一次面试实习生,面试官问我,MySQL jvm 哪个熟悉点,让我告诉他,再次尴尬。后面问了我volatile关键字,我也是不会。其实jvm这个我也没写在简历上,但是MySQL我是有写的,太久没面试了,所以我都没想到对实习生要求也这么高了。
最近半个月面试,简历的模板是根据冷熊简历写的,只写了自己用过的。不知道是不是这个时间点的原因还是自己的简历不够优秀,反正面试机会挺少的。正常的面试(还有一些奇葩面试)只有三家,其实三家下来感觉都还可以,虽然有的问题实在是答不出来,感觉自己已经发挥了80%了。问的大部分都还是简历上写的,jvm啥的都没问,所以感觉挺舒服的。
自我介绍
和我一个有两年工作经验的朋友聊天,他和我说,每次面试官让他自我介绍,他都不知道说啥,觉得没啥好自我介绍的,简历上都写了。其实我也有这种感觉,实在不知道说啥,但是每次都还要说的,所以提前准备好自我介绍还是挺重要的。这几次面试,我都是这样说的:
面试官您好,我在学校主要学习了xxx,xxx语言,做后端开发比较多,但是也了解一些前端开发,比如xxx,xxx。
学过的web框架有xxx,xxx,并且在课余时间也做了一些项目,比如xxx,xxx。数据库的话我学习了xxx,xxx。还有计
算机基础,比如数据结构,计算机网络,操作系统等我也都有学习。有空的时候,我会逛逛github,博客论坛,我会去
看看别人写的博客,自己也会尝试去写一些质量比较高的博客。
我也不知道这样讲好不好,反正这几次我都是这样讲的,如果有更好的也可以讨论一下。
项目经验
项目经验很重要,基本自我介绍完,就先开始让你介绍自己的项目了。因为我自己能力的问题,其实项目的复杂度并不是很高。所以面试官问我,你这个项目的难点是什么,或者出了crud还有什么。我会讲不怎么来,所以我目前的打算也是完善一下项目经验,再去下一个面试。有的面经上写要说明你这个项目解决了啥问题,但是这个应该不是实习生或者应届生的重点,我觉得对我们来说还是体验自己能力为主。下面讲讲我觉得的重点:
- 项目的重难点,除了crud的东西
- 做这个项目的原因
- 项目里用到的技术栈,为啥用,用了该技术栈解决啥问题
如果是商城项目,一般会问,库存相关,比如东西卖超了咋办
面试题
最后再讲一下这几次面试的面试题叭。
数据库部分
我写了MySQL,Redis,MongoDB
-
先说问的最少的,MongoDB,基本没咋问过,不过上次问我MongoDB和其它nosql数据库的区别,而不是问我和关系型数据库的区别。把我问蒙了。
-
Redis,问的不多,但是每家基本都会问。对实习生来说,问题难度也不高。
-
持久化存储
-
Redis快的原因
-
最多的就是MySQL了,记几个真实问过的,里面的东西展开实在是太多了。
-
索引(包括b+树)
-
锁(包括悲观,乐观、行锁、表锁)
-
优化相关
框架部分
基本没咋问,其实感觉自己的框架知识掌握的还不是很好,不过面试官一般很少问框架的问题。
计算机基础部分
- HTTP状态码
- 某个算法的流程,问了我快排的
部署相关
虽然很奇怪为啥要问开发怎么部署,可能觉得这也是应该掌握的叭。
现在docker挺流行的,所以一般都是docker部署的。所以会问一些有没有写过dockerfile之类的问题。
其它
一般就是对简历上其它技术栈问一下,我的话还问了ES,和消息队列。下面是几个问题:
ES部分:
- 分词器
- 倒排索引
- 架构
- 如何解决es中数据和mysql中数据一致性的问题
消息队列:
- 项目中的功能可以不用消息队列实现,但是为啥要用到消息队列
- 消息队列的用处
总结
- 准备好自我介绍
- 准备好项目介绍,体现出项目的难度,这样更好的展示自己的水平
- 简历上写的都要会,问你的时候至少有东西可以扯
- 基础部分不能忘