大数据-考研or科技公司

我选大数据技术与应用,是因为这个专业听起来很”前沿”。

2019年,大数据正火。什么”数据是新的石油”、什么”未来属于数据分析师”……铺天盖地的宣传,让我心动了。

我想:学大数据,以后肯定好找工作。

结果上了大学才知道——大数据这行,对学历和技术的要求,比想象中高得多。

大学三年:杂而不精

说实话,大数据技术与应用是个新兴专业,课程设置还在探索阶段。

学的东西挺杂的:Java、Python、Linux、MySQL、Hadoop、Spark……每一门都是入门级别。

我一度很迷茫:学这么多,哪个才是我的核心竞争力?

有一门课叫《Hadoop大数据开发》,老师讲得很快,两周就把HDFS、MapReduce、Hive讲完了。

但说实话,我听完之后一头雾水——老师讲的都是概念和命令,根本不知道怎么在实际项目中使用。

后来我自己去网上找了教程,才慢慢理解了一些。

还有一门课叫《数据挖掘》,老师讲了很多算法:决策树、朴素贝叶斯、支持向量机……但由于课时有限,每个算法都只是蜻蜓点水,讲个皮毛。

我室友小王说:“这专业就是’万金油’,什么都会一点,什么都不精。”

我深以为然。

大二下学期,有一门课叫《Java程序设计》,是期末考试课。

考试是上机编程,给你三道题,要求在一个小时内完成。

我自认为Java学得还不错,考前做了很多练习题。

结果考试的时候,我抽到的三道题都是我没见过的类型:

第一题实现一个学生管理系统,要用面向对象的思想。

第二题实现一个文件加密程序,要用到IO流。

第三题实现一个多线程下载器,要用到Socket编程。

我当时就蒙了——这些内容我都学过,但只是学了皮毛,真正写代码的时候根本不会用。

最后我只做出了第一题,第二题写了一半,第三题完全不会。

成绩出来,我只得了61分,差点挂科。

这次考试让我彻底清醒了:学习不能只靠听课,必须多动手。

从那之后,我开始认真敲代码,每天在LeetCode上刷题,从简单题开始,一点一点积累。

第一次做项目

大三下学期,我跟着老师做了一个大数据项目:分析某电商平台的用户行为数据。

项目用到了Hadoop、Hive、Spark等技术。

这是我第一次接触真实的大数据处理流程:数据采集→数据清洗→数据分析→数据可视化。

项目不大,但让我学到了很多。

我记得项目刚启动的时候,老师给我们分配了任务:小李负责数据采集,用Python爬虫抓取数据。小张负责数据清洗,用Hive处理脏数据。我负责数据分析,用Spark做用户画像。

我当时的内心是崩溃的——Spark我只学了几个命令,根本不知道怎么做用户画像。

但没办法,只能硬着头皮上。

先在网上找了教程,了解了什么是”用户画像”:就是用一堆标签来描述一个用户,比如”25-30岁”、“男性”、“喜欢数码产品”……

然后开始设计标签体系:基本信息标签、行为偏好标签、消费能力标签……

设计完之后,开始写代码实现。

这个过程特别痛苦——Spark的命令我不熟,经常写错。数据倾斜问题我不懂,跑出来的结果全是null。内存不够,我都不知道怎么办……

好在最后还是在deadline之前完成了项目。

答辩的时候,老师问了一个问题:“你们这个用户画像有什么用?”

我回答:“可以帮助电商平台做精准营销。比如根据用户的购买历史,推荐他们可能感兴趣的商品,提高转化率。”

老师点了点头,说:“还算有点想法。”

这次项目经历让我明白:做项目不是为了完成任务,而是要理解项目的价值。

毕业抉择:考研还是就业

大三暑假,我面临一个选择:考研深造,还是直接就业?

分析了自己的情况:

技术不够硬,直接就业只能做基础岗位。考研能提升学历,也能系统学习大数据技术。但考研有风险,万一考不上,错过秋招就麻烦了。

我也去打听了一下就业行情:

大数据开发工程师,本科起步,薪资大概8000到12000。数据分析师,本科起步,薪资大概6000到10000。算法工程师,基本都要求硕士以上,本科基本没戏。

我当时的水平,勉强能找个大数据开发的岗位,但薪资不会太高。

我妈说:“要不就考研吧,提升一下学历,以后找工作也更有竞争力。”

2026年数据:考研报名人数343万,比峰值下降27.6%。但竞争依然激烈。

我想了很久,最后决定:先试试考研,万一考不上再找工作。

备考:半年的挣扎

备考的日子很苦。

每天早上七点起床,晚上十一点睡觉。周而复始,持续了整整半年。

我把图书馆当成了第二个宿舍,每天早出晚归。

考研科目是:政治、英语、数学二、数据结构与算法。

数学二是最难的,包括高等数学和线性代数。我高考数学128分,有一定基础,但大学三年没怎么学,高数都快忘光了。

花了两个月时间,把高数过了一遍。看的是张宇的基础30讲,边看边做笔记。

然后开始刷题,张宇1000题、李林880题、历年真题……

