联系人:礼智老师
电 话:18701361752
手机:18701361752
邮箱:1544352081@qq.com
地址:北京朝阳区环宇大厦1012 京ICP备15019656-1
网址:www.rxzxedu.com
1.数据挖掘主要是做算法还是做应用?分别都要求什么?
这个问题太笼统,基本上算法和应用是两个人来做的,可能是数据挖掘职位。做算法的比较少,也比较高级,其实所谓做算法大多数时候都不是设计新的算法(这个可以写论文了),更多的是技术选型,特征工程抽取,最多是实现一些已经有论文但是还没有开源模块的算法等,还是要求扎实的算法和数据结构功底,以及丰富的分布式计算的知识的,以及不错的英文阅读和写作能力。但即使是这样也是百里挑一的,很难找到。
绝大读书数据挖掘岗位都是做应用,数据清洗,用现成的库建模,如果你自己不往算法或者架构方面继续提升,和其他的开发岗位的性质基本没什么不同,只要会编程都是很容易入门的。
2.北上广以外的普通公司用的多吗?待遇如何?
实际情况不太清楚,由于数据挖掘和大数据这个概念太火了,肯定到处都有人招聘响应的岗位,但是二线城市可能仅仅是停留在概念上,很多实际的工作并没有接触到足够大的数据,都是生搬硬套框架(从我面试的人的工作经验上看即使是在北上广深这种情况也比较多见)。
只是在北上广深,可能接触到大数据的机会多一些。而且做数据挖掘现在热点的技术比如Python,Spark,Scala,R这些技术除了在一线城市之外基本上没有足够的市场(因为会的人太少了,二线城市的公司找不到掌握这些技术的人,不招也没人学),所以我推测二线城市最多的还是用JAVA+Hadoop,或者用JAVA写一些Spark程序。北上广深和二线城市程序员比待遇是欺负人,就不讨论了。
3.和前端后端程序员比有什么区别?有什么优缺点?
和传统的前后端程序员相比,最主要的去别就是对编程水平的要求。从我招聘的情况来看,做数据挖掘的人编程水平要求可以降低一个档次,甚至都不用掌握面向对象。但是要求技术全面,编程、SQL,Linux,正则表达式,Hadoop,Spark,爬虫,机器学习模型等技术都要掌握一些。前后端可能是要求精深,数据挖掘更强调广博,有架构能力更好。
4.目前在学习机器学习,如果想找数据挖掘方面的工作应该学习哪些内容?
打基础是最重要的,学习一门数据挖掘常用的语言,比如Python,Scala,R;学习足够的Linux经验,能够通过awk,grep等Linux命令快速的处理文本文件。掌握SQL,MySQL或者PostgreSQL都是比较常用的关系型数据库,搞数据的别跟我说不会用数据库。
补充的一些技能,比如NoSQL的使用,Elasticsearch的使用,分词(jieba等模块的使用),算法的数据结构的知识。
5.hadoop,hive之类的需要学习吗?
我觉得应当学习,首先Hadoop和Hive很简单(如果你用AWS的话你可以开一台EMR,上面直接就有Hadoop和Hive,可以直接从使用学起)。我觉得如果不折腾安装和部署,还有Linux和MySQL的经验,只要半天到一天就能熟悉Hadoop和Hive的使用(当然你得有Linux和MySQL的基础,如果没有就先老老实实的学Linux和MySQL,这两个都可以在自己的PC上安装,自己折腾)。
Spark对很多人来说才是需要学习的,如果你有JAVA经验大可以从JAVA入门。如果没有那么还是建议从Scala入门,但是实际上如果没有JAVA经验,Scala入门也会有一定难度,但是可以慢慢补。所以总的来说Spark才足够难,以至于需要学习。
最后的最后我有一些建议。第一要对自己有一个系统的认知,自己的编程水平够么,SQL会用么,Linux会用么,能流畅的看英文文档么?
如果上面任何一个问题的答案是No,我都不建议直接转行或者申请高级的数据挖掘职位(因为你很难找到一个正经的数据挖掘岗位,顶多是一些打擦边球的岗位,无论是实际干的工作还是未来的成长可能对你的帮助都不大)。无论你现在是学生还是已经再做一些前段后端、运维之类的工作你都有足够的时间补齐这些基础知识。
补齐了这些知识之后,第一件事就是了解大数据生态,Hadoop生态圈,Spark生态圈,机器学习,深度学习(后两者需要高等数学和线性代数基础,如果你的大学专业学这些不要混)。选定其中一个方向做一些钻研和学习,网上有很多现成的资料(基本上是英文的,所以我说了,不能看英文的赶紧去背单词),科学上网用谷歌这个大家都懂。希望我的建议能对你有一些帮助。