机器之心

首页 > 深度 > 如何转行成为一名数据科学家?

深度

如何转行成为一名数据科学家?

2017-03-12 21:20:20      
3 0 1

有时一些粉丝会给我发邮件,想让我在数据科学方面给出针对性的指导,所以我写了这个数据科学建议专栏。若你在数据科学方面存在困惑,请发邮件至 rachel@fast.ai,但请简洁清楚地提出疑问。这个建议专栏的前几部分包括:如何组建数据科学与工程团队(how should you structure your data science and engineering teams),以及给对深度学习感兴趣的学生提出建议(advice to a student interested in deep learning),点此查阅原文

这个问题中,我整合了几个编程水平不高的人发来邮件,他们住在湾区之外,并有意发展成为数据科学家。问题如下:

Q1:我是一家大银行的金融分析师,目前正从软件工程师向技术工程师转型,并且对机器学习感兴趣,我有幸拜读了你的 The Diversity Crisis in AI 这篇文章。请问我是否需要读个人工智能硕士或博士学位?

Q2:这是我攻读理论数学博士学位的第六年,不久将会毕业。我对数据科学真感兴趣,也想知道自己是不是想在这个领域里找份工作,请问我能或者我该如何准备,才能具备公司所需求的技能呢?目前我正在读书,想找一些我能做的小项目。您能告诉我在哪里能找到招聘者感兴趣的小项目吗?

Q3:我拥有 STEM 的研究生学位,曾既是研究员又是教师,目前处于职业过渡期,寻找可能会同时需要分析技术和教学能力的职业。我更加擅长科学方面,而非软件方面。如今的互联网能够颠覆我们的认知能够将孤立的信息进行共享。请问你能推荐一些关于教师用得起的编程课程与 workshops 吗?还有,你认为什么编码语言或技能最有助于重点关注发展呢?

答:我认为自己的背景很「不传统」。乍看之下,我的经历似乎是十分标准的数据科学教育:高中学习了两年 C ++,大学开始学习计算机科学(数学专业)并获得了与概率相关的博士学位,而后成为了一名「宽客」。但我的计算机科学课程大多是理论的,我的数学论文则完全是理论的(一点计算都没有!);这些年来,我使用 C++ 越来越少,而使用 MATLAB 愈加频繁(我这是怎么了?!不知为什么,我甚至发现自己使用 MATLAB 编写 web scrapers……)。我的大学教育教会了我如何证明一个算法是 NP 完成的或是图灵可计算的,但在测试、版本控制、网络应用程序与网络如何运作方面完全空白。我任职的公司主要使用在技术行业不被使用的专有软件/语言。

在能源交易公司做过两年「宽客」后,我意识到我最喜欢的部分是编程和处理数据。我对大公司官僚制度,以及使用过时的专有软件工具这样的现状很不满意;我想有所改变,并决定参加 2012 年 2 月的数据科学会议 Strata,以对湾区的数据科学有更多了解。我深深地陷进去了——对数据的巨大热情、最令我兴奋的工具(以及我以前从未听说过的其他工具)、那些从学术界或成熟的公司中抽身而退,在初创公司为理想而奋斗的人的故事……它是如此独树一帜,与我曾习惯的一切截然不同。Strata 之后,我在旧金山待了几天,到初创公司面试,并与一些搬到 SF 的浅交一同喝咖啡,他们每个人都对我很有帮助,并对四桶咖啡馆非常痴狂(几乎每个人都建议在那里!)。

我曾很有名,但实际上转换到科技领域让我完全迷失了……当第一次和技术人员进行如此多的对话和采访时,我时常觉得他们在讲另一种语言。我在德克萨斯长大,以不知科技领域工作为何物的状态,在宾夕法尼亚和北卡罗来纳度过了我的 20 多岁。我从未修过统计课程,只是觉得概率便是测量空间的真实分析;我也并不了解新创公司和科技公司如何工作。第一次到初创公司面试时,一位面试官夸耀了公司在开始快速扩张/招聘之前如何短暂地实现盈利。我震惊地答道「你的意思是这家公司不盈利!!」(是的,我实际上以震惊的语调大声地喊了出来),记忆中场面一度陷入尴尬。在另一次面试中,我对「印象(impression)」(展示网络广告时)的概念感到困惑,仅仅理解它的逻辑就花了我一段时间。

我在这里已经五年了,有些事是当我开始转变职业时理应知道的:我是白人,是美国公民,在研究生学校获得了大笔奖学金,没有学生债务,并且我是单身,没有后代。而没有这些特权的人在决定转变职业时,道路将更加艰难。尽管我的轶事令人将信将疑,但我还是希望其中一些建议能对你有所帮助。

做好走向数据科学的准备

1. 最重要的是:无论你想要在目前的工作中学到什么,都要找到方法。找到一个涉及更多编码/数据分析且对您的雇主有帮助的项目。尝试使任何无聊的任务自动化。即使这个过程需要 5 倍的时间(即使这样的任务你只做一次!),但你正是通过这样来学习。

2. 分析您拥有的任何数据:比如消费前的研究数据(即决定要购买哪种微波炉),个人健身追踪器的数据,烹饪食谱的营养数据,为孩子调查的学前教育数据。把它变成一个小型的数据分析项目,并写到博客中。例如如果你是研究生,你可以分析所教学生的年级数据。

3. 学习最重要的数据科学软件工具:Python's data science stack(pandas / numpy / scipy)是最有用的技术(阅读本书!),紧随其后的是 SQL。在学习其他语言之前我会专注于学习 Python 和 SQL。Python 被广泛使用且非常灵活。如果你决定参与到更多的软件开发工作,或者全面进入机器学习,你会有优势。

4. 使用 Kaggle。做教程,参加论坛,参加比赛(不要担心你处于什么水平- 只是专注于每天做得更好一点)。这是学习实用机器技能的最好方法。

5. 搜索您所在地区的数据科学和技术会议。随着数据科学在过去几年的激增,如今在全球有各种会议。例如,Google 最近在加利福尼亚州山景城举办了一次 TensorFlow Dev 峰会,但有全世界观众一起观看直播(包括尼日利亚的阿布贾,印度的哥印拜陀和摩洛哥的拉巴特)。