刷题的过程特别痛苦——很多题看着会,做起来就错。

我记得有一道求极限的题,算了三遍都没算对。后来看了答案才发现,漏了一个条件。

英语也不能放松。每天背单词,做阅读、练写作。

背单词用的是墨墨背单词,每天200个,雷打不动。

做阅读用的是张剑黄皮书,把近十五年的真题做了两遍。

专业课是数据结构与算法。这门课我在学校学过,有一定基础,用LeetCode刷题,大概刷了200道。

第一次模考

备考期间,我参加了一次考研模拟考试。

那次模考,我政治考了62分,英语考了58分,数学考了89分,专业课考了78分。总分287分。

我查了一下历年的国家线,大概在270到280分之间。

按照这个成绩,刚过国家线,但离我报考的学校差很远。

我特别沮丧——半年的努力,就这个结果?

那天晚上,我一个人在操场跑了十圈,累得气喘吁吁,但心情还是不好。

后来室友小王拉我去喝酒,说:“别想太多,还有时间,冲刺一下说不定能行。”

我想了想,说你说得对,不能放弃。

从那之后,我调整了复习策略:

数学每天多花一个小时,重点突破薄弱章节。英语每天多花一个小时,练习写作和翻译。专业课每天多花两个小时,把算法题多刷几遍。

效果还是很明显的。到第二次模考的时候,总分已经提到了310分。

初试:意外上岸

初试成绩出来那天,我紧张得手心冒汗。

颤抖着输入准考证号,点开成绩页面:

政治68分,英语62分,数学二98分,数据结构与算法90分,总分318分。

这个分数往年能过国家线,但不确定能不能进复试。

等国家线的那段时间,我每天都在煎熬。每天晚上睡不着觉,翻来覆去地想:如果没考上怎么办?是二战还是找工作?

最后,国家线出来了:273分。

我过了国家线,但排名中等,需要看能不能进复试。

那年报考我所选学校的有200多人,学校只招50个。我排名80多名,需要在复试中表现突出才有机会。

准备复试

知道了成绩后,我立刻开始准备复试。

复试包括笔试加面试。

笔试考的是数据库和计算机网络,比初试还难。把参考书目过了三遍,重点内容背得滚瓜烂熟。

面试是最让我头疼的。

我从来没有参加过正式的研究生面试,不知道会问什么问题。

在网上搜了很多”考研面试常见问题”,然后自己练习回答。还找了一个同学,模拟面试场景。他扮演面试官,我扮演考生。我回答完,他给我提意见。

练了大概十几次,终于没那么紧张了。

复试当天

复试那天,我穿上了正装,提前一个小时就到了考场。

笔试还算顺利,大部分题目我都会。

面试是下午进行的。

轮到我的时候,深吸一口气,推门进去。

面试官一共有五个,都是学院的老师。坐在中间的是一个戴眼镜的中年教授,姓李。

李教授开口问了我第一个问题:“你做过什么项目?有什么成果?”

我把之前做的电商数据分析项目讲了一遍:从数据采集到数据清洗,再到用户画像分析……

李教授追问了一些技术细节:

“你们用Spark处理数据的时候,有没有遇到过数据倾斜问题?怎么解决的?”

这个问题我项目中确实遇到过,但当时是学长帮忙解决的,我自己不太懂。

我说:“当时遇到了一些数据倾斜问题,我们用了加盐的方式来处理……”(其实我只记得大概思路,具体细节不太清楚)

李教授眉头皱了皱,又问:“你用的什么算法做用户画像?有没有考虑过其他算法?”

我说:“我们主要用的是基于规则的标签提取,没有用机器学习算法……”

李教授摇了摇头,说:“用户画像有很多种方法,基于规则的只是其中一种。你应该多了解一些机器学习的方法,比如聚类、分类等。”

我当时的心里特别紧张——感觉自己回答得很差。

最后,另一个老师问了一个英语问题:“Please introduce your favorite programming language.”

我用英语介绍了Java,但说得磕磕绊绊,好几个单词都想不起来。

考研失败

一周后,成绩公布。

颤抖着点开页面:

初试成绩318分,复试成绩68分,总成绩排名靠后,录取状态未录取。

我考研失败了。

那一刻,我整个人都懵了。虽然知道自己表现不好,但真正看到”未录取”三个字的时候,还是很难接受。

我妈打电话问我成绩,我说妈,我没考上。

电话那头沉默了很久,我妈才说没关系,丫头,二战也行。

我说我不想二战了,我想先工作。

挂掉电话后,我一个人在宿舍哭了一个晚上。

重新出发

考研失败的那段时间,我很低落。但我没有时间悲伤——春招已经开始了,我得抓紧时间找工作。

调整了简历,突出自己的项目经验和技能。然后开始海投:大数据开发、数据分析、Java开发……能投的都投了。

说实话,一开始挺受挫的。大数据岗位要求高,我的简历经常石沉大海。

有一次,我投了一家知名互联网公司的数据开发岗位,简历直接被筛掉了,连面试机会都没有。

后来调整了策略——多投中小公司,这些公司对学历要求不高,更看重能力。

