作者 纪路
本文转自知乎,转载需授权
原文链接:https://www.zhihu.com/question/52149097/answer/129623798
「 关于数据挖掘就业方面的问题」,这是近期有人在知乎上的提问,题主顺带也把这个大问题细化成了几个小问题:
-
数据挖掘主要是做算法还是做应用?分别都要求什么?
-
北上广以外的普通公司用的多吗?待遇如何?
-
和前端后端程序员比有什么区别?有什么优缺点?
-
目前在学习机器学习,如果想找数据挖掘方面的工作应该学习哪些内容?
-
hadoop,hive之类的需要学习吗?
今天收录在这里的,是目前获赞最高的回答。答主纪路分别就以上5个问题给出了比较有针对性的回答,分享给大家。
最近在招聘这方面的工程师,我想通过回答题主的这些问题,来帮助一些新人选择方向和正确的入门。
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
都是比较常用的关系型数据库,搞数据的别跟我说不会用数据库。
补充的一些技能