大数据快速发展的今天,很多人选择加入大数据学习的阵营,课时从哪里入手,如何选择合适的开发语言来做与大数据相关的事,这个话题应该困扰了不少大数据学习的新人,在面对五花八门的「开发语言」和「分析软件」时,自己该如何选择?
先开门见山的给出结论:在职场中,学习任何一门技术,优先考虑工作需求本身,其次是职业发展所需,最后才是兴趣和好奇驱动。本末颠倒的话,不仅学习效率低下,而且还可能竹篮打水一场空,浪费时间成本。
就拿我自己说事,读书期间在做「数学建模」时,因为不是计算机\软件相关的专业,唯一接触过的C语言(The C Programming Language)也只懂皮毛,所以每一次比赛为了去「收集数据、处理数据、分析数据和构建模型」,只能借助人力、Excel、Matlab和SPSS去操作。
当然,这些工具也足够去满足比赛的技能要求了,而且比赛的核心也不在于非要用更高级的编程语言,相反它们只是解决问题的一种形式罢了,关键在于要快速上手,要能解决需求痛点。
所以,在这样的一个情况之下,我并没有牺牲大量的学习成本,重新去提高C语言的编程能力,甚至是从0到1去学习Java语言。
临近秋招前,我开始去了解工业上常用的数据开发软件和开发语言,简直是琳琅满目,有Python、R、Eviews、SAS、SPSS、Tableau、水晶易表,一大堆。还有Java、C、C++、Hadoop各种词汇都浮现于眼前。
那时候就有点不知所措了,完全不知道该学什么,所以最后都选择接触了一遍,但结果真的是白费努力,浪费时间。
后面实习入职了一家互联网电商平台,部署了6~7个节点的分布式集群去做大数据计算,当时还以为自己终于能玩「大数据」了,可没想到最后用的最多的却是SQL\HQL、Excel、PPT、SPSS。而且它们已经足够解决日常的工作需求了。
所以说,学习任何一门技术,好能在实际工作中有所使用,毕竟你的工作时间限制了你的学习精力,否则你很难去达到熟练的程度,更别提深入专研。
但不管如何,从行业的发展趋势上,很多新技能是必须要学习和掌握的,如果工作中真的没有机会去接触和使用的话,那就只能换一个更合适的平台。
当初我就是这样去考虑的,毕竟「大数据」的热潮已经全面铺开了,再不抓紧就只有看夕阳西下了。
所以,在后面几年的工作经历中,我都是在接触Hadoop、Spark相关的开源软件,从0到1的去学过Python、Java、Hive、MapReduce(基于Java实现)、Shell 、Scala、Spark Streaming这些技能。
但是不管如何,这一切的新知识学习都是为了去适应工作环境,为了更快捷和更高效去解决工作需求的问题。同时因为工作中常常接触到,所以才能熟练起来,也才有机会去深入思考更底层的问题。
总而言之,我认为任何技术都是为了更好的服务于业务,业务是驱动技术发展的关键因素。
当然,从行业趋势上,我也打算在后期引入深度学习的计算框架,也会去考虑高并发的计算效率优化等等,但是回归本质都是为了提升业务模型的效果,解决更多业务需求痛点。
因此,要想去学习新技能,引入新技术,大前提是现有的业务需求已经得到有所解决,而且能够得到业务的支持和信任,这样在后期技术的推进上才能有时间去摸索,有机会去尝试。否则,你同样只能学个皮毛。
好了,讲述完了我自己,最后来谈谈大多数朋友的局面,这也是大家所关心的。
① 首先,作为数据小白,应该先学习什么数据技能?
毫无疑问,这时候你需要先把「入门」作为首要目标,不要过于浮躁,优先考虑去学习SQL、Excel、SPSS、PPT,这样你才有机会进入一个平台,能够接触数据,开始数据分析,尝试撰写报告。利用好这个跳板,你才能向「成长」进阶。
② 其次,作为业务人员(含分析师、产品经理),应该学习什么数据技能?
这时候你需要去进一步提高自己的专业技能,这样才有机会去更了解数据,训练数据感,写出更有深度的分析报告,甚至是以后的转岗。所以你需要一把利剑,我会优先推荐Python,节省以后学习其他语言(Java、Scala)的时间成本。
③ 另外,作为数据开发,应该先学习什么数据技能?
我的建议是,你先去做好一个Java工程师,掌握一定的专业技能,再来考虑从事大数据开发呢。
当然,这样的时间成本或许挺高,而且现阶段开源这套技术框架基本稳定和易上手了。
④ 最后,作为数据挖掘,应该先学习什么数据技能?
数据挖掘这个岗位,严格上区别于算法工程师,前者是一个偏业务、重数据、看实践的岗位,通俗易懂就是在探索海量数据中的经济价值。
所以,大部分数据挖掘工程师,首当其冲的痛点是需要思考一个问题:如何将以往熟练的这套技术和流程与「大数据」和「业务」相结合。
别想着利用Python\R去直连生产环境的数据做分析,很多平台都有堡垒机,也不允许本地环境与生产环境的直接交互。即使你load到了线上数据,但是只凭借DataFrame这样的操作,我认为很难去分析出什么数据价值,更别提能不能单机运算的效率。
所以,做数据挖掘工作时,除了思考模型的效果提升,也要考虑清楚自己的模型后期将如何去与线上业务结合,以及它的计算效率和自动化工作。
因此,我建议优先去考虑一下分布式集群的计算方式,如果平台缺乏团队和资金的话,要么考虑单独增加本机的计算资源和优化模型的计算效率,要么考虑换一个工作环境。
最后,对于大部分数据挖掘工程师来说,一定要加强SQL、Excel的使用,这是最基本,也是最重要的。
所讲的这些,是为了让大家正确的做数据。学习这些技能,是为了让大家轻松的做数据。归根到底,都是为了提高核心竞争力,花最短的时间,输出大的价值,让自己更值钱!
在不久的将来,多智时代一定会彻底走入我们的生活,有兴趣入行未来前沿产业的朋友,可以收藏 多智时代 ,及时获取人工智能、大数据、云计算和物联网的前沿资讯和基础知识,让我们一起携手,引领人工智能的未来!
相关阅读: