新入门的数据科学家都面临一个非常重要的问题:我应该学习Python还是R?
这个问题非常重要,因为学习第一门编程语言需要花费很多时间。尝试两者兼得是不切实际的,尤其是在你刚开始职业生涯的时候。
所以你应该选哪一个呢?
根据我的经验,如果选择Python,你的职业生涯会受益更多。
在我看来,Python,尤其是在刚刚起步的情况下,是从事数据科学的更好选择。
我会分四点来解释为什么要选择Python,但同时我要声明,这并不意味着R是一个糟糕的选择。
选择R不会对你的工作产生负面影响,如果你的团队有要求,那你也必须去学习R。事实上,Facebook已经使用R作为内部调查工具的分析组件,我们所有的数据科学基础设施都支持这种语言。
也就是说,我认为如果先学习Python,作为一名实践数据科学家,你将变得更有效率,并且能够更好地在统计建模之外的重要领域为团队做出贡献。
因此,学习Python后,你能为公司带来更大的影响力,而你的职业生涯也会受益更多。
理由1:你总要学习Python
大多数公司不仅仅要求他们的数据科学家学会预测建模(即机器学习)。至少,你可能需要维护为模型提供数据的数据管道,而这些数据管道可能是用Python构建的。
如今,管道的行业标准是基于Python的Airflow,,而在Facebook,我们使用的内部Python工具和其基本相同。
事实上,我估计Facebook的所有数据科学家每周都会使用Python,而只有大约10%的人会经常使用R。
因此,选择Python可能更有效:虽然一些工作可以避免使用R,但不太可能会避免使用Python。
理由2:Python更容易学习
在就业之前,你学习这些技能的时间非常重要,特别是在大学之外自学的话。
Python以易学而闻名。在同时学习了Python和R之后(尽管更深入地学习了Python),我认为Python有此名声当之无愧。
当你开始使用统计建模以外的语言特性时,Python易于学习的优点尤其明显。这些特性包括打包项目以供分发、开发命令行接口、使用ORMs(如SQLAlchemy)建模数据结构等。
使用Python能让你更轻松地学会并精通这些特性,你的职业生涯也会因此受益。
理由3:Python社区更大
来源:Pexels
Python是全球最流行的编程语言之一,在stack overflow、kaggle甚至medium等站点上都有一个庞大的社区。
因此,当遇到一个自己无法解决的问题时,你会更容易找到有经验的人寻求帮助,解决问题。
这意味着你无需在调试与系统的兼容性问题上花太多时间,这样一来,你也有更多的时间交付公司所需的代码。
理由4:Python更易于部署模型
最后,你可能会在职业生涯中达到这样一个阶段:你想实时将模型提供给任何一个终端用户。要解决这个问题,需要构建一个基于REST的web应用程序,而使用Python来构建这个程序会容易很多。
事实上,Python拥有一些全球最流行的web应用框架,即Django和Flask。你公司的内部部署工具更可能支持这些框架,而相对不太可能支持R。
这些框架的流行还意味着它们得到了平台即服务提供商(如Heroku、Amazon Lightsail等)的良好支持。你将能够在线发布个人项目,这与在R中部署相同项目所需的花费相比,简直是九牛一毛。
最重要的是,如果你足够幸运,你的公司为自己的产品使用了Python框架,学习Python意味着连接你的应用内跟踪变得十分危险。如果你能自主为模型捕获更多的功能,个人影响力会发生巨大改变。
当然,所有的决定都有取舍,选择学习Python而不是R也是如此。尽管我相信Python是数据科学职业的更好选择,但也要考虑它带来的不利因素。
对我来说,Python最大的缺点是没有等同于Rstudio的工具。在Python中最具可比性的工具是Jupyter Notebook,但我个人认为Rstudio更好,因为它具有数据探索功能。
R在学术界也很受欢迎,因此R中包的文档更有可能直接引用学术研究。这些文档对于从事“尖端”研究的数据科学家来说非常有用。
但我不认为缺少和Rstudio等同的工具可以否定Python的相对优势。在数据科学学术界,职位也少得多,所以对大多数数据科学家来说,R的研究相关优势也不那么重要了。
因此,尽管R有很多优点,但我相信如果你选择学习Python,职业生涯将会受益匪浅。
最后值得一提的是,我并不认为学习R是一个糟糕的选择,最重要的是,不论选择哪种语言,你都不应该永远止步于此。所有的编程语言之间,相似之处总是多于差异:学习第二语言也会比学习第一语言容易得多。
事实上,我选择了先学习R!因此尽管我现在推荐Python作为职业生涯的更好选择,我也很难对R作出不好的评价。