背景
hello大家好,我是寒寒,这次我来和大家聊聊我春招找实习和秋招提前批的经历,分享一下我准备找实习的经验和其中的一些心得。如果你觉得这篇文章对你有帮助的话,请别忘记点赞支持一下我。如果觉得我写得不错,牛客大大也可以给我加个精哦。
首先介绍一下我个人的情况,我是一个本科生,我整体的情况可以用普普通通来形容了,在大一到大三期间没有做过很复杂的项目,也没有拿多很多的竞赛的奖项,我的大学经历和大多数人非常类似,大一迷茫地刷绩点,大二打游戏,直到大三才知道这样虚度光阴下去不行了,要准备考研或者找工作了。由于我对科研不敢兴趣,又不想承担考研的风险,所以决定找工作。
第一次参与招聘,是在大三上学期的时候,腾讯pcg在我们学校开了一个专项的招聘计划,叫“早鸟计划”,招聘的是暑期实习生(可以从我从前的帖子里面翻到那次面试的面经),我就抱着试试的心态参加了一下,当时投的是后端开发的岗位,但是被调剂到客户端了。最终的结果是没有通过,当时对我的打击非常大,面试官也很委婉地给我提建议,说我基础知识也不行、也没有项目经验,所以我当时就下定决心要好好去准备,毕业一定要进大厂。
春招的成果
在这一次失败的经历之后,我就规划了一下自己的学习路线,考虑找Java后端这个岗位,利用了大三上学期和寒假的时间好好准备了一下,前前后后大概4个月,最终也拿到了腾讯、阿里、美团、OPPO的实习offer,在美团实习并成功转正,现在秋招也拿到了字节跳动提前批的意向书,可以说是约等于凑齐了BAT的offer吧,那么我是怎么样准备的呢?我用Excel简单记录了一下我的春招面试情况,下面我就给大家分享一下我的经验。
我的面试经历(面经我都已经基本整理发出来了)
如何进行准备
我觉得面试主要分为三大部分,基础知识、算法题、项目经历,只要准备好了这三个部分,并掌握一些基本的面试技巧,那么我们就能比较容易地拿到offer。
校招面试的本质
这里我说一下我对校招面试的理解
校招的面试,其实就是面试官挖掘你亮点的一个过程,因为我们作为在校大学生,一般是不会有实际的软件项目开发经验的,即使有,通常也只是一些大作业,比较简单,在学校重点是学习了一些基础课程。所以面试官会去重点考察一下我们对基础课程的掌握情况,还有就是我们简历上的一些经历,也会通过让我们写算法题的方式,考察我们的代码能力。
基础知识
基础知识也是我们俗称的八股文,主要分为计算机网络、操作系统、数据库、数据结构与算法、编程语言几部分,编程语言我是选择的是Java,因为互联网招聘Java后端的需求量比较大,提供的机会也更多。我对这些基础知识这部分自己总结成了pdf,确保每个问题都吃的很熟练。
我自己总结的一些面试问题(部分)
资料链接我附在了文章最后面
对于基础知识这部分,可以用三个关键词来说,记忆、理解、扩展。
第一个方面是记忆,记忆是指我们对基础知识点内容的掌握,例如数据库四种隔离级别、进程和线程的区别、HashMap的底层实现原理等等这些经典的问题,掌握的主要方法都是把这些内容记下来,也可以说是背下来,这一点非常重要,因为面试的时候需要我们用自己的语言将这些内容表达出来。我在这里给大家推荐一种方法,就是大家将这些经典的问题总结下来,经常拿出来读一读、背一背,这样才能达到预期的效果。
第二个方面是理解,其实理解是用来辅助我们记忆的一种方式,只有我们将这些知识点完完全全理解了,这些知识才能成为我们自己的东西,我们才能更好地将它们用自己的语言表达出来。
第三个方面是拓展,拓展是展现自己亮点的一个过程,也就是如果我们对某个知识点不仅仅是掌握它最基本的层面,知道它的原理和应用,那么就会给我们面试的表现就会大大加分。
举个例子,如果面试官问我们什么是不可重复读,我们在回答这个问题的基本答案之后,顺带说了不可重复读解决了幻读的问题,解决幻读是利用undolog实现的,那么面试官会认为我们基础掌握得很好,而且很有求知欲,对技术有比较深入的研究。这个地方我建议大家在学习某一个知识点的时候,多了解它的实现原理和应用。
算法题
算法题也就是我们说的手撕代码,在面试中面试官经常会给我们一道算法题,让我们当场写出来,这里的算法题一般都是leetcode上的原题,一般是简单和中等的难度。
这里我建议小伙伴们去leetcode上刷题,在这里有一个误区,就是很多人认为刷的题目量越多越好,先纠正一下这个看法。我们经常会遇到这样的情况,之前做过一道算法题,但是过一段时间再来做,却完全没有了思路,倘若我们只追求做题的数量,就会陷入这种困境,在面试的时候,即使这道题曾经某个时候做过,但是还是写不出来。
所以在这里,我建议大家只做leetcode上面的热题250道,因为面试官出的题目,一般都是比较热门的题目,像反转链表、两个队列实现一个栈、实现LRU算法,即使这些题目大部分人都做过,但是依然非常高频率地被考察,当我们做到一定数量的算法题时,每隔一段时间重复做之前做过的,直到自己能够把每道算法题非常熟练地掌握,即使在面试非常紧张的情况下也能很快做出来。
我总共在leetcode上也只做200多道算法题,但是我每道题都做过3到4遍,所以面试的时候遇到我做过的或者相似的题目,我能够很快写出来。这里我给大家推荐一个的网站codetop(百度搜索就行了),上面有各道算法题的考察次数,我们可以根据考察的热度来做题,把时间花在刀刃上面。
我们要做的是反复去把热题吃透
项目
说到项目经历这个地方,很多小伙伴就会问了,我大学没有做过任何项目,大作业也是大佬带的。没有项目经历怎么办呢?
答案当然是自己造。我们可以去网上找一些开源项目,自己照着敲一遍,当然这个过程需要我们对整个项目有一个非常清楚的理解,我给大家推荐两个项目,也是我准备的两个项目,一个是手写一个简单的RPC框架、一个是写一个简易的IM软件,这两个项目我都开源到了我的github上,在视频下面的链接里。说到这里,就又有一个重要的问题,我们为什么要准备项目呢?
其实我们的项目经历,能够让我们展现我们自己学习和思考的过程,在介绍项目的过程中,我们要突出一些我们思考的亮点,事先准备好一些经常被问到的项目问题,例如项目最大的难点是什么、项目的亮点是什么、某某模块是怎么实现的等等,只有事先准备好,我们才能更从容地应付面试官的提问,发挥我们准备项目的效果。
我的做法是,对我简历上的每个项目,我各提了若干个可能会被问到的问题,把它们写下来,并写出自己的回答,自问自答直到自己能够非常熟练地掌握每个问题,在后来的面试中,对于我的项目经历,我能对答如流。
我的项目
我为我的项目准备的可能被问到的问题
结尾
总的来说,只要我们在基础知识、算法、项目这算个方面好好准备,我相信大家都能拿到自己满意的offer。
资料链接
全部评论
(2) 回帖