若想修炼成数据科学家,最重要的技能居然是…?

若想修炼成数据科学家,最重要的技能居然是…?

Question 1

我本科研究生都是航空航天工程专业的,这个暑假会去一个参加一个Data Science的bootcamp。我每周花十五个小时去学MIT的edx概率课,这堂课是我毕生遇到的最难的课。我觉得我的青春可以不用来和概率课死磕,而应该用在别处。不知道自学,找工作必须的概念性知识是不是正确的做法?或者能不能给我一些建议,让我重点学习概率重的重要知识点?因为我最近想要自己做一个关于健身数据记录或者比特币的project,所以想把工作重心从概率课程上挪走一下。

A: 你其实对于你的问题有了一些正确的见解。答案是肯定的,你可以将时间更好地利用在别的地方。通过写代码来构建project能够给予你在自己的职业规划上继续向前走的动力,同时你所学习的数学知识可以作为你所需的必要基础知识。

这个计划的三个优点:

1. 对于大多数人来说,学习最好的动力就来自于做自己愿意做的事情。

2. 学以致用是检验学习效果的最佳方法,所以你现在做的project可以用来巩固你所学的知识。

3. 通过目的性地按需求学习知识,你可以学习到真正需要的东西,不要把时间浪费在和你最终目的不想关的课题上。

唯一例外的情况是,如果你想成为数学教授或者在某个智库工作,比如说我在读数学博士期间的目标是成为数学教授,所以我能理解深度学习数学的乐趣,但是当时我也并不了解还有其他那么多很厉害又有趣的工作也用到了数学。另外有时为了应对面试时遇到的现场解决技术问题的要求,你也需要重温数学知识。

Question 2

我正在攻读数据科学的硕士学位。我Coding能力不是很强,对于统计和机器学习的概念也只是初步理解。数据科学是一个很大的领域,所以我大多数朋友建议我专攻一个细节的分支。现在我在尝试所有的东西,从而变成了一个无所不能却一无所精的人。我要如果让我专业技能细化,有所专长呢?

A: 在数据科学领域做到无所不能并不是一件错事;从某种意义上来说,无所不能是成为一名数据科学家的意义。只要你能够花足够多的时间去编实际project的程序,你就完全没有问题。

想要成为数据科学家你最应该做的事* 把Python(包括Numpy, Pandas和Jupyter)作为重中之重。

* 尽量只关注一个主要的项目。从课堂中学习的知识里延伸出来。如果你只是一直在做一些主题很分散的习题,想达到这个目标就会变得有些难度。对于自学的人,一个比较大的风险在于自学的人比较容易左右徘徊无法确定重点,一直去看一些主题较为分散,不同网站上的教程,从而不能够深层地理解具体的知识点。选择一个Kaggle的竞赛,或是一个个人的project,或者从学校project中延伸出来的项目,然后深入地专注地做下去。我能想起来很几次我将学校布置的project在课程结束后做了一个历时数月的延伸project因为我对于这个项目太专注了。这是一个很好的学习方法。

* 从数据集构架的决策树集成(random forest 和 gradient boosting machine)开始,我就对这个话题有了很矛盾的感受。尽管我们是可以通过python使用sklearn做数据处理的,但我认为R始终是处理数据集构架和分类变量的更好的方法。然而,如果你只打算对一种编程语言熟悉,那么Python是一个显而易见的第一选择;毕竟同时学习两种编程语言并且把他们学好是不容易的事情。

* 在此之后,就可以进行下一步通过使用Python Library Keras进行更深层的学习。借用Andrew Ng的说法,深层学习是“新的电力”并且也是一个非常有趣,有很大影响的且值得我们去付出的领域。