热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

想入行大数据,面对开发语言和分析软件时,该如何选择?

先开门见山的给出结论:在职场中,学习任何一门技术,优先考虑工作需求本身,其次是职业发展所需,最后才是兴趣和好奇驱动。本末颠倒的话,不仅学习效率低下,而且还可能竹篮打水一场空,浪费

先开门见山的给出结论:在职场中,学习任何一门技术,优先考虑工作需求本身,其次是职业发展所需,最后才是兴趣和好奇驱动。本末颠倒的话,不仅学习效率低下,而且还可能竹篮打水一场空,浪费时间成本。

就拿我自己说事,读书期间在做「数学建模」时,因为不是计算机\软件相关的专业,唯一接触过的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的使用,这是最基本,也是最重要的。

所讲的这些,是为了让大家正确的做数据。学习这些技能,是为了让大家轻松的做数据。归根到底,都是为了提高核心竞争力,花最短的时间,输出最大的价值,让自己更值钱!


推荐阅读
  • 《Spark核心技术与高级应用》——1.2节Spark的重要扩展
    本节书摘来自华章社区《Spark核心技术与高级应用》一书中的第1章,第1.2节Spark的重要扩展,作者于俊向海代其锋马海平,更多章节内容可以访问云栖社区“华章社区”公众号查看1. ... [详细]
  • 什么是大数据lambda架构
    一、什么是Lambda架构Lambda架构由Storm的作者[NathanMarz]提出,根据维基百科的定义,Lambda架构的设计是为了在处理大规模数 ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • 我们在之前的文章中已经初步介绍了Cloudera。hadoop基础----hadoop实战(零)-----hadoop的平台版本选择从版本选择这篇文章中我们了解到除了hadoop官方版本外很多 ... [详细]
  • Azkaban(三)Azkaban的使用
    界面介绍首页有四个菜单projects:最重要的部分,创建一个工程,所有flows将在工程中运行。scheduling:显示定时任务executing:显示当前运行的任务histo ... [详细]
  • Java开发实战讲解!字节跳动三场技术面+HR面
    二、回顾整理阿里面试题基本就这样了,还有一些零星的问题想不起来了,答案也整理出来了。自我介绍JVM如何加载一个类的过程,双亲委派模型中有 ... [详细]
  • 本文介绍了在Python中使用zlib模块进行字符串的压缩与解压缩的方法,并探讨了其在内存优化方面的应用。通过压缩存储URL等长字符串,可以大大降低内存消耗,虽然处理时间会增加,但是整体效果显著。同时,给出了参考链接,供进一步学习和应用。 ... [详细]
  • Postgresql备份和恢复的方法及命令行操作步骤
    本文介绍了使用Postgresql进行备份和恢复的方法及命令行操作步骤。通过使用pg_dump命令进行备份,pg_restore命令进行恢复,并设置-h localhost选项,可以完成数据的备份和恢复操作。此外,本文还提供了参考链接以获取更多详细信息。 ... [详细]
  • 11月26日,由中国计算机协会(CCF)主办,CCF大数据专家委员会协办,CSDN承办的Hadoop与大数据技术大会(Hadoop&BigDataTechnology ... [详细]
  • Maven构建Hadoop,
    Maven构建Hadoop工程阅读目录序Maven安装构建示例下载系列索引 序  上一篇,我们编写了第一个MapReduce,并且成功的运行了Job,Hadoop1.x是通过ant ... [详细]
  • php课程Json格式规范需要注意的小细节
    JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgramming ... [详细]
  • Hadoop源码解析1Hadoop工程包架构解析
    1 Hadoop中各工程包依赖简述   Google的核心竞争技术是它的计算平台。Google的大牛们用了下面5篇文章,介绍了它们的计算设施。   GoogleCluster:ht ... [详细]
  • mapreduce源码分析总结
    这篇文章总结的非常到位,故而转之一MapReduce概述MapReduce是一个用于大规模数据处理的分布式计算模型,它最初是由Google工程师设计并实现的ÿ ... [详细]
  • 如何在mysqlshell命令中执行sql命令行本文介绍MySQL8.0shell子模块Util的两个导入特性importTableimport_table(JS和python版本 ... [详细]
  • 【转】腾讯分析系统架构解析
    TA(TencentAnalytics,腾讯分析)是一款面向第三方站长的免费网站分析系统,在数据稳定性、及时性方面广受站长好评,其秒级的实时数据更新频率也获得业界的认可。本文将从实 ... [详细]
author-avatar
I技男
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有