2

这篇文章是我的直系学弟的投稿,这位学弟不仅和我待过一个社团,最后秋招还阴差阳错地和我做了同事。哈哈!缘分颇深。《JavaGuide面试突击版》出来之后,这位学习还分享进了他的班群,作为学长来说还是非常开心的。

另外,这里再多插一嘴,JavaGuide 的Star数量虽然比较多,但是它的价值和含金量一定是不能和 Dubbo、Nacos这些优秀的国产开源项目比的,我自己也深知。希望国内可以出更多优秀的开源项目!

前言

首先说一下,本人是在19年10月份的秋招中上岸的,一直想写一份面经,但是因为各种原因,拖到了现在。求职之前也在网上看了很多面经,希望我接下来分享的内容课可以给大家一点帮助。这篇文章主要介绍的是我在我觉得面试前应该做哪些准备,下一篇文章中我会专门介绍我的 ThoughtWorks 面试经历。

我是20届的双非本科生,没有很牛的参赛经历,也没有科研经历。对于学校安排的实习,觉得价值不大也没有去。反而在实习期间帮学校维护了一个招生软件。平时就是自己根据教程和网上的文章学习 Java,除了跟着教程写过几个大项目,也参加过老师接的实际项目。这也是我个人的求职优势所在。

面试前的准备

9月初开始准备面试,当时本来想的是做一个大型项目作为自己知识的回顾,后来才发现自己在基础知识方面真的很薄弱,于是果断放弃项目,转而学习java相关知识。复习的时候才发现自己的一个痛点:由于我是跟着教程自学java,平时只注重动手和实际使用,反而忽略了原理和底层知识,导致知其然而不知其所以然。故复习的时候是真的有一种恍然大悟的感觉。

我是跟着网上的一些博客,加上YouTube上的视频内容来学习的。个人感觉,复习的时候如果看文字太累了,可以看看视频讲解,可以缓解自己的压力,而且对于某些知识点,视频展示的效果更好。

复习主要涉及到这些知识点:

  1. Java:基础,容器,并发,JVM,新特性
  2. 计算机网络:基础知识,常见面试题
  3. Linux:常见命令,基本操作和软件安装
  4. 数据结构,算法,数据库
  5. 常用框架
  6. ……

我就不罗列这些知识点了。有需要可以去 github 上搜JavaGuide,作者写的比较好。我感觉比较重要的或者说实在复习的时候需要花更多时间的有:算法,推荐刷LeetCode,至少把简单级别的算法过一遍,不管哪一家公司面试都逃不过算法。其次就是数据结构,一旦你了解到了框架实现,那么后面必须牵扯到数据结构,再着就是JVM和框架源码,特别是spring,一定要看看源码,面试重灾区。

在复习这些知识点的时候注意三点:

  1. 一定不要只看别人写的文章,或者一直看视频,我一直以为,程序员,最重要的是实现,不管你学了多么牛的技术,一定要落实到代码上,所以个人也建议在复习同时打开你的idea,落实到代码上,亲自试一试。
  2. 记得动手做笔试题,牛客网的笔试题是很好地选择,里面涉及的知识点很全面,多做一些题,可以很好地避免笔试时踩坑。
  3. 对于面试题,绝对不要采用硬背的方式。死记硬背很容易忘记,而且知识只有理解了才是自己的。理解了之后才能够很坦然在面试的时候表述出来,侃侃而谈会给面试官的感觉很好。

简历书写

作为一个应届毕业生,如何让我们的简历出众,可以让hr一眼相中你呢?个人觉得以下几点很重要:

1.项目经历或者大赛获奖经历(亮点)

这里的项目经历不是你做得demo或者你在学校做得课程设计,而是实实在在的要给客户使用的软件。我一直有一个观点,一个软件,做成demo很简单,但是如果要给客户使用,那么要考虑的细节就比较多,才是真正考验我们的技术的。对于大赛,著名的ACM,当然是名气越大越好。

