这个话题以不同的问题形式多次出现在了我的知识星球里,从字里行间能感受到大家对这个问题答案的渴望程度。

从我的星球人员结构来看,有一大部分是刚入行不久,或者一只脚正往大数据开发这个方向迈进的小伙伴们,这里面既有刚毕业不久,甚至还没有毕业的应届毕业生们,也有些毕业几年但是试图转行的职场旧人。他们都迫切的想在这个方向找到自己的归属感,因为他们自己也不太确定自己的选择到底对还是不对,于是就焦急的想快速抓住一些确定性的东西来填补这种不确定感、以及恐慌感。
很多有着类似情况的小伙伴,有的会去选择报个培训班,而有的则会选择完全自学,其实不管哪种形式,想最终真正得到成才和突破,必须遵循一定的学习方法,以及坚持不懈的刻苦。
想快速入行,学到硬核的技术,早日得到用人单位的青睐,拿到offer,这应该是任何一个想入坑的小伙伴心之向往的事情。
但是现在网络上充斥着海量的学习资料,文字的、视频的、免费的、收费的,再加上一些自媒体对这个行业的一些夸大、片面、甚至扭曲的宣传,很容易让一个刚入行的小白心生迷茫。信息接受的越多,反而让自己变得越不知所措,无从选择...这让我想起自己刚入行那会,也是一样,迷茫的一批,不过那个时候没有现在这么多信息的干扰,学习途径非常的单一,想要获取优质的大数据资料,几乎只有一个途径,那就是上官网。
然后自己反复实践、试错,有问题了,继续查官网,搜Stack Overflow,然后自己思考、摸索解决,因为除此之外几乎没有其他解决问题的途径,虽然效率低,走了不少弯路,但这也锻炼了自己遇到问题不求他人的独立思考习惯,而且这个习惯一直陪伴我到现在。哪像现在,各种中文博客、论坛、技术讨论群、漫天飞舞,任何一个知识盲点你都可以有多个求助渠道,很多问题,你都甚至可以不用思考就能轻松得到答案。虽然方便了,但是这样会带来一个严重的问题:你会逐渐丧失自己独立思考的能力。你容易被现在充斥在网络上的各种话术,文章,思想给牵着走,一会告诉你必须要学这个技术,一会又告诉你现在流行这个,时不时又给你造些新概念、新词汇,并赋予一些所谓的新定义。通过这些手段,来拔高初学者对行业的认知门槛,进一步拉开你跟他之间的距离,然后以一种高高在上的行业引导者姿态来对你颐指气使。大家应该知道我的文字和视频虽然也讲技术,但是从来不装逼,我会把一个知识点用我理解的最简单的方式表达出来,我觉得这才是技术的本质,你们去看那些写的好的官方文档,内容无一例外都非常简单明了,从不拐弯抹角,几乎一看就懂。这里我想跟那些刚入的小伙伴们说一声:既然选择了,就坚定一点,这个方向肯定错不了(虽然现在受环境影响行业没有之前那么疯狂了),脚踏实地先把基础打牢,多实践,多思考,务必培养出自己对技术的思考习惯。我想根据这些年来,我自学大数据的心得和经验,谈谈我对学习这件事情的看法:
正所谓:基础不牢、地动山摇,我工作这些年,身边遇到很多因为踩中了当年大数据行业爆发的红利而进入到这个行业的同事。
他们都有一个共同的特点就是:一些大数据的概念说的特别溜,也特别关心那些新兴的开源框架、各种行业新词汇,你跟他们聊天,言必称性能、稳定性、架构设计。但是你如果一旦让他们做起实事,写个业务代码什么的,那基本上一定会暴露缺陷,各种编程语言的基础、算法的基础,通信原理基础的缺失等等统统都会给你暴露出来。
你要是让他去优化一下,好家伙,人家直接给你怼资源,不是嫌代码效率低吗?那行,直接把内存、CPU给你翻倍。
这样的货,我团队开过好几个,因为当你把他身上这件“大数据浮华的外衣”扒拉掉之后,发现什么都没有,完全是凭运气入的行。
所以在这里我也奉劝各位小伙伴,务必重视基础,我知道你会说:就算我不去学你说的那些东西,不也一样能把一个大数据程序给跑起来吗?
你确实可以,但是那个不是你的能力,那是框架赋予的,本身就自带的能力,跟你无关。一切技术的学习,脱离了实践就是在扯淡、自欺欺人,更何况大数据技术是一门如此强调实践的学科,你以为那些理论你已经背的很好,文章和视频都看的够多了,就掌握了吗?你用代码实现个功能试试呢?放在集群环境用大一点数据量的压力压一下看看呢,你看它能跑的起来吗,会轻易挂掉吗,以及这个过程中遇到各种环境问题导致的异常,你会处理吗?不实践,你永远不知道原来学大数据还有这么多坑呢,原来要把一个分布式任务提交到集群,让他稳定高效的运行真的需要经历九九八十一难的。也只有真正经历过这种痛苦、挣扎你才能吃透那些技术中蕴含的“大道至简”的精髓,你才会由衷地发出一声"哎呀我擦,原来是这样!"的感悟。
大数据技术发展至今,能叫上名字的少说得有几百种之众,在这些技术中,有很多都有着大致的功能,和相同的应用场景,很多技术其实底层实现都大差不差,一般也就是在某些地方做了些改进和区别,然后换了个马甲,起了个新名字而已。如果你只看这些技术表面,只知道他们API不同,名字不同,出现一个新的你就从头到尾学一遍,那完蛋了,你这辈子是学不完的,你只能永远被这些新技术给牵着鼻子走,而且永远学不深。因此我们在学习的时候,一定要学到其核心本质的东西,比如一个数据库组件的通信原理、底层数据结构、事务机制、锁机制等等,你只要把这些核心的东西都学到了,任他什么新技术,新框架,你只要花几个小时时间研究下它的底层实现,再拿它跟你曾经用过的类似组件做个对比。
很快,这个技术你就能恍然大悟,至于那些新API的用法,你看一眼,分分钟就能拿捏。很多程序员都不善于表达,也不喜欢交流,甚至对此不屑一顾,总以为自己埋头写代码,低头研究技术就够了,并且以此为傲。
但是你不知道的是,适当地跟同行进行学习交流、技术切磋,能够大大刺激你的学习欲望,提高学习效率。比如你对一个技术问题苦思冥想了好几天无果,但是偶然跟一位小伙伴一交流发现,他能给你提供一个全新的问题视角,一下就能让你豁然开朗,这种例子在现实中不要太多。而且有种著名的学习方式叫:费曼学习法,大家应该都知道,说的就是当你学一个知识点的时候,如果想快速掌握它,那么你可以把这个知识点经过你的消化和理解之后,再讲给同行小伙伴听,如果他们能听懂,那么证明你是真的懂了。
所以这也是我建讨论群,建知识星球的初衷,目的就是想构建这样一种良性的学习氛围。
而且在当下的职场环境,沟通表达已然成为打工人的一项必备武器,你想让自己的专业能力、工作成果及时被领导和老板看到,就必须具备这项硬技能。以上几点,没有说具体的学习方案,纯粹只是有感而发,算是我对一个刚入行大数据的小伙伴的一点点碎碎念,希望对你今后的专业学习有点帮助。
至于具体的学习方法,我尝试在后续文章里,根据以往的学习经验进行整理,然后发出来给你参考。
如果你有学习上的任何困惑,或者技术上的任何疑问,欢迎来我的星球提问,我会认真对待你的每一个问题,并尽力提供详细、全面、走心的回答。
根据小伙伴们的呼吁,构建了一个高质量的知识星球,能细致入微的解答你几乎所有大数据学习相关,Java相关、Linux相关、面试相关、学习相关、入行相关、职场相关问题,让你体验什么是干货满满…...
你也可以添加我的私人微信,拉你入技术讨论群,跟一群热爱技术的小伙伴一起成长...
