我是如何从零基础拿到第一份实习的(各个时间段的实操经验分享) 您所在的位置:网站首页 刷题怎么刷第二遍的 我是如何从零基础拿到第一份实习的(各个时间段的实操经验分享)

我是如何从零基础拿到第一份实习的(各个时间段的实操经验分享)

#我是如何从零基础拿到第一份实习的(各个时间段的实操经验分享)| 来源: 网络整理| 查看: 265

我已经在牛客写了好几篇互联网相关的求职经验、高频知识点汇总的文章了,简要介绍一下,有需要的同学可以点进去先收藏,之后用到时可以看一看。如果有帮助的话,希望大家给个赞,给个收藏!有疑问的也可以在评论区留言讨论,能帮的上大家的都会尽力回复的!

刷题经验,里面包含按类划分的高频题号,并且每类题下都有我汇总收藏的优质博客:高频知识总结 | 算法题如何刷?我的高效刷题方法 面经总结,包含我的实习和秋招的面试真题:高频知识总结 | 我的实习和秋招互联网高频面试题分享 【操作系统】高频面试题总结:高频知识汇总 | 【操作系统】面试题汇总(万字长文通俗易懂) 我的银行科技岗求职经历分享,从前期准备到笔面考试内容都有:我和牛客的故事—银行科技岗经验分享(干货满满+经验帖汇总) 1. 前言

之前在一篇秋招总结里提到会单独总结一下自己的互联网求职经历和经验,链接在这:秋招总结 | 互联网=>银行=>证券=>各种国企海投选手今天来把这段经历分享出来,希望能帮助更多想在互联网从事开发工作的同学们。

先介绍一下背景:我本硕就读于在京某985高校的非计算机科班专业,但总的来说是计算机大类里的专业,,求职的目标城市是北京,岗位是Java后端开发。秋招最后拿到字节和华为的sp,年总包都在42w+。

这篇分享会按时间顺序来写,包含我每个阶段看的资料、做了什么准备、有什么心得经验分享,力求做到详细,这样写的目的是有一个更加直观的时间线参考,另外需要说明的是我主要针对Java后端来做经验分享,但方法论、时间点不管什么岗位都是相差无几的,我会把各个阶段我的求职心得经验给分享出来,其他岗位也可以复用这些经验。希望能够帮到更多的同学!!

经验分享、排版都挺不容易的,希望大家多多点赞支持!

2. 准备实习阶段(研一下学期的3月 ~ 研二下学期的3月)

我是研一下学期开始着手准备的,当时疫情在家刷知乎牛客,越刷越焦虑,之后就开始随大流准备Java后端。我是完全零基础,没有接触过Java,没有接触过各种算法,唯一接触过的就是计算机网络和操作系统这两门课程,但都是浅尝辄止,更别说什么Web框架了。

我个人总结如果想零基础进入到一个新领域,其实无非就是这么几步:打破信息差 => 汇总需要了解的东西 => 设置阶段性目标,我下面也就是按照这个方法论来分享我的经验的。

2.1 明确重要信息来源

因为求职打的也是一个信息战,所以要先打通信息渠道,看看求职互联网的同学都在关注哪些网站、哪些公众号,我分享一下我当时主要关注的网站和平台,以及我分别用他们获取什么信息。

牛客。牛客真的是帮了大忙,因为有各种师兄师姐在牛客上分享面经和总结等等,我一般会搜索的关键字是“秋招总结、xxx岗求职,xxx岗学习路线,xxx公司面经”等等,获益匪浅,感谢牛客平台。 自己学校的互联网求职群。这个是通过自己学校的就业相关的学生组织加的,主要是找一些内推信息等等。 北邮人论坛、北大未名bbs。在这两个论坛可以看到一些针对部门的讨论,可以在拿到offer后来这查询。 脉脉。同上,我主要也是用脉脉来查某个特定的部门,找到组织。 2.2 需要学习的内容和资料

其实多看几篇牛客,多刷一些面经,就可以基本把你要在实习前所掌握的内容都整理出来,不过我自己也根据面经和我平时复习的经验,总结了Java后端要想卷到一份实习,必须掌握的知识点。

大概分算法题 + 八股文两大块儿,其实要想卷到后端实习,Web框架真的并不是必须的,所以这里就没有放框架相关的东西。我放的是一个最低限度,是底线,至少这些东西你都要搞明白,已经算是向着实习迈出一大步了。

2.2.1 算法题

我刷算法题的详细经验帖子也总结了一下,放在这里需要的同学可以点进去看看:高频知识总结 | 算法题如何刷?我的高效刷题方法

算法题需要掌握的内容

《剑指offer》至少刷3遍 leetcode前200道 + 热题100(这两个有重合) 分类刷题(双指针、滑动窗、递归、DFS、回溯、二叉树、堆、动态规划、背包问题、链表、二分法、位运算、辅助栈、前缀和、LCS和LIS问题)

算法题的资料汇总

Carl的代码随想录:各种举一反三,可以用一种套路消灭一类题。Carl哥总结的各种套路特别棒,我觉得算法题的答案总结只看他的完全就够了。 CodeTop:也是站内搬砖的胖子大佬维护的一个站,这个站的特点是统计了牛客面经中各个公司考察算法题出现的频次,非常有用,公司可以精确到部门,亲测比较准,可以在面哪个公司的哪个部门之前再突击一下。并且网站也可以把算法题按类别排序,这个功能很赞!这样就可以根据每个类别的算法题出现频次来有选择性的刷题。 2.2.2 八股文 八股文需要掌握的内容,我根据自己的经验和一些面经都总结在了一个表格里,这些还是我上面提到的,是“底线”,至少这些你需要全部掌握,之后的框架的八股文什么的可以不会,但要想求职Java后端,这些如果不掌握是绝对不ok的。

八股文资料汇总 《Head First Java》 Java入门的经典书籍,是我的启蒙书籍,如果只让我给零基础学Java的同学推荐一本书的话,那就是这本书。 《深入理解Java虚拟机》不用全看,可以当成一个“字典”,在看一些JVM博客总结看不懂时可以从这个里面找答案。当然以后有时间了以后还是建议把这本书好好研读一下。 《Java并发编程实战》Java并发入门书籍 cyc百科全书:经典中的经典,霸榜Github Javaguide:guide哥的宝藏里啥都有,比较适合速成。 2.3 明确重要时间节点 暑期实习面试时间,研二的下学期开学,也就是2月份 ~ 5月份就开始陆陆续续的有暑期实习的时间了。所以在此之前一定至少把我上面提到的所有内容都熟练掌握! 暑期实习时间,研二下学期的暑假,也就是7月份 ~ 9月份,是暑期实习阶段。 秋招阶段,和暑期实习时间有交叠,是研二下学期的7月一直到这一年的年底,都算是秋招。可以看出暑期实习和秋招是有重叠的,所以如果你的实验室不care你实习不实习的话,尽量在此之前就多找一些日常实习,这样在秋招时不至于手忙脚乱。 春招阶段,研三下学期开始,也就是过完年到毕业这个阶段,都算是春招。秋招如果没有满意的offer就要关注这一时期的招聘信息。 2.4 我的复习时间安排和复习方法分享

在这里分享一下我在实习之前的复习时间线,大家可以简单参考一下,从刷题 + 八股文的进度来做分享,我的实验室是只允许暑期出去实习一段时间,其余时间需要完成实验室的任务。

2.4.1 复习时间安排 研一下学期 3月 ~ 8月:刷了一遍《剑指Offer》,同时在刷的过程中把浙大陈越的《数据结构》慕课视频系统看了一遍,里面提及的代码全部自己敲了一遍(后来觉得其实没必要,只要看懂基础知识就行了,还是为刷题服务);Java基础从头到尾过了一遍,因为是疫情在家边玩边学,所以效率比较低下。 研二上学期 9月 ~ 12月:《剑指Offer》刷第二遍,LeetCode 分专题刷滑动窗、二分法、位运算、辅助栈、二叉树、链表、动态规划、背包问题等,看的资料主要是 Carl 的《代码随想录》,期间把题量刷到了200道左右。看了一些 Java 的高阶的知识,主要包括 JVM 的基础知识、Java 并发,JVM 看的是JavaGuide的,Java并发看的是《Java并发编程实战》这本书,内容都不多,第一遍看肯定有点难以接受,但过一遍之后心里有个大概就ok了,之后看第二遍的时候就好多了;这期间我稍微看了一些框架相关的东西,包括MyBatis、Spring、SpringMVC、SpringBoot这四个框架。 研二下学期 2月 ~ 3月:因为马上开始实习面试,所以这个阶段主要是查漏补缺,题量到250 ~ 300就差不多了,每种题型已经都见过了,要做的是把这两百多道题巩固一下,做过的题别不会做;我是在最后这一阶段才开始背八股文的,包括计算机网、操作系统、数据库、设计模式、Linux、Redis中间件、框架相关的八股文、Git等等,基本上保证一周能抽出时间看一个点、复习一个点,每个方面的主要知识掌握了就ok了;注意实习面试的项目经验并非必须,如果有时间就可以找一个现成的项目看看CRUD怎么做,针对某一个感兴趣的技术点深入学习一下,做到面试的时候能聊几句就可以了。我看的是 mall 项目(烂大街的),把商品、订单、营销相关的业务代码都捋了捋,以及深入看了缓存的实现,这应付实习面试足够了。 研二下学期 4月 ~ 6月:这期间不断面试,我面的算比较少的,面了有七八家公司的实习Java岗,并且在这个过程中也不断看面经、巩固自己的知识框架,同时总结面试经验,不然面这么多一点作用都没有。最后拿到了字节、腾讯CSIG、美团优选的实习Offer。 2.4.2 复习方法分享

