相信对于同学们来说,求职是最关心的问题之一了。对于想从事数据科学行业的人来说,如何知道应该学习哪些工具,从而扩充自身的技能包?
本文从雇主的角度讨论了求职者需要具备哪些技能,以及求职者应该如何高效地展示自身的技能。值得一提的是,本篇文章的强大之处在于举了诸多的例子来告诉大家应该如何呈现你的每一个技能,并对如何迈出第一步提供一些建议。读完本文之后,你应该就会明白为什么需要有意识地学习不同的方法扩充自己的数据科学技能包,并且知道从何处着手了。
雇主想要什么
雇主在招聘的时候,是在找能够创造价值的员工。一般而言,就是那些能够为生意创造利润或者机会的人。作为一个数据科学家,你能够为雇主的生意增值的方法主要有4个:
从原始数据中提炼观点,然后分享给大家。
例如一个数据分析师可以分析一支广告的点击率,从而发现这支广告能够引起18-21岁这个群体的兴趣,而对21-25岁的群体则效果不佳——那么企业就可以优化自己在广告上的投入,从而提高商业价值。
构建能为客户提供直接价值的系统。
比如Facebook的数据科学家通过优化新闻订阅系统,可为用户提供更优质的内容——这为Facebook带来了直接的收益,因为更多的新闻订阅意味着更多的广告空间。
构建能为组织中其他成员带来直接效益的系统。
例如可以通过写一个脚本,把3个数据库的数据整合到一起然后形成1个规范的数据集,供其他人来进行分析——这样就通过节省其他人的时间来达到增值的效果。
在组织中分享你的专业知识。
例如与产品经理探讨如何构建一个特征来进行机器学习——这可以避免不切实际或功能不全的产品上线,从而提供价值。
毫无疑问,当雇主挑选求职者的时候,他们希望候选人能够完成上面4种增值方式的一种或多种(具体满足哪几项条件要看公司的特点和定位)。为了向公司展示你能够帮助他们获得上述4个方面的价值,你还需要向他们展现你关于下列这些技能的综合能力:
沟通能力
合作能力
技术实力
基于数据的推理能力
自我驱动能力
一个全面的数据科学技能包需要揭示你方方面面的能力,以及能方便别人来了解你——每项技能都要有详细的记录和解释,这样招聘经理就能迅速评价你的技能组合。
为什么需要技能组合简历
如果你在顶级院校拿到机器学习或者相关领域的学位,那么相对来说比较容易找到数据科学的相关工作。雇主相信你能够为企业增值,因为你毕业的院校非常有名望,并且你的专业又跟他们的工作息息相关。如果你没有顶级院校相关专业的学位,那么你就要靠自己来建立信任关系了。
试想一下:雇主一下子收到200份工作申请。假设招聘经理有10小时来筛选简历,选择部分简历进行电话面试,这就意味着平均分配给每个求职者的时间只有3分钟。此时招聘经理并不确定你是否能为公司带来价值,而你只有3分钟的时间来博取信任,从而得到电话面试的机会。
数据科学工作的好处在于录取之后你要做的工作与你之前做的项目会非常相似,比如在Lending Club分析征信数据与分析匿名借贷数据是有很多共同之处的。
Lending Club匿名借贷数据集样例
与HR建立信任关系的最佳方法就是证明你能够完成他们需要你完成的事情。对于数据科学来说,这就需要通过项目来学习很多知识。这些项目越实用,招聘经理就会更加相信你会为企业增值,那么你得到电话面试的机会就会更加大。
你的工具箱里应该有什么
现在你已经了解为什么要构建数据科学的工具箱了,现在需要搞清楚往里放什么东西。至少,你需要在Github或博客中展示一些你做的项目,而且代码应该是可见而且注释清晰的。对招聘经理来说,越容易找到你的这些项目,那么他们就越容易对你技能的进行评估。每个项目应该有完备的说明文件,比如在README文件中解释这个项目是如何建立的,以及数据中有什么缺陷。
Github上的一个结构完备的项目
什么样的项目应该放进简历中?建议大家把各种类型的项目都放进来,特别是你想要从事的工作所涉及的相关项目。比如你想要申请与机器学习相关的职位,放一些端到端的机器学习项目就会有所帮助。另外,如果你想要申请分析岗位,数据清洗和故事描述型的项目就显得至关重要了。
数据清洗项目
数据清洗项目可以向招聘经理展示你获取完全不同的数据集并把它们联系到一起进行理解的能力,这正是数据科学家的工作,这便是你要展示的关键技能。这个项目需要收集杂乱无章的数据,然后整理、分析。数据清洗是数据科学家的主要工作之一,告诉大家你有这方面的经验会对求职非常有利。
你需要在原始数据基础上整理一份可以直接做分析的数据集,要做到这一点,你需要:
找一份混乱的数据集
可以尝试在data.gov, /r/datasets或者 Kaggle Datasets找一点数据。
不要找那些已经清洗好的数据——应该找涉及多文件的数据集,而且数据中有瑕疵。
如果可以的话,应该能够找到其他关联的数据集——例如,如果你下载了一份航班数据集,你能在Google中找到相关联的其他数据集吗?
尝试去找你感兴趣的东西——如果发自内心喜欢的话,你就能够做一个更加出色的项目。
通过数据来回答一个具体的问题
探索数据。
从一个有意思的角度来分析。
清洗数据
如果有多个数据文件,统一它们的结构。
确保手中的数据能够支撑你要研究的问题。
做一些基本分析
尝试回答你在开始提出的问题。
展示你的结果
建议大家使用Jupyter notebook (http://jupyter.org/)或 R Markdown(http://rmarkdown.rstudio.com/)来进行数据清洗和分析。
确保代码与解决问题的逻辑能够被理解,对其进行足够多的注释和评论以解释清楚。
把项目上传到Github。
由于数据隐私许可的缘故,你不一定可以将这些原始数据上传到你的git存储库中,但是至少你可以对源数据进行描述,讲清楚它的来源。
如何一步一步创建一个完整的数据清洗项目?你可以参考下面的网页:https://www.dataquest.io/blog/data-science-portfolio-project/。
纽约城部分学校数据集的数据字典。
如果你很难找到一个好的数据集,这里有一些建议:
US flight data(美国航班数据)
http://www.transtats.bts.gov/DL_SelectFields.asp?Table_ID=236&DB_Short_Name=On-Time
NYC subway turnstile data(纽约地铁检票数据)
http://web.mta.info/developers/turnstile.html
Soccer data(足球数据)
http://www.jokecamp.com/blog/guide-to-football-and-soccer-data-and-apis/
纽约地铁站的盛况。
如果你想找一些灵感,这里推荐一些好的数据清洗项目:
Analyzing Twitter data(分析Twitter数据)
https://marcobonzanini.com/2015/03/09/mining-twitter-data-with-python-part-2/
Cleaning Airbnb data(清洗Airbnb数据)
http://brettromero.com/wordpress/data-science-kaggle-walkthrough-cleaning-data/
讲述数据故事的项目
讲述数据故事的项目可以体现出你从数据中提取观点并说服其他人的能力,这能够在很大程度上反映你的商业价值,因此是简历中的一个亮点。这个项目需要取一个数据集,然后用它来讲述一个吸引人的故事。例如,通过航班数据会发现某些机场总是出现延误,而通过调整航行线路就可以进行改进。
一个好的故事描述型项目会重视数据的可视化,让读者了解每一步分析沿着什么轨迹在进行。下面是做一个好的数据故事描述项目需要遵循的步骤:
找一个有意思的数据集
可以尝试在data.gov, /r/datasets或者 Kaggle Datasets找一些数据。
找一些与当前事件相关的数据可以吸引读者。
尝试去找你感兴趣的东西——如果发自内心喜欢的话,你能够做一个更加出色的项目。
从不同角度来对数据进行探索
探索数据。
在数据中发现有意思的相关关系。
一步一步作图来展示你的发现。
写下动人的描述性文字
从你的探索中找到最有意思的一点。
将从原始数据到发现问题这个过程写成一个故事。
绘制一些引人注目的图表来升华你的故事。
对于每一步你的想法进行详细的描述,并对代码的作用进行注释。
对每一步得到的结果进行详细的分析,并告诉读者为什么这么做。
通过分析来教给读者一些东西。
展示你的结果
建议使用Jupyter notebook 或 R Markdown来做数据分析。
确保代码与解决问题的逻辑能够被理解,对其进行足够多的注释和评论以解释清楚。
把你的项目上传到Github上。
在早期刊载的系列文章Analyzing NYC School Data我们介绍了如何按步骤用数据来讲一个故事,你可以参考下面的网页:https://www.dataquest.io/blog/data-science-portfolio-project/
纽约市根据分区的SAT( Scholastic Assessment Test 学术能力评估测试)分数分布地图。
如果你难以找到一个好的数据集,这里有一些好的建议:
Lending club loan data(俱乐部借贷数据)
https://www.lendingclub.com/info/download-data.action
FiveThirtyEight's datasets(538网站数据集)
https://github.com/fivethirtyeight/data
Hacker news data(黑客新闻数据集)
https://github.com/sytelus/HackerNewsData
如果你需要一些灵感,可以参考这些优秀的故事描述型项目:
Hip-hop and Donald Trump mentions(嘻哈音乐对特朗普的提及)
http://projects.fivethirtyeight.com/clinton-trump-hip-hop-lyrics/
Analyzing NYC taxi and Uber data(分析纽约出租车和Uber的数据)
http://toddwschneider.com/posts/analyzing-1-1-billion-nyc-taxi-and-uber-trips-with-a-vengeance/
Tracking NBA player movements(追踪NBA运动员的动作)
http://savvastjortjoglou.com/nba-play-by-play-movements.html
歌词对2016年美国总统主要候选人的提及(来自上面第一个项目)。
端到端项目
前面提到的项目涉及了探索性数据的清洗和分析,这向招聘经理展示了你能够从数据中提取观点并展现给大家的能力。然而,这不代表你就可以构建一个面向客户的系统。面向客户的系统需要对数据进行多次读取,并得到不同的结果,代码的性能要求很高。一个例子就是预测股市走向的系统——它会在每天早上下载新的股市数据,然后对一整天的股市走向进行预测。
为了展示你能够构建这些系统,就需要做一个端到端的项目。端到端的项目可以导入数据、处理数据,然后输出结果。通常来说,这是机器学习算法的一个结果,不过也可能是别的结果,比如符合某个标准的记录总数。
关键在于要让这个系统面对新的数据时有足够的灵活性(比如股市的数据),并且具有高性能。让代码能够很容易地构建并运行也是非常重要的。这里是构建一个好的端到端项目的基本步骤:
找一个有意思的主题
我们不会用单个的静态数据,所以你需要找一个主题而不是数据集。
这个主题需要有定期更新的数据,而且能够开放获取。
一些例子:
The weather天气预报
https://www.wunderground.com/weather/api/d/pricing.html
Nba games NBA赛况
http://www.gregreda.com/2015/02/15/web-scraping-finding-the-api/
Flights 航班信息
http://www.faa.gov/nextgen/programs/swim/products/
Electricity pricing 电力价格
http://www.eia.gov/electricity/data.cfm
Import and parse multiple datasets导入并读取多个数据集
下载足够多的数据,直到你能利用它们完成项目。
读入数据。
搞清楚你想预测什么。
建立预测
计算需要的特征。
分配训练集和测试集。
进行预测。
整理代码并存档
把代码分块保存在多个文件中。
写一个README文件来解释如何安装和运行项目程序。
加入内联的文件。
让代码能够在命令行中轻松运行。
把项目上传到Github中。
在早期刊载的系列文章Analyzing Fannie Mae loan data中,我们介绍了如何构建一个完整的机器学习项目,你可以参考下面的网页:https://www.dataquest.io/blog/data-science-portfolio-machine-learning/
如果你感觉很难找一个好的主题,这里有一些建议:
Historical S&P 500 data(标准普尔500指数数据)
http://www.marketwatch.com/investing/index/spx
Streaming twitter data(推特数据流)
https://dev.twitter.com/streaming/overview
标准普尔500指数数据
如果你需要一些灵感,可以看看下面这些优秀的完整项目的文章:
Stock price prediction(股价预测)
https://github.com/wzchen/stock_market_prediction
Automatic music generation(自动生成音乐)
https://github.com/MattVitelli/GRUV
解释性的帖子
对数据科学复杂概念的理解和解释也是非常重要的,比如一些机器学习的算法。招聘经理要知道你是否能够与其他团队成员或者客户来讲解这些复杂概念。这也是数据科学技能简历的重要部分。这些技能可以证明你是否在一个很深的层次理解这些概念是如何运作的,而不仅仅是能够把概念背出来而已。如果你有深刻的理解,就可以帮助大家理解自己的工作。
要写一个解释性的帖子,你需要挑选一个数据科学的主题,然后写一个博客,从根本层面一步一步解释这个概念。关键在于用朴实无华的语言来解释——如果你的语言过于学术化,招聘经理就很难判断你是不是真的懂了这个概念。
选择一个你理解得很好的话题是很重要的,这样你才能够带领读者了解这个概念,最后再利用这个知识做一些有趣的事情。下面是可以遵循的一些步骤:
找一个你比较了解或能够学好的概念
像KNN这种机器学习算法是非常好的选择。
统计学的概念也是很好的选择。
要确保你描述的概念有足够多的晦涩之处来解释。
要确保你真正理解了这个概念,而且要解释清楚这个概念并不难。
选一个数据集或合适的场景来帮助你解释这个概念
比方说,如果你要讲述KNN的话,可以用NBA的数据集(找到相似的球员)。
给你的文章写一个梗概
要假设读者对你要解释的主题一点也不了解。
把概念分为小的部分来讲解。
以KNN为例,可以分为以下的部分:
利用相似性来预测
如何度量相似性
欧氏距离
当k=1时如何运作
当k>1时如何运作
完成你的文章
用清晰简洁的语言来描述。
在可能的时候,随时利用你引入的场景来解释问题。
让非专业人士来读你的文章,看看他们有什么反应。
分享你的文章
最好放在个人博客中。
如果没有博客的话,上传到Github。
如果你觉得很难找到一个好的概念,下面是一些例子:
k均值聚类
https://en.wikipedia.org/wiki/K-means_clustering
矩阵的乘法
https://en.wikipedia.org/wiki/Matrix_multiplication
卡方检验
https://en.wikipedia.org/wiki/Chi-squared_test
如果你需要一些灵感,可以看看下面这些优秀的例子:
线性回归
http://eli.thegreenplace.net/2016/linear-regression/
自然语言处理
https://www.dataquest.io/blog/natural-language-processing-with-python/
朴素贝叶斯
https://alexn.org/blog/2012/02/09/howto-build-naive-bayes-classifier.html
KNN
https://www.dataquest.io/blog/k-nearest-neighbors-in-python/
其他可加写进简历的内容
尽管放一些项目在博客或者Github上至关重要,其他的元素也是有帮助的,比如在Quora上回答别人的问题、演讲和数据竞赛的成绩。这些对于招聘经理来说可能不是首要考虑的因素,但这些也是一个证明自己能力的好方法,有时候能够让你脱颖而出。
演讲
演讲可以帮助你教别人一些东西,这样可以让招聘经理知道你能深入理解一个主题并教授给大家,同时招聘经理也知道你擅长沟通和展示。尽管这些技巧与其他的技能可能有重叠的地方,但是依然很有帮助。
通常能够提供演讲机会的地方是某个具体领域的Meetup(https://www.meetup.com/),在这里可以找到很多像“Python”或“利用D3进行数据可视化”的专题。
要做一个好的演讲,可以遵循下面的步骤:
找一个你正在研究的有意思的项目或主题
一个好方法是在你的技能项目或博客中直接选一个出来。
不管你挑什么话题,需要符合聚会的主题。
把项目做成幻灯片
你需要把项目分为一张又一张的幻灯片。
每张幻灯片中尽量不要放太多文字。
先对演讲进行几次演练
正式演讲吧!
把你的幻灯片放到Github或博客中
如果你需要一些灵感,可以参考下面的例子:
● 计算统计学
https://www.youtube.com/watch?v=VR52vSbHBAk
● Scikit-learn vs Spark:机器学习流水线上的比较
https://www.youtube.com/watch?v=v7EX5aYE0xM
● 分析NHL比赛中的惩罚
https://www.youtube.com/watch?v=uW02_GnQKeM
数据科学竞赛
数据科学竞赛,就是要训练数据找到最准确的机器学习模型,这些比赛是学习的好机会。从招聘经理的角度来说,如果在比赛中表现非常好,说明你技能达标,如果肯努力说明你有自我驱动性,如果组队参加说明你擅长合作。
数据科学竞赛的平台包括Kaggle 和DrivenData等。
要参加数据科学竞赛,你只需要注册一下就可以直接开始了!你可以在这里找到好的竞赛(https://www.kaggle.com/c/titanic),或者先看一下相关的教程(https://www.dataquest.io/course/kaggle-competitions)。
Kaggle比赛的排行榜
总结
现在你应该掌握在简历中展示的技巧了,也知道如何去学习这些内容的技巧。是时候开始了!
留言 点赞 发个朋友圈
我们一起分享AI学习与发展的干货
编译组: 黄天元、韦振琛
相关链接:
https://www.dataquest.io/blog/build-a-data-science-portfolio/
如需转载,请后台留言,遵守转载规范
推荐文章阅读
长按识别二维码可添加关注
读芯君爱你