【转载】软件工程师如何修炼数据科学

此文为转载,原文地址:http://www.rcasts.com/2012/12/software-engineers-guide-to-getting.html,另外,需要说明的是,学习方法是因人而异的,仁者见仁,智者见智,取精去糟。

很多软件攻城狮朋友问我如何学习数据科学。其实已经有不少有名的数据科学家写过这方面的文章,比如DatasporaGigaom, QuoraHilary Mason。 本文讲述的是我作为一名软件工程师学习统计和数据可视化的历程。

我是半路出家的,花了5年时间成为数据科学领域的熟练工(proficient),在我的学习过程中包括自学 (书籍, 博客, 简单实例)、工作中做项目、课堂培训(Stanford)、教学/演讲、会议(UseR, Strata)。 下面来讲讲到目前为止我做了哪些准备,其中哪些有用,哪些没用。

1. 入门

a) 自学(2 - 4 个月)

考察一下数据科学是否适合自己

入门很关键。两年前,我和几个同事组成了学习小组,一起学习Stats 202的课件。 这让我很兴趣,并且从那开始接触数据分析。 学习小组的5名成员中只有2名选择在这一领域研究的更深入(数据科学并不适合所有人)。

网上有很多学习资料

b) 课堂培训 (9 - 12个月)

如果你真的想学好,就参加一门正式的课程

如果你很认真地想学这门技术,那么最好参加课程学习。课程的艰难程度要保证我不会松懈。斯坦福提供了很棒的入门课程,比我参加的其他为期一周的培训课程要好很多。

2. 专注

a) 在数据科学方面花100%的时间

  • 当我沉迷于数据科学时,我发现想用20%的时间来构建专业知识是很困难的。 必须花100%的时间在上面, 所以我寻找跟数据科学有关的问题 (大数据分析、医疗、市场营销以及零售分析、 最优化等问题)来解决

b) 研究有趣的问题

  • 我的学习目标总是跟我感兴趣的事物联系起来。当我学习新的技术时,我发现用所学的知识解决有趣的问题是很另人兴趣和着迷的事。我对零售、医疗和体育 (板球)方面的数据分析很感兴趣

c) 加速学习

d) 学习行业知识

我很幸运,能够接触到数据科学内外的专家, 他们帮我理解他们处理数据科学问题的方法 (他们如何思考、 假设以及 test/access/reject解决方案)。我从他那里学到, “Hypothesis-driven data analysis”比”blind/brute-force data analysis”更加重要。这强调的重点是,对业务的理解要先于试图从数据中获取有意义的结论。 这引导我了解运筹、营销、零售、 旅行和物流(利润管理)以及医疗行业。 纽约时报最近发表了一篇文章强调直觉的必要性

3. 数据科学方面有用的图书

4. 对我无效的事

  • 学习多种统计工具:一年以前,我接手的工作需要用到SAS编程,所以我想学SAS。我尝试了一个月,不过最终还是放弃了。主要原因是学习的惰性,以及我对另一种统计工具R的热爱。我实在不需要其他统计软件。我可以用R和其他我了解的软件解决数据科学里几乎所有的问题 。所以我的建议是如果你已经对SAS,Stata,Matlab,SPSS,Statistica很熟悉,那就继续使用。如果你要学习新的统计工具,那就选R。 R 是开源软件,而其他软件是商业软件(昂贵且复杂)
  • Auditing courses:I tried to follow self-paced coursework from Coursera and other MOOCs but it wasn't effective for me. I needed the routine, the pressure of a formal course with proper grading to go through the rigor
  • 增加学术方面的工作量:Manage work-life balance and work-commitments well. Earlier this year, I tried to take multiple difficult courses at the same time and quickly realized that I wasn't enjoying and learning as I should.
  • 只阅读课程教材:很多课程的教材对我这样的软件工程师来说过于艰深了。所以我用其他资料来理解概念。比如,用卡内基梅隆大学的笔记学习回归

posted on 2013-05-25 22:54  提灯夜行者  阅读(249)  评论(0编辑  收藏  举报

导航