写笔记:我个人在学新东西或是做项目的时候喜欢写笔记,写笔记的主要作用是把知识内化为自己的,写笔记不是一味的抄,而是要用自己的话去写,以自己的理解写出来,这样是非常有助于学习的。这些是我用有道做的笔记,已经写了三百多篇了,大家也可以自己写笔记,因为看别人的笔记总归没有自己总结来的记忆深刻。图片说明

回滚式复习法:一个知识点学一遍就忘才是正常的事情,除非你是天才能过目不忘。回滚式学习法的意思很明显就是一遍一遍的过,我自己是仿照cyc给过的一个思维导图,建立了自己的Java后端知识框架,然后把每个知识点的答案写在思维导图的备注里,之后每天早上会大概过一遍问题的核心点是什么。下面是我在cyc老哥的基础上自己总结的思维导图,用的是百度脑图。图片说明

不要死记硬背,梳理清楚知识的来龙去脉:通过死记硬背去应付面试肯定是不行的,千万不能不求甚解,只记个大概,对于一个技术点不仅要知道答案,还要梳理清楚技术点的来龙去脉。理工科的同学逻辑性肯定不会特别差,而技术又是一个逻辑性很强的玩意儿,从为什么出现 => 技术点的出现了解决了什么问题,什么痛点? => 有什么优缺点,这一条线串下来就把一个知识点给融会贯通了。

举个例子:比如面试官问你对索引有什么了解,我会从索引是干什么的?(为了加快检索效率的)==>> 索引的类型,都有什么特点(B+、B、哈希、红黑) ==>> 到用了索引有什么优缺点?(空间换时间) ==>> 以MySQL索引为例(InnoDB引擎索引的特点) ==>> 用索引时要注意什么?(索引失效) 3. 实习笔面阶段(研二下学期 4月 ~ 6月)

在这个阶段之前,我上面提到的那些东西你肯定已经全部都掌握了,接下来就是要进行实习笔面。我就简单从简历、笔试、面试三个方面来谈一下自己的经验吧

3.1 简历如何做? 用什么做?推荐用超级简历或者是职徒简历,免去word排版困难,并且比较简洁干净,符合程序员的作风。 写哪些东西?推荐大家从教育经历、专业技能、实习经历(如果有)、项目经历、自我描述这几个板块来写。 每个模块怎么写? 教育经历:学校 - 专业 - 学历 - 成绩 - 获奖信息(奖学金、国际大奖等等) 专业技能:这个部分主要是放这个计算机相关技能的,按三个程度来整,掌握 - 熟悉 - 了解,比如“掌握Java基本语法、多线程等内容”,“熟悉JVM内存结构、垃圾回收机制等”。 实习经历和项目经历:按STAR法则写,背景 - 目标 - 你针对什么困难采取了什么行动 - 达到什么收益效果。比如“在xxx实习期间数据查询耗时增加,针对此问题采取分库分表/主从分离/缓存预热的操作,达到端到端avg耗时降低100ms的收益”。 自我描述:最好是描述词 + 事例的方法,如果没有事例就省略这个自我描述这一项。比如“我的抗压能力强 - 曾经在两天内完成xxx系统搭建/软件开发/数据比赛,并取得了xxx的成绩” 3.2 笔试注意事项

笔试别的没什么需要多说的,就是要注意这个ACM模式!因为平时在 LeetCode 敲代码都是核心模式,但在牛客的笔试都是 ACM 模式,大家要在牛客找一套 ACM 模式的题练练手,提前把输入输出的模板给记住,不然跟我一样题会写,但输入输出不会整就得不偿失了!这里直接给大家放一个牛客的链接,可以查看答案,看看别人的输入输出怎么写的:ACM输入输出练习