那么很多应届毕业生就要说了,我只是一个普通的毕业生,没有接触过实际的软件,也没有参加大赛获奖的经历,那么我的简历岂不是没有亮点了?我给的建议是学会包装自己。对于实际项目而言,挑一个你做过的最大的软件,或者去github上淘一个。这里举个例子,你找一个分布式商城项目,然后选择一个你自己熟悉的模块,比如商品模块,然后你就把这个商品模块的代码完整看一遍,从前台展示到中间逻辑处理到后面数据库表的设计,还有此模块和其他的模块的信息交流,比如消息队列,全部过一遍,熟悉里面的处理方式。对于其他的模块,了解功能即可,可不看代码实现。然后就在简历上写,我做过xx项目,当时是多少人的一个团队,我负责的是商品模块,我实现了哪些功能,遇到了什么问题,怎么解决的,效果如何。在和面试官交流的时候,因为你只做了这个模块,所以他也会和你着重讨论这一块的东西,这样就弥补了很多人没有实际项目的痛点。

由于你的项目是整个简历的亮点,那么对于不是自己的项目,一定要好好了解里面的代码逻辑与设计。当然了,这只权宜之计,希望大家面试过了之后还是好好修炼自己的技术。

2.技术栈

把你自己的技术栈写出来,你会哪些技术,哪些框架,都可以列出来。这里要注意用词。最好慎写精通某某技术,因为精通一般都会涉及到源码,所以如果不是真的了解不要这样写。可以使用熟悉,用过,了解等词汇。还有,对于这些技术栈:前段技术如css,后端框架如ssm,常用软件如nginx,常用工具如git等,记得分条列出,不要写一块。

3.技术博客

这里可以写你自己的github账号,如果有很好地项目,star数比较多的,是很加分的项。其他的技术博客如果做的比较好也可以写上去。

4.专业相关

这里展示你的学分,如果比较好可以加上专业前百分之多少。然后写和求职有关的基本课程有哪些。最后写自己的四六级的情况,有的公司对英语的要求可能比较高。

5.致谢

出于礼貌,写一句致谢的话,感谢您花时间阅读我的简历,期待有机会能和您共事。

最后补充一点,对于在学校有社团经历的,有干部经历的,个人觉得对于程序员求职来说,意义不大。但是这也是你自己的一个优点,可以放在面试时的自我介绍中口头阐述,这样也不会显得自己的自我介绍太过于单调。

求职途径

好的求职途径可以让你的求职更加顺利,下面介绍我认为比较好的方式:

  1. 找熟人内推,如果你想进的公司有学长学姐或者认识的其他人,完全可以让他们帮忙内推,内推免简历筛序,面试的机会更大。如果没有熟人内推,牛客网也是一个很好地平台,上面有很多人发帖子,有很多内推信息,也是很不错的选择。
  2. 现场简历投递,比如我所在的湖北省,很多企业来招聘都会去武汉大学,华中科技大学,武汉理工大学宣讲,那么你可以选择性关注一个就好了。现场投递好处是效率高,而且选择也很多。
  3. 官网网申,这也是不错的选择,选中想要去的公司,然后直接官网投递,一般简历通过筛序之后,一个星期左右就会通知你笔试的。
  4. 海投,通过各种求职软件海投。我觉得这是很不理想的一个方式,我也海投了很多家公司,但是收获甚微,也有可能是我打开的方式不对吧。

给个小建议:对自己投递过的公司,用你自己喜欢的方式记录下来,是内推的,还是在官网申请的,什么时候申请的,什么时候有宣讲信息,什么时候笔试,面试,这些都做好记录,避免错过重要的信息。对于去别人学校进行现场求职的,注意安排好行程,有计划的进行,不打无准备之仗。

面试注意事项

