先讲讲找实习的前后过程:

决定大学后面的重心偏向工作的时候大概是19年11月左右,和实验室的学长交流了过很久,不过也只是大致了解了求职流程和一些公司的信息,十二月的时候在去打水痘疫苗的时候遇到逢dalao,了解他也想直接参加工作,遂交流一番。月底的时候决定走后端开发方向,并开始着手写简历。
当时自己的能力情况是,掌握程度稍高的语言有:C++、Java、Python,Python使用更熟练一点,但是都对语言的高级特性了解不深。具备的能力有:熟悉Linux系统、会使用scrapy库编写爬虫、会使用基本的Mysql语句(很不熟)、Web方面Html代码是可以理解的,不过仅限于理解。
奖项和项目:19中国机器人大赛、19中国家庭服务机器人大赛家庭仿真机器人项目季军(一个基于Linux平台的仿真机器人项目)、基于scrapy的segmentfault社区信息爬取爬虫、基于surprise库对GHTORRENT数据集的开源项目推荐(后两者为玩具项目)。
上面这些也就最后放在简历上的,自我评估来看也只能说是让简历不那么空洞,但是也毫无亮眼的地方可言。
简历完善好开始投出去已经是期末考试结束后了,也就是快20年一月中的时候,当时投递的公司有:猿辅导、字节跳动、阿里巴巴三家,想法是大三下在还有部分课的情况下去异地实习是要顶着不小压力和麻烦的,那就要选择能给予足够价值回报的公司来投递,否则大三下在合肥本地的讯飞实习投入和产出比会比出去更高。没有投腾讯是因为牛客上少有腾讯的岗位机会,在腾讯的学长也表示腾讯的春招要在二月底三月初左右才开始放机会,他那时候才能给春招和内推的链接。
可能和20年的新年很早有关,一月投出去的简历一直到二月我从浙江过完年回安徽都没有接到任何面试机会,回安徽思索一番后决定一边刷leetcode,一边修改简历的细节,继续投。岗位还是以上的三家的岗。假期在家的学习效率并不高,只能说比纯粹摸鱼好一点。但是机会比想象中来得快一些,二月初收到字节跳动后端开发实习生岗的面试邀请、之后两天投在阿里Java开发岗的简历被hr看见加了好友(最后排上面试的时候已经拿了offer,就不作考虑了)、一周后收到猿辅导服务端开发实习生岗的面试邀请。面试时间都在二月底,时间一下就紧迫了起来。
之后的时间就是刷题+看面经+补基础理论知识,面经这个事情在收到面试机会前都没有在意过,结果开始注意的时候才发现面试要考的东西没系统的学习准备根本hold不住。因为之前的准备基本等于没有,在后面准备面试的两个多星期里都是把闹钟定在六点五十,上午写算法下午看面经查漏补缺。宅在家玩心依然有些收不住,晚上九点以后总要打两个小时王者(一方面也是因为每天心理上很紧张想要排解)。十一点左右会把之前做的笔记过一遍,尽量十二点之前睡觉。
面试前三天卸了王者,专心刷题看面经,依照笔记重复突击了网原(这里无限diss吐槽安大把计科的网原安排在大三下,压根就没考虑过学生大三下有实习需要的可能)。最后的结果是猿辅导一面二面通过、字节一面挂。

面试结束后所想:

首要的感想就是准备一定要充分,逢dalao和涛子哥面试前都对寻找工作的流程和需要学习的内容做过充分的准备。两人最终也都是顺利收割心仪的offer。而我在前期的准备中对网原、数据库、操作系统的重要性毫无认知,以致准备过程中自己十分狼狈。准备面试的最后几天满脑子都只有一个想法:多给一个星期让我再学学就好了。最后是没有时间去复习数据库了,也就直接导致在面字节的时候被面试官抓住Mysql狂轰滥炸打出GG。在这里列举一下个人对后端面试必备的内容和技能(因为我的准备是有突击色彩,所以只列举必备的内容、求职的时候当然是知识技能越多越深为好),希望读到我这篇杂想的人不要重蹈我的覆辙。
理论科目准备:

  1. 数据结构
    常用数据结构和方法一定要掌握,栈、链表、快排、二叉树以及DFS、BFS等。
  2. 数据库
    数据库事务的概念和理解是重中之重,重中之重,重中之重。常用的语句(建表、查询)要掌握。数据库索引的作用以及数据结构也是重点。数据库锁也要了解。
  3. 网络原理
    这个可能是后端开发问的最多的计算机理论课,能掌握多好就掌握多好。网络的分层以及各层作用要掌握,TCP、UDP、http、https这四个协议都是重点。TCP的三次握手四次挥手和http的工作过程是高频的面试问题。
  4. 操作系统
    专门问操作系统的内容可能不是太多,但是会穿插在别的内容里,比如数据库索引为什么要用B+树不用B树,这就要答到磁盘IO。最常见的问题是进程线程的区别和操作系统如何防止死锁。
  5. 算法题
    算法题一般是面试的压轴部分,重要程度不言而喻,应该如何学习网上有太多的博文有讲解,我就不赘述了。

除了这些具体的理论技术内容外,再提一提面试应有的意识和一点技巧。一般的面试流程是自我介绍、项目介绍、项目难点和收获等介绍、技术理论知识(除开上面列举的1-4还会视情况考核你的计算机语言功底)、算法。面试官问你问题一方面是要兼顾上面列举的理论知识,一方面是依据你的简历内容和你在回答时提到的内容进行追问。这就有一个重点:有多大面画多大饼,不熟的东西千万别写简历上、不是很清楚的概念、名词一定不要觉得高级就口嗨说出来,面试官大概率会抓住往下问,不会就白给了。还有面试的整体过程是展现你价值的过程,面试官的目的不是考试,是评估你有没有与职位匹配的价值。所以面试时多表现出你思考的一面(尤其手撕算法的时候),问到稍有了解又了解不深的地方可以直言不是很清楚,但是可以根据自己的知识来进行思考猜测,并和面试官交流,这样也许就不会扣分甚至有加分。问到实在不会的就坦言不会并尽量能把对话内容切换到自己熟悉掌握的领域。

最后附上三次面经链接以及逢dalao的经验贴,希望对读者有所帮助:
猿辅导一面面经
猿辅导二面面经
字节跳动一面凉经
从一个字节实习offer聊如何备战寻找技术实习

最后修改:2020 年 03 月 09 日 06 : 32 PM