我决定在这周末做一个小项目。我注意到数据科学市场中的职位有些模糊不清,一名数据科学家与一名 Al 工程师做相同类型的工作并不罕见。我相信每件事情都可归结为某种形式的数据分析和编程(除理论研究外)。
我在 Python 中使用 Selenium 和 Beautiful Soup 构建了一个简单的 Web-scraper,并在 Indeed.com 上针对 1000 个招聘职位中的每一个查询是否包含以下单词:
“数据科学家”
“机器学习”
“数据工程师”
“数据分析学”
我使用 Matplotlib 创建这些相当简单和单调的条形图,但是它们完成了这项任务(我在使用图形框架方面也很糟糕)。
因为我将原始 HTML 解析为文本,然后做频率计数,一些结果可能会略有偏差(像“R”)。所以,我在计数时没有涵盖编程语言“Go”。
针对 4 组不同的词语,逐个查询并计数:
编程语言
框架
学术
杂类
编程语言 重置
似乎专业越接近于统计学,你越希望技术栈里存有 Python/R 和 Java/C++ 。专业越面向数据,则你一定更需要 SQL、R/Python 和 SAS(可能还有 Scala)。我猜测算法实现在 ML 工程职位中更常见,因此更强调 Java/C++。但是,如果你正转向数据科学,则学习 Python 或 R。
框架
对于上述每次搜索查询,Hadoop 是这 1000 个招聘职位中最受欢迎的框架,其次是 Spark 和 AWS。对于机器学习,你可以看到 TensorFlow 也靠近顶部(我还极力向 ML 爱好者推荐 TensorFlow)。在深度学习框架之中,Torch 和 Caffe 不那么受欢迎(我听说 Caffe 就要被淘汰了)。面向数据库的工程师当然应该迅速将 Hive 和 Pig/HBase 收入技术栈中(我个人不了解它们,只是依照结果这么说)。
学术
这时,我开始查看如学术等非技术资格。“数据分析学和数据工程师”职位与“机器学习和数据科学家”职位显示的结果类似。“统计学”和“数学”在“机器学习和数据科学家”招聘职位中出现大约 2000 次,在“数据工程师和数据分析学”中仅出现了 1000 多次。显然拥有博士学位在机器学习和科学家职位方面更受欢迎,但现在,在大多数情况下,硕士就足够了。事实上,拥有学士学位,辅以大量的 Al 方面的个人项目经验,同样可以跨入门槛。在“机器学习”的查询结果中看到顶级机器学习期刊(NIPS、ICML 等)也非常有趣。如果你倾向于数学或研究,那么你可能更适合 ML 职位。
杂类
该类别基本上指我不能确切放入相关类别的所有词语。所以我简单地把它们集中在杂类中,但出现了一些有趣的结果。Kafka 出现在数据工程师职位的第三位,但在任何其他查询中都不在领先位置。“Al”在数据分析学和数据工程师招聘职位中不是很显眼。MapReduce 在数据工程师职位中的出现的次数比在任何其他职位中多一倍(我认为有道理)。令人吃惊的是,Kaggle 几乎没有出现在任何查询的任何招聘职位中。我不知道这是否因为公司不知道 Kaggle 是什么,还是参加预测建模比赛不具有很强的吸引力。
到这里你应该已经对情况有了一些了解!我将在下面总结我的发现,并附带一个包括所有柱状图的 PDF 文件,这样容易对它们进行比较。这是我一直以来想做的一个有趣的迷你项目。我会将代码上传到我的 GitHub。
至少你应该知道 Python 或 R(最好是 Python)。
对于更“面向数据库”的职位,你要确保在 SQL 和大数据框架方面有优势,如 Hadoop 和 AWS。
如果有机会,我建议机器学习爱好者去学习 TensorFlow 而不是其他的深度学习框架。
如果你是在读本科生,而且非常热爱 ML,那么可以考虑读取博士学位。如果你已毕业,并打算转向数据科学,那么硕士学位就足够了。
如果愿意,你可以参加 Kaggle 比赛,但它不会成为你的主要资本。
如果你不是很专注于数学,则考虑数据工程师或分析师职位。
虽与数据无关,但也不要让 Python/R 成为你唯一学习的语言。行业应用可能最需要你在 C/C++/Java 中编写出算法来实现代码。
感谢阅读,如有任何问题请留言。
查看英文原文:
http://www.jungle-ml.com/2017/09/17/data-science-job-qualifications-via-web-scraping-indeed-com/