所有的面试,基本上都有笔试和面试,那么如何应对笔试和面试就是很重要的了。

  1. 对于笔试来说,有的公司只出技术相关的题目,有的公司还有逻辑测试题,而对于银行来说,还有银行的相关知识题目。逻辑测试题跟着感觉走就好了,不用太纠结。对于专业知识题,除了自己花时间学习别无他法。在技术的笔试中,最难的莫过于手撸算法了,这里给个建议,哪怕你一时知识有思路,但是写不出实际代码的,可以把自己的思路写上,有时候面试官也会酌情给分,千万不要留空白,给人印象非常不好。
  2. 面试一般都分为三轮,第一轮技术面,第二轮公司领导面,第三轮就是hr谈薪资待遇的时候了。一般一面开始都会让你来一个自我介绍,你可以介绍这些方面:姓名,学校,专业,求职意向,做过哪些项目,会哪些技术,在学校担任过什么干部,写作能力很强等等,对于那些自己的优点但是简历上没有展示的,这个时候就是时候展示了。对于技术面,会就是会,不会就是不会,千万不要装,否则会给自己难堪。而且要学会把面试官往自己熟悉的领域带。打个比方,你对二叉树更为熟悉,那么当面试官问你HashSet相关知识的时候,你可以讲在HashSet在链表长度大于8的时候回转化为二叉树,那么说到二叉树,就要说二叉树的搜索……这样的话,就成功的把话题转到了二叉树。当然,好像二叉树比链表复杂,这里只是举个例子。
  3. 在面试的时候,特别是比较内向的同学,要尽量调整自己的状态,一定要大胆的谈论自己所知道的知识。大胆而不是礼貌。比如和面试官面对面的时候,两个人交谈不至于坐的端端正正,可以在回答问题的时候配合一些手势,我觉得这样会让自己很放松,不要想象自己是在被面试,而是要认为自己是在想别人展示自己的知识。这是一个很舒服的过程。
  4. 对于hr面的时候,他问你自己的期待的一个薪资待遇的时候,一定要大胆的说出自己的想法,不用觉得自己是否说高了,相信大家心里都有一个标准,薪资低于多少自己肯定不会去。所以,在基于自己的能力的前提下,大胆说出来就好了。要自信。
  5. 很多公司在技术面试之前还有一个群面,群面的主题可能和技术无关,比如当时我面试郎国的时候,群面的主题就是怎么看待现在小视频时代,一些低质量的内容对年轻人的一个价值观的影响。形式就是面试官给每个人一段文章,然后文章下面又要求,面试官知识坐在一旁看每个人的表现,什么话都不说。说实话,当时我第一感觉就是这么会有这样的东西,心里很抵触,但是想了想,来都来了,就试一次也无妨。结果是我竟然被评分第一。我自己都没有意料到。总结要点就是:第一:一定要大胆表达自己的观点,第二:要选择合适的时机接过话语权,第三:不要自己一味总结别人的观点,要有自己的思维,可以把这个讨论的问题进行一个延伸,延伸到其他更高的层面,第四:当自己的观点和别人发生冲突或者别人不认可你的观点时,要学会如何解决,是据理力争还是协商合并,第五:对于无领导讨论,如果能在一开始掌握发言权,把自己置于主持的角色也是很棒的。

签约

如果到了签约的时候,那么恭喜你,成功获得offer一枚。签约之前,想好自己是否满足对方的公司,以及薪资待遇等方面,确认无误可以签约。否则就慎重考虑,因为一旦签约之后,你想和另一家公司签约,就会面临一个解约问题,解约一般都是有5000违约金的,这个违约金多少在签约时都会注明,所以签约需慎重。
作者介绍: Github 70k Star 项目 JavaGuide(公众号同名) 作者。每周都会在公众号更新一些自己原创干货。公众hao后台回复“1”领取Java工程师必备学习资料+面试突击pdf。


JavaGuide
9k 声望1.9k 粉丝

你好,我是 Guide,开源项目 JavaGuide 作者。