有时一些粉丝会给我发邮件,想让我在数据科学方面给出针对性的指导,所以我写了这个数据科学建议专栏。这个建议专栏的前几部分包括:如何组建数据科学与工程团队,以及给对深度学习感兴趣的学生提出建议。
这个问题中,我整合了几个编程水平不高的人发来邮件,他们住在湾区之外,并有意发展成为数据科学家。问题如下:
我是一家大银行的金融分析师,目前正从软件工程师向技术工程师转型,并且对机器学习感兴趣,我有幸拜读了你的 The Diversity Crisis in AI 这篇文章。请问我是否需要读个人工智能硕士或博士学位?
这是我攻读理论数学博士学位的第六年,不久将会毕业。我对数据科学真感兴趣,也想知道自己是不是想在这个领域里找份工作,请问我能或者我该如何准备,才能具备公司所需求的技能呢?目前我正在读书,想找一些我能做的小项目。您能告诉我在哪里能找到招聘者感兴趣的小项目吗?
我拥有 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.8线下培训“
Python与数据分析实战
”,详情请点击文章末尾线下课程)
。如果你决定参与到更多的软件开发工作,或者全面进入机器学习,你会有优势。
4. 使用 Kaggle。做教程,参加论坛,参加比赛(不要担心你处于什么水平,只是专注于每天做得更好一点)。这是学习实用机器技能的最好方法。
5. 搜索您所在地区的数据科学和技术会议。随着数据科学在过去几年的激增,如今在全球有各种会议。例如,Google 最近在加利福尼亚州山景城举办了一次 TensorFlow Dev 峰会,但有全世界观众一起观看直播(包括尼日利亚的阿布贾,印度的哥印拜陀和摩洛哥的拉巴特)。
在线课程是一个了不起的资源。你可以在家里舒适地跟随世界上最好的数据科学家学习。通常作业是学习最多的地方,所以不要跳过它们!这里有几个我最喜欢的课程:
Andrew Ng 的经典机器学习公开课,或许
用 Python 完成这项工作更好
快速实习深度学习课程,其中唯一的先决条件是一年的编码经验。
Udacity 的 Web 开发课程,如果想成为一个数据科学家在技术上不需要了解这些,但成为一个更好的软件开发人员可以使你成为一个更好的数据科学家,了解如何构建自己的网络应用程序非常有用。
上述强调的问题之一是,在线可用的信息、教程和课程的数量或许巨大的,最大的风险之一是不能持之以恒,不能完成或坚持足够长的时间来学习它。重要的是找到一个「足够好」的课程或项目,然后坚持下去。找到或组建一个见面团队来一起学完在线课程或许对解决这个问题有帮助。
在线课程对获取知识非常有用。不过,我还没发现获得证书有啥好处。因为之前雇佣数据科学家时,我面试过很多求职者,而且自己也有这方面的求职经验,都是经验之谈。