开始认真准备面试,把之前项目中的技术细节都复习了一遍。还去刷了一些大数据面试题:

HDFS的读写流程是什么?MapReduce的shuffle过程是什么?Kafka怎么保证消息不丢失?Spark的几种部署模式有什么区别?

这些知识点我都看过,但面试的时候被问到还是会紧张。

好在准备得还算充分,最后拿到了一家中小型互联网公司的offer:数据开发工程师。

入职之后

入职第一天,我紧张得要命。

提前半小时就到了公司,结果发现我的工位上什么都没有——没有电脑,没有键盘,没有鼠标。

HR带我办完入职手续后,给我分配了一个工位,然后说:“你的电脑在仓库,等会儿IT会给你送过来。”

在工位上坐了一个小时,无所事事,特别尴尬。

后来电脑送来了,赶紧安装开发环境:IDEA、Git、Maven、Hadoop、Hive……

安装的过程中遇到了很多问题:

Maven依赖下载特别慢,换了阿里云的镜像才解决。Hadoop集群连不上,检查了半天配置才发现是IP写错了。Hive连接MySQL报错,查了半天日志才发现是驱动版本不对……

这一天,什么都没干,光配置环境了。

入职第二周,开始正式做任务。

第一个任务是写一条SQL,从数据仓库里提取用户的活跃数据。

这条SQL看起来很简单。

我把SQL写完后,发给了组长审查。

组长看完,说有几个问题:这里需要加一个过滤条件,排除测试账号。分组后需要加一个having子句,过滤掉活跃天数小于3天的用户。这里的login_time是什么单位?如果是秒,需要转换成小时。

我按照组长的意见修改后,SQL终于通过了。

这次经历让我明白:写SQL不能只看逻辑,还要考虑业务需求。

入职一个月后,遇到了第一次加班到凌晨。

那天快下班的时候,组长突然跟我说,有个紧急需求,明天一早要给业务方出数据。今晚必须搞定。

我看了一下需求文档——要从三个不同的数据源拉数据,然后做关联处理,最后导出Excel。

正常情况下,这个任务要两天才能完成。但业务方催得紧,没办法,只能加班。

从晚上七点开始做,一直做到第二天凌晨两点。

中间没吃饭,就在公司楼下便利店买了个面包啃。困了就用冷水洗把脸,醒醒神。

最后,在凌晨两点的时候,任务终于完成了。

第二天早上,顶着两个黑眼圈去上班,整个人都快散架了。

但看着手里的数据报表,我觉得特别有成就感——虽然累,但这是我自己完成的。

这次经历让我明白:数据开发工作,有时候真的很辛苦。

工作一年后的感悟

现在我在公司数据部门工作一年多了。

工作内容包括:数据采集,用Flume、Kafka等工具采集日志数据。数据处理,用Hive、Spark做数据清洗和分析。数据仓库建设,构建数据仓库,搭建数据指标体系。报表开发,用SQL和BI工具制作数据报表。

工资到手8000多,不算高,但能学到东西。

工作之余,我也在继续学习:学习Spark源码,了解底层原理。学习数据治理,了解如何保证数据质量。学习业务知识,了解业务部门的需求。

工作一年后,我鼓起勇气投了几家其他公司,想看看自己的市场价值。

第一家公司是个中型互联网公司,面试数据开发岗位。面试分两轮。

第一轮是技术面,问了很多大数据相关的知识。这些问题我工作中都遇到过,所以回答得还不错。

第二轮是leader面,问了一些项目经验和职业规划。这些问题我没有提前准备,回答得比较一般。

最后面试官说:“你的技术基础还不错,但项目经验还不够深入。我们这个岗位需要独当一面的能力,你可能还需要再积累一两年。”

这次面试虽然没有拿到offer,但让我知道了自己的不足。面试是最好的学习方式。

聊聊大数据这条路

干了数据开发一年多,我有了一些感受想分享。

大数据专业考研还是就业

这个问题我纠结了很久。最后的答案是:看个人情况。

如果想做算法,或者进大厂,考研确实有帮助。学历在某些时候是敲门砖,特别是在竞争激烈的时候。

但如果只是想找个工作,积累几年经验后也有机会往上走。我现在的同事有很多是本科毕业,工作几年后也发展得不错。

关键是认清自己,找到适合自己的路。

技术要扎实

Java、Python、SQL、Hadoop、Spark……这些是基础,要扎实掌握。

我在工作中发现,SQL是最重要的技能之一,几乎每天都要写。所以建议学弟学妹们把SQL练熟。

项目经验很重要

大数据是实践性很强的方向,多做项目,积累经验。

我在学校做的那个电商数据分析项目,虽然很简单,但面试的时候还是帮了我不少忙。

持续学习

大数据技术更新很快,要持续学习才能跟上发展。

我现在每周都会抽时间看一些技术博客,学习新的技术。

保持好奇心

大数据是个很有趣的领域,数据背后藏着很多有意思的故事。保持好奇心,才能在这行走得更远。

数据是金矿,愿你成为那个掘金人。


关联阅读