个人简介:非科班双一流硕士,CAE仿真方向转行大数据,现杭州某大厂大数据工程师!
前言本文针对非科班生转行大数据所遇到的问题,提出一些切实的建议,以免小伙伴在学习过程中走弯路。
我依据自己转行所走过的一些弯路,总结了我自己大数据学习的详细路线,推荐一些我看过的大数据课程以及技术书籍,帮助各位小伙伴做一个资源筛选。
我能够理解每一位即将转行和正在转行的小伙伴,你们可能焦虑自己是否能够学好这么多的大数据知识,也可能正在担心35岁后的自己该怎么办?
曾经的我,也曾陷入同样的焦虑和迷茫情绪。这些情绪完全是由于自己在学习过程中,你所期望的高度和自己目前所处的高度的落差所导致的,都是正常的情绪。
但是我觉得我们也不要过于担忧,因为未来总是不可预测的,谁也不知道35岁以后的我们会做什么,我们不要过早的杞人忧天,也不要过早的限制自己,我们现在所选择的工作,未来不一定就得干到老。
所以,当前我们应该要先沉淀自己,打造自己在未来的核心竞争力,先攒到自己的第一桶金才是王道,有资本了,就有更多的选择和更大的可能。
1大数据发展前景我根据我国发布的《第十四个五年规划和年远景目标纲要》,带大家看看以下一个指标。
在创新驱动这个类别中,数字核心产业增加值占GDP比重要从年的7.8%,到年要增加到10%。这个概念大家可能还不是很敏感,跟着小林继续看下面另一张图。
经济社会发展主要指标我国在大力发展的数字经济核心重点产业中,其中包括大数据领域,如下图所示。*府大力推动大数据领域技术发展创新,实现数字化转型,大数据在未来有较大的发展潜力!
数字经济重点产业年是我国5G的元年,国家在大力建设5G的基础设施。年,5G手机可能会逐渐增长,将会是大数据爆发的1年。5G网络所产生的数据速率:每秒10G的数据量,这会使得各个公司的数据量爆发式增长。
此外,我国第一批大数据专业在年开设,年第一批大数据专业学生才毕业。因此,大数据领域人才紧缺,需要大量的数据研发、数据分析以及数据挖掘工程师。
2学习路线总论未来想在互联网发展,应该怎么学?就大数据方向来说,我个人认为主要有三个方面:
第一,计算机基础知识是不可或缺的,如果你拥有扎实的基础知识,在遇到问题时可以快速认识到问题的本质,从而解决问题。我至今在不断在加强自己计算机基础知识的学习;
第二,大数据框架的技术原理,对于重点框架要重视企业级调优以及源码的学习。
第三,项目实战。学习了大量的技术需要结合项目场景去应用,才能加深你对技术的理解。
大数据是一个进可攻、退可守的方向。
进可以往人工智能方向发展,但是需要非常扎实的数学知识。
我非常赞同我导师曾经跟我说的一句话:“任何问题,最终都会归咎于数学问题”!因此较好的数学能力可以支撑你不断的挑战新的问题!
退可以往大数据应用开发方向发展,但是需要丰富的框架使用和调优经验。
2.1计算机基础精通一门语言:Java,C,C++,Python,Go,Scala,等等。(大数据建议选择Java、Scala或者Python)我自己学习的是Java语言,语言只是一门工具,无需太过纠结。数据结构与算法:链表,队列,堆,二叉树,排序,查找,贪心,回溯等。计算机网络与基础:OSI七层体系,常用的TCP/IP四层体系。操作系统:进程与线程,乐观锁与悲观锁,缓存一致性,CPU时间片调度。数学:高等数学,线性代数,概率论与数理统计。推荐数学是考虑到一些小伙伴要进一步往AI方向发展,而数学是机器学习的基石。你只有拥有了这些底层基础,才能支撑你走得更远!
2.2大数据组件整个大数据知识体系学习需要花较长的时间,大数据框架也比较多,下图是我自学大数据的技术栈。我是依据目标企业的招聘要求,选择以下技术栈学习,还有其它的框架,可以视情况而定,选择要不要学。
Java是基础工具,我个人是学完JavaSE,重点对集合、多线程以及JVM进行深入学习,JavaEE没有花时间学。如果你时间充裕,比如大二或者研一同学,可以深入学习JavaEE,再进行后续的学习也行。
目前企业生产基本使用的是Linux系统,掌握Linux基本原理是未来必备技能。
Hadoop是分步式系统基础架构,主要解决海量数据的存储和海量数据分析计算问题,包含HDFS,MapReduce,Yarn三个组件。其它框架在此不作介绍了。
大数据重点技术栈针对一个技术框架如何学习,可以参照我下面这个视频!我总结了框架学习要按照阶段去学,循序渐近,而不是一蹴而就,急功近利会导致你技术学的不够深入不说,更重要的是浪费了你的时间。
2.3项目实践大部分非科班同学都会遇到的痛点,在学校没有实际的项目。但是找工作的时候,简历上至少需要2~3个项目,并且要有1~2个亮点项目。比如在某个项目中,你遇到什么困难,采用什么技术解决的?做了哪些优化?
关于项目这块,后面我有项目实战推荐!
3学习资料推荐我自己作为一名非科班转型者,深知一份好的入门学习资料可以节约多少时间。因此,我对自己自学以来的历程,做了一下复盘,并且把我自己的学习路线以及自学的学习资料推荐给大家。
希望能够给转行的小伙伴们一点参考。主要包含了计算机基础知识、大数据框架学习、项目实战三个模块相关的入门视频和好的书籍推荐!
建议零基础同学先学习Java语言基础语法,一个月左右便可以把JavaSE学完,后续找面经查漏补缺!
之后搭建Linux虚拟机平台,为后续大数据框架学习作准备。
因为我的时间比较紧急,不仅要完成导师布置的任务,还要挤出时间学习。所以,我的计算机基础知识是穿插在大数据框架学习中间,面试前重点刷了一些常见的面试题。以下是我刷的Java面试题博客链接。
最全Java面试总结: