第二章04
二、校招规划
1.求职规划
1.1 了解校招
校招主要是企业针对于应届毕业生而举行的招聘,主要可以分为暑期实习生招聘(大三下,研二下),秋招(大四上,研三上),秋招补录(秋招当年11月-12月),次年春招(大四下,研三下)。
校招很重要,应届生的身份很珍贵!!!在校招的时候与我们竞争的大部分都是没有工作经验的学生(少部分有实习经验),而且校招企业对学生的包容度高,一般对企业来说,社招更看重实际工作经验,而校招更愿意“培养人”(人才储备),校招招的是有基础,愿意学习的应届生;社招招的是有经验,可以直接上手的员工,相比较下来说,应届生更容易在校招中拿到优质offer。
一定要抓住校招的机会,不要高估自己的社会竞争力,对应届生来说,大部分好工作都是校招中签的,错过了校招总体感觉是每况愈下,好工作越来越难找。
1.1.1校招详情
校招流程
暑期实习生招聘:在每年的3-4月,是针对于大三下以及研二下的暑期实习生招聘,对大三下及研二下同学来说,如果是基础不错的同学,则建议是去参加此次招聘:
第一点则是因为实习生的招聘难度较低(相较于秋招),且通过实习转正进大厂的难度小于在秋招时直接面进大厂的难度;
第二点则是就算无法通过实习转正,此次实习经历也是可以写在简历上的,而一段好的实习经历对简历甚至是面试的通过率都是有帮助的。而且如果在公司实习期间表现较好的话,会有十分大的几率可以拿到一个SP的offer的;
第三点则是就算最后拿不到暑期实习的offer,那些面试经验也会让我们对自己的学习状态以及该如何提升自己有十分清楚的认识。
- 秋招提前批:以21届秋招来说,提前批是在5月中-7月这段时间,一般来说提前批是公司为了提前抢到人才所设置,所以可以说是“神仙打架”了,各种大佬云集,竞争激烈,但是提前批也有提前批的好处,首先就是一般公司为了提前批的效率是没有笔试的(适合一些算法较弱的大佬),只要简历通过筛选,整个面试流程特别快,而且大部分公司如果在提前批挂了的话在正式秋招是可以再次投递的(投递是注意看招聘页面是否注明影响正式秋招),但是还是建议大家准备好了再进行投递(有一定基础),因为提前批挂了会有面试记录的;其次就是在正式秋招前就可以拿到一个offer岂不是可以大大的提高我们的自信心了嘛。
- 秋招:正式秋招是针对于大四上以及研三上的同学,秋招的持续时间是整个校招流程中最长的,通常为7月-11月,建议所有的同学们一定要参加秋招,包括正在实习的同学(多给自己准备几条路),把握好秋招,秋招是HC最多的时候,大家一定要多投简历,通过各种渠道多投,而因为秋招的持续时间长,对大部分同学来说,都会是一路被刷到底的,保持好心态以及自己的学习节奏,不断的通过面试总结复盘提升自己,不断的去面试,都会拿到offer的,建议大家可以多拿几个offer(如果实力允许),毕竟有得选总比没得选强嘛。
- 秋招补录:是针对秋招的补招,一般于秋招同年11月-12月,相比于秋招来说竞争比较小,是面向秋招没有拿到满意offer以及因考研或其他原因错过秋招的同学,hc较少。
- 春招:春招一般发生在每年的3月-4月(针对大四下,研三下),相较于秋招来说,春招的hc较少且招聘周期较短,是应届生毕业前的最后一次校园招聘,主要是考研结束后的同学、错过秋招或者秋招没有拿到满意offer的同学竞争,相较于秋招来说大神可能少了一些,但是会有很多经历过秋招经验丰富的同学,所以大家一定要好好准备春招,这是毕业前的最后一次校招,错过了春招,社招的难度是大于秋招的。
校招的形式
以大数据开发的岗位来说,秋招的流程是:
- 网申(内推):各大公司的招聘官网、牛客网上的秋招时间线发布贴、师兄师姐内推、牛客网讨论区内推、牛客校招日历、海投网等。
- 笔试:算法题(重中之重)+计算机基础选择题+大数据相关的知识点+Java(C,C++等)+数据库相关知识点。
- 面试:大部分的公司技术面试有2到3轮,每一轮的大概时间在40 到 70分钟之间,主要是根据你的简历所写来提问,涉及简历所写的项目、大数据技术框架、编程语言(如Java、C++等)、计算机基础知识(计网、计组、数据结构、操作系统等)、数据库(MySql、Redis)、设计模式、手撕算法以及SQL题等。
我在秋招面试的公司中,大数据开发的面试都是与面试官一对一进行的技术面,群面很少。
岗位情况
岗位HC:相比较于后端、前端、客户端、测试开发这些岗位来说,大数据开发岗位的HC较少,且在当下大数据这个概念比较火,所以整体来说大数据开发岗位的竞争比较激烈。
公司选择:大数据开发这个岗位只有在一些比较大的公司才会进行招聘,所以可以在进行公司选择时尽量考虑一下公司的体量,因为只有较大的公司才会有足够的数据量以及对校招生来说更加完善的培训体系。
个人职业发展:
大数据是一个值得深耕的行业,而且在国家的大力推动下,在未来的一段时间内,大数据都会是一个比较火的概念,而如果想要入门大数据开发,我觉得需要掌握技能树中所提到的技术,而如果想要在大数据行业进行深耕,则需要自己不断的关注一些大数据相关新技术的出现,以及需要多关注一些比较火的大数据社区(如阿里云栖社区)。保持不断的学习才能更好的提高我们的核心竞争力。
心态建议
大部分人的秋招会是一路被刷到底的,而我想说的是大家不要被那些失败所影响,因为秋招是一场持久战,不到最后都还是有机会的,对大家来说更重要的是在每一次面试的复盘与继续学习,从而找到最适合自己的学习方法以及提高自己的学习能力,这会对自己有很大的帮助,不要害怕失败,坚持下去一定可以拿到想要的offer的!!!保持心态,积极复盘。
1.2 校招规划
1.2.1岗位选择
对于招聘前的准备,首先需要明确自己想要从事的工程师岗位,再确定所从事工程师岗位的技术栈,不断聚焦去学习,学太多没用的东西既浪费时间也消耗精力。
- 大数据开发:是大数据中最普遍的一个方向,包括实时数据开发、离线数据开发、数据研发等,主要是做对海量数据的采集、清洗、入库、分析等工作,参与数据平台的研究,发掘数据的商业价值,提供实时数据计算,打造企业的数据模型等,一般对于应届生来说,我觉得需要掌握技能树中所提到的技术,是大数据行业中hc较多的一个岗位。
- 数据仓库开发:包括实时数仓开发、离线数仓开发等,主要是做对公司的一些相关业务所产生数据的数据仓库的开发与优化,构建数据模型,etl实施,etl性能优化以及相关技术问题,面向业务的olap,报表,数据提取工具等开发工作,主要是需要掌握Java、大数据相关框架、精通SQL、数据仓库实施方法论、了解数仓体系、如何从0到1搭建数据仓库,岗位相较于大数据开发来说hc较少一些。
- 大数据算法:该岗位要求较高(硕士起),因为涉及到算法,所以薪资也是大数据行业中最高的,主要是负责公司数据中台用户画像标签建设、优化用户画像标签模型和算法、推动用户画像数据不断向通用化、平台化方向发展、从数据中发现现有系统和算法的不足,提出改进算法并推动实现,该岗位需要掌握数据挖掘、机器学习、深度学习算法模型,掌握Java/Python,掌握部分大数据框架(如Hadoop),该岗位在校招中hc较少,主要是面向社招,要求较高。
1.2.2校招准备
- 暑期实习生:如果是准备参加暑期实习生招聘通过实习转正的同学,那么需要在大三上(甚至更早)就开始准备,因为暑期实习招聘的难度较低是相较于正式秋招来说的,想要进大厂也没有那么容易,需要同学们好好准备的。
秋招:而对于基础不太好而未春招(暑期实习生)或错过春招的同学来说,重中之重就是准备接下来的秋招,以笔者本身来说,早早的就确定了期待的岗位是大数据开发工程师,可以给大家分享一下笔者准备秋招的时间线:
3-5月,因为对大数据相关知识的准备不充分,错过了春招,而这段时间笔者则根据自己所做的思维导图,来学习大数据的相应的框架,对初学者来说建议的还是视频+书+博客,不建议初学者直接抱着书啃,入门太慢而且无基础看书效果不好。
5-6月,准备大数据相关的项目,最好是准备两个相关的项目,然后自己动手细细的做一遍,吃透项目的每一个细节,具体的项目推荐可以参考一下第三章的3.2节。
6-7月,开始准备算法题,首先是刷剑指offer(牛客网可免费刷,大神题解),刷的时候一定要多思考,多看几种解题方式,其次救是刷一些经典高频算法题(推荐牛客题霸),总共刷了300多道算法题(需熟练掌握),刷的时候尽量不要使用工具来写,因为我在面试中遇到的手撕算法题大部分的都是使用共享文档来直接手撕,其次是在这段时间可以开始计划着时间面向进行简历复习,抓住关键知识点,不断深究原理。
7-11月,整个秋招的持续流程,此时我们应该开始关注求职相关平台进行海投,当然同时应该重点关注我们心水公司的招聘信息,不断的面试积累经验,不断的复盘积累经验,要真正掌握简历上所写的每一个点,同时可以多在牛客网的讨论区多看看大家发的同岗位或者即将面试公司的面经,然后对比进行自我检查,对自己所掌握的知识点进行查漏补缺。
- 秋招补录:11-12月,没有在秋招拿到满意offer的同学或者没有拿到offer的同学,在这段时间内也可以积极准备,每年在秋招补录上岸的同学也有不少,虽然hc较少,但是竞争的人数相较于秋招也有所减少。
- 春招:对于考研或者错过秋招的同学来说,应该利用12月-次年春招开启前的这段时间规划自己的学习重点,积极准备,因为相比于秋招来说,次年春招不论是招聘的公司或者是岗位的hc都更少一些。
2.学习规划
2.1 校招岗位技能树
简单介绍一下校招大数据开发需要掌握的基本技术栈,每一部分的重点以及如何去学习将在第三章详细介绍
2.2 学习方法及资源
Java:
对于刚刚入门的同学来说,最好的方式还是通过看视频来学习Java,也不建议初学者直接去看源码写项目。
安利一下牛客网的Java基础课,然后在看视频学习的时候搭配着《Head First Java》(比较有趣的一本书)进行理解学习,Java的细碎知识点比较多,在学习面向对象思想、JVM等的时候重在理解,而在学习集合、反射、常用类等的时候则重在动手,理解Java与C++的区别。
《Java 核心技术卷 1+卷2》是两本很好的工具书,介绍的的比较深入和全面,建议是在有一定的Java基础后进行阅读学习(也可用于视频学习后进行知识点的巩固与提升),也可以用来巩固知识点或者当做工具书参考,是两本适合放在自己身边的好书。
《Java编程思想(第四版)》大部分人称之为Java领域的圣经,不适合初学者阅读,但是内容多且全,一般可以用作知识点加深巩固提高,亦可作为参考工具书。
《深入理解 Java 虚拟机(第三版)》必看书籍,无论是面试还是在Java领域深入的研究,都离不开这本书籍,建议大家要多看几遍,都是干货,而且里面很多实战内容自己最好动手实践一遍。
《Java并发编程之美》非常适合来学习Java多线程的,讲解的通俗易懂,书中的内容基本都是结合代码来讲解的,建议大家在视频学习到Java多线程部分的时候可以搭配着学习该本书。
《Effective java》必看书籍,可以说是一本Java领域国宝级别的书,非常经典,这本书主要介绍了在 Java 编程中很多极具实用价值的经验规则,这些经验规则涵盖了大多数开发人员每天所面临的问题的解决方案。这篇文章能够非常实际地帮助你写出更加清晰、健壮和高效的代码。本书中的每条规则都以简短、独立的小文章形式出现,并通过例子代码加以进一步说明。
框架部分的学习也是建议通过视频+自己动手实践来学习,建议是跟着视频做几个项目来巩固自己所学习到的知识点。
记得多总结!!!打好基础!!!!把重要的知识点都记录下来。 API 文档放在自己可以看到的地方,以备自己可以随时查阅。
计算机基础知识:
操作系统:
操作系统这方面我觉得掌握基础知识和 Linux 的常用命令就行以及一些重要概念就行了
关于操作系统也是不建议初学者直接抱着书去啃,太难而且效率不高。因为操作系统比较枯燥的原因,建议这部分可以看视频学习比较好一点,推荐一个 Github 上开源的哈工大《操作系统》课程:https://github.com/hoverwinter/HIT-OSLab 。而书籍方面的话可以推荐一下《深入理解计算机系统(原书第三版)》,这本书不建议大家直接抱着啃,对初学者来说太难太难!!可以搭配着视频来对一些重点知识进行巩固提升,等大家成为大佬之后可以细细研读学习。
对于 Linux 我们要掌握基本的使用即可,需要我们对一些常用命令非常熟悉比如:目录切换命令、目录操作命令、文件的操作命令、压缩或者解压文件的命令等等。推荐一个 Github 上学习 Linux 的开源文档:《Java 程序员眼中的 Linux》:https://github.com/judasn/Linux-Tutorial《鸟哥的Linux-基础篇》讲解Linux基础比较详细的一本书籍,也是不建议初学者直接全本阅读,可以先挑一些对于Linxu比较重要的知识点进行学习理解,在学习的时候多做总结,多思考。
计算机网络方面:
面试八股文(考察的知识点高频且重复),必问知识点,在面试中对这方面的知识点要求不高,掌握基本的知识点就可以了(专门做网络方面的除外哈),给大家推荐《网络是怎样连接的》 、《图解 HTTP》,这两本书都属于比较有趣易懂的书籍,也适合没有基础的同学进行学习(准备面试时可以多看面经掌握一些高频的考点)。
数据结构与算法:
在秋招中算法给我的体会就是太太太太重要了,笔试算法不行基本通过率就很低了,面试也是,如果手撕算法撕不出来也基本是宣告凉凉了。
建议大家在学习完Java基础后,就每天抽出一些时间来学习算法和数据结构,提高自己的编程能力,需要 自己坚持不断的刷题(牛客题库、LeetCode),以目前的面试来说,手撕算法已经成为必备技能了。
给大家推荐两本比较好理解的书来帮助大家理解数据结构与算法《大话数据结构》、《漫画算法:小灰的算法之旅》,适合没有基础的初学者进行学习,然后是建议大家在有一定基础后就可以搭配着书以及算法题来进行学习。《剑指offer》是必刷的,可以在牛客网上找到免费的(有许多大神的多种解题方式)。
算法很重要!!!大家要多刷多练(刷算法时建议不要使用IDEA等工具)。
数据库:
数据库也是必须要掌握的,数据库相关的知识点也是校招考察的重点。
首先给大家推荐《SQL 基础教程(第 2 版)》来作为初学者的入门使用,在学习的同时对书中所涉及到的SQL语句一定要自己动手多练,因为对大数据开发的面试来说,在面试中所遇到的手撕SQL题的概率基本上可以和手撕算法一样,所以熟练掌握SQL的编写是十分重要的。
《高性能 MySQL : 第 3 版》可以帮助大家在有一定基础之后进行进阶修炼,但是全书阅读较难,建议大家可以针对性的学习某些知识,比如索引、优化、存储引擎等。
极客时间的《MySQL实战45讲》,从实战出发来讲解MySQL,建议大家可以去看看(可以免费试看前几章)感受一下大佬的厉害。
Redis也是需要掌握的,给大家推荐一下《Redis设计与实现》,比较经典的书籍且易学,同学们在学习的时候可以安装一个Redis数据库来进行实际操作学习,有助于同学们更快的学习与理解。
最重要的是熟练的编写SQL语句!!!在面试中会高频的出现手撕SQL题(牛客网上有练习题)。
大数据框架:
大数据框架部分是推荐大家使用视频来进行学习的,推荐尚硅谷大数据视频(较全且较易获取),大家可以参考我的学习顺序:Hadoop ZooKeeper Hive HBase Sqoop Flume Kafka Scala Spark Flink 建议学习时最好跟着视频自己动手在虚拟机上搭建集群框架,然后练习常用命令。
初学者在学习视频时可以搭配着书籍进行补充学习,推荐一下《HADOOP权威指南 第4版 》(Hadoop是整个大数据的基石)、《Hive编程指南》(一般做数仓都用Hive),除此之外,大家在入门时也需阅读一些大数据基础书来了解大数据的意义(《大数据技术基础》、《大数据Hadoop 3.X 分布式处理实战》),在学习时重要的还是动手去做,注意每天学习之后一定要做总结,并且进行思考理解。
大数据的项目都会是多个框架搭配使用的,所以建议大家在学习完成多个框架之后,通过学习对应的项目来加深对技术的理解,以及大数据技术的实际应用。
数据仓库:
对于初学者入门数仓的,一个学习路线是,学习数仓建模各种理论,不求能深入理解,但至少有基本认识,然后加入到实际项目中,结合理论去学习项目中的模型,来更好的理解数仓建模。
《大数据之路:阿里巴巴大数据实践》 ,从阿里巴巴大数据架构出发来介绍数据仓库(包括数据采集、数据同步、数据挖掘等),是结合实战来讲的一本书籍。
学习数仓建模推荐一本经典书籍Kimball的《数据仓库工具箱:维度建模权威指南》,该书通过多个方面来讲解维度建模,学习该本书有一定基础后,可以做一些数据仓库项目(项目资源会在3.2节进行推荐),有助更好的理解数仓建模的知识。
- 相关面经总结:可以直接去牛客网讨论区搜索大数据开发面经,有特别多同学分享的面经(强推)。