3.3 我总结的面试技巧

面试时八股文的技巧我总结了不少,这个总结并不是“回答模板”,也可以真正帮助自己了解透一个知识点,避免死记硬背。我学习八股文的原则就是 wwh 原则,what - why - how 原则,简单来说就是“是什么,为什么,怎么做”,这三点不用生搬硬套到每个知识点上,我就举一些简单的例子来帮助理解。

what?why?how?先说技术是什么?先论技术出现的背景,解决了什么问题,原来没出现的时候是什么样子的,现在出现这种技术以后有多方便,再从这个技术如何解决了这个问题去答。 比如 https,原来窃听、伪造、篡改,现在防窃听、认证、防篡改,怎么实现的?就是SSL。随后就是对 SSL 的过程展开,对称加密,非对称加密特点等等。 比如 Spring、SpringMVC、SpringBoot、MyBatis 框架。 Spring:解决了原来的 new 问题,现在交给 bean 管理,怎么交给 bean?xml 或 注解; springMVC 的话,原来是 servlet 很复杂,现在的话,直接封装,注解映射 controller,怎么实现的呢?doDispatch 方法; SpringBoot 原来的话,配置地狱,现在的话,开箱即用,帮我们把所有配置都做了!怎么做的呢?@EnableAutoConfiguration里的 AutoConfiguration 配置类做的,里面有个 selectImpors 方法,getAutoxxx 把 META_INF 下有个 Spring.factories 里面有一大堆 xxxxAutoConfiguration 类。 MyBatis 的话:就是说说为什么出现 ORM 框架,原来 JDBC 底层那套东西,代码和 sql 糅在了一起,扩展性极差。现在一张表对应一个 mapper.xml 很方便,可以复用。 比如 TCP 拥塞控制算法:解决了网络拥塞正反馈问题,用的什么算法?两种 比如 ThreadLocal ,为什么要用 ThreadLocal,它解决了哪块儿的问题?具体原理是什么,根据原理的哪一点能解决问题? 比如消息队列,why 为什么出现消息队列?解决了什么问题呀? how rocketMQ 和 kafka 是如何解决的呀?原理是什么? 比如虚拟内存 —— why 为什么要出现虚拟内存,解决了什么问题?how 解决的思路和原理是什么?

相信大家看了这些例子,也就会知道面试的时候该如何答八股文了,顺着自己的思维逻辑去逐点作答即可!

4. 实习阶段(研二下学期 7月 ~ 8月)

因为实验室的原因,我能够实习的时间也不长,只能从我个人浅显的认知谈一谈我觉得实习需要注意的一些点。如果要想了解更详细的内容,就需要大家自己再去搜集更多相关的资料啦!

4.1 明确自己实习的目的

想想自己到底要不要转正,这是你实习以后首先要明确的,我觉得从这几个角度考虑。

往年转正率:这个可以通过自己组内的其他同学了解,和mentor熟了之后也可以打听打听,一般都会有啥说啥的。 组内氛围:卷不卷?老人带不带新人?能不能手把手教?花在新人身上的时间有多少?这一点很重要,如果老人不带新人,那让你自己在那吭哧瘪肚半天也整不出来个啥花活儿来,自己也没学到啥东西,也没做出什么产出。有时候mentor一句话能解决你一天的疑惑,你需要主动去问去请教。 往年转正薪资水平:这个也是一个重要参考,如果转正是白菜价,自己又不甘心的话,那就趁早做打算。 4.2 如何从实习中真正学到东西?

我觉得在实习的大部分同学都不会接触到太核心的东西,但整个服务的架构、请求流程、各种工具平台这些都是你可以通过看文档学习的,我理解你至少先了解你们这个大部门都有那些大的业务,这些业务对应的宏观框架是什么?用到了哪些技术?细节你可以不知道,但至少别人问你的时候你可以跟他聊几句。

再者就是充分挖掘你做的需求里的困难点,不要拘泥于你做的那些简单的需求,多看一看框架里你感兴趣的代码的部分,比如某个地方用了什么设计模式?这个点为什么要并发处理?为什么要异步处理?这里为什么要用线程池?线程池的参数为什么这样设定而不是那样?如果不明白就及时请教组里的大佬,我觉得只要你态度诚恳大部分人也是很乐意去为你答疑解惑的。

再就是在实习中充分学习一下工具的使用,比如git,原来没实习的时候,git的操作看一次忘一次,但是真正到了工作环境之后,才会明白git原来是这么用的,并且这个过程很快,有可能你一下午半个小时就掌握了你原来三番五次都记不住的git命令。真的应了那句话“后端大部分工作都是熟练工”,你看别人操作一遍大概就都明白了。

4.3 如何在面试中描述你的实习经历?

还是之前提到的STAR法则。我来说一说我是如何介绍我的实习经历的:

先从宏观介绍:我们的这个服务主要是在美团优选的xxxx场景下,服务包含三大块,分别是xxx,xxx,xxx,整个服务的流程是这样的,用户先请求xxx,再xxxxxxx,最后xxx。我能接触到的是xxxx模块的业务代码,期间完成了一些产品需求,主要是xxxx。 再用STAR法则介绍你完成的工作(其实就是准备几个故事):(Situation)在xxxx的背景下提出了xxxx需求,(Task)我在其中主要就是负责完成一个数据查询接口的实现和性能监控工作,(Action)我用了xxx工具,期间遇到xxx困难,针对这个困难我通过使用xxxx进行性能分析,发现指标xxxx出现异常,之后做了xxxx工作解决了这个问题。(Result)最终达到了xxx的并发效果。 5. 秋招阶段(研三上学期 8月 ~ 12月)

其实到秋招时,大家肯定都已经成为“求职老油条”了,各种套路也都知道,都了解了。所以我觉得也没什么经验可以分享了,主要就是把实习经历按照STAR法则补充到那你的简历中,海投海投海投就ok了!

另外需要说明一点的是,如果你补充了实习经历,那么秋招阶段对你八股文的考察可能就没有那么多了,就主要会聊你实习做了什么。但是!你补充到简历中的和实习经历相关的基础知识你一定要特别特别熟悉,比如我实习经历中用到了Java的线程池,我在面字节的时候已经不拘泥于问我线程池的基本内容了,他问我各种场景下线程池的参数应当怎么选择,我们的服务为什么设置了那样的参数,有没有什么理论上的依据。

其他关于秋招就没有要多分享的了,因为秋招面试基本和实习面试是一样的,笔试 + 面试,只不过要求可能要比实习更高一些,要准备的东西可能更多一些。

6. 后记 有人问过:实习和实验室的任务冲突怎么办?如果实验室比较在乎你,想留你在实验室锻炼,没有机会去实习,那其实是没有任何办法的,因为肯定是要以毕业为首要目标,能和老师商量的尽量商量,因为有实习和没实习在秋招里真的非常非常不一样。但是实在是没有实习的话也不要太焦虑了,因为没实习也是有拿到大厂offer的先例的,就需要你平时多下功夫参加参加开源项目了。 有人问过:实习阶段和秋招面试冲突怎么办?我觉得这个其实不算是个问题,因为你实习面试之前就已经把整个知识框架都整理的差不多了,所以秋招就是重拾一下。唯一不能间断的是刷题刷题刷题!我在实习阶段也从来没有终止过刷题行动,但我基本不刷新题,保持每天2道老题 + 1道新题,甚至3道老题的节奏,目的是保持刷题的手感,因为一周不刷题你的手就会生,这个非常重要!八股文你看以前的笔记,看两天就能找到感觉,但刷题不行,需要长期保持手感!

终于把这段经历写完了,可能有写的遗漏的地方,不完善的地方,都是个人的愚见,也算是给互联网板块的秋招画上一个句号。

祝愿大家都能找到自己心仪的工作!写作排版不易!希望大家多多点赞收藏!

我已经在牛客写了好几篇互联网相关的求职经验、高频知识点汇总的文章了,简要介绍一下,有需要的同学可以点进去先收藏,之后用到时可以看一看。如果有帮助的话,希望大家给个赞,给个收藏!有疑问的也可以在评论区留言讨论,能帮的上大家的都会尽力回复的!

刷题经验,里面包含按类划分的高频题号,并且每类题下都有我汇总收藏的优质博客:高频知识总结 | 算法题如何刷?我的高效刷题方法 面经总结,包含我的实习和秋招的面试真题:高频知识总结 | 我的实习和秋招互联网高频面试题分享 【操作系统】高频面试题总结:高频知识汇总 | 【操作系统】面试题汇总(万字长文通俗易懂) 我的银行科技岗求职经历分享,从前期准备到笔面考试内容都有:我和牛客的故事—银行科技岗经验分享(干货满满+经验帖汇总) #实习经验分享##实习##阿里巴巴##腾讯##华为#


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有