在你将最终代码上传到GitHub或提交你的任务之后,可能会很容易将一个数据科学项目称为“完成”。然而,如果你在此停止,你将错过这个过程中最关键的一步:编写和分享一篇关于你的项目的文章。写博客文章通常不被认为是数据科学pipeline的一部分,但是要从你的工作中得到最大的收获,那么它应该是你的任何项目的标准的最后一步。
写一篇关于你的工作的简单博客文章有三个好处:
交流实践 :好代码本身就不够。如果你不能让人们关注这项工作,那你等文章里的任何优质的分析就不会产生什么影响。写作创造机会 :通过向世界展示你的工作,你将能够形成联系,从而得到工作机会、合作和新的项目想法。
反馈 :让你变得更好的循环方式是:做好工作,分享,倾听建设性的批评,改进工作,重复。
写作是类似锻炼和教育的活动之一,在短期内可能没有回报,但从长远来看几乎有无限的潜在回报。我从我的博客帖子每天收到的10,000次浏览中获得0美元,每一篇都需要3到15个小时的时间来写。然而,如果不是因为我的文章,我也不会有一份全职的数据科学工作。
此外,我知道我的数据科学工作的质量要高得多,这一方面是因为我打算写这篇文章,另一方面是因为我使用了以前收到的反馈,从写作中获得了长期的积极回报。
. . .
沟通:好的代码是不够的
我知道一种感觉:你在GitHub上安装了一些Jupyter Notebooks或脚本,你想停下来说:“我已经做了这项工作,现在我会让其他人发现它。”这可能只会发生在一个理想的世界里,但在现实世界中,要想让你的项目被注意,需要你公开交流你的工作结果。
如果GitHub上最好的作品自动浮出水面,那就太好了,但在现实中,好的沟通方式才是影响最大的。
想想你上一次在GitHub上找到一个项目代码库的时候:如果你和我一样,那么你读了一篇关于一个项目的有趣的文章,然后一直读到代码。人们从一篇文章到另一篇代码,因为他们首先需要一个令人信服的理由来检查代码。这并不意味着愤世嫉俗,它只是事情的运作方式:人们不会深入你的分析,直到他们知道你做了什么,为什么它是重要的/有趣的。
举个真实的例子,我的数据分析repo[1]是许多数据科学项目的集合,大部分是用非常粗略的代码编写的。然而,因为我写了几篇关于其中一些项目的文章,它有600多star。虽然star数量不是衡量影响的好方法,但很明显,人们正在使用这段代码并从中寻找价值。然而前几天,当我偶然发现了组合结构的贝叶斯优化(BOCS)[2],它的代码比我写的任何东西都要好的时候,我惊讶地发现它只有2颗星。就像伟大的想法孤立地死去一样,最好的代码将在没有引人注目的结果交流的情况下被忽略。
. . .
分析(Analysis)只有解释了才有价值
分析的价值不是与使用最好的算法或最多的数据成正比,而是与你如何与广大用户分享结果成正比。1854年,John Snow [4]利用578个数据点、一篇公开文章和一张点阵地图,帮助减缓了伦敦霍乱的流行[5]。他没有把结果隐藏在笔记本中,而是希望人们发现它们。发表了他的作品,并使它易于获取。
John Snow的伦敦霍乱爆发点地图。(来源[6])
最后,他说服了小镇成员禁用一个水泵,从而阻止霍乱的传播,实现科学数据的目的:使用数据做出更好的现实世界决策。
写一篇博客文章可以让你在数据科学中的一个最关键的部分进行实践:把你的工作传达给广大读者。良好的代码和透彻的分析是一个好的开端,但是要完成你的项目,你需要把它与引人入胜的叙述联系起来。一篇文章是解释你的结果和让人们关心你所有努力工作的完美媒介。
. . .
机遇:写作打开大门
尽管数据科学在招聘方面可能比其他领域更客观,但找到一份工作仍然主要取决于你认识谁或者谁认识你,而不是你知道什么。上大学的全部意义(这里只是有点夸张)不是要学习你在职业生涯中会用到的东西,而是要了解人们,并在你想要的职业领域建立联系。
幸运的是,在目前的数据科学领域,虽然上大学是有帮助的,但这并不是必要的。有了通过博客在网上联系成千上万人的能力,你就可以通过写作和分享的方式建立起那些关键的联系,打开大门,而不需要任何学费。当你在公共论坛上写你的项目时,你可以获得机会,而这些机会并不仅仅来自于提交你的作业。
我上的大学是机械工程专业,在学校里,我没有在数据科学领域建立任何联系(更不用说学习任何有用的技能了)。然而,我确实在上学期开始写作,因此,我能够与潜在的雇主、合作者,甚至是图书编辑建立起无数的关系,在我开始数据科学生涯的时候,这些关系非常有帮助。
回到第一点,我的代码远远比不上其他许多数据科学家的代码,但是我很幸运地获得了机会,因为我能够让我的工作变得更易获取。
我从来没有被人单独联系过,有人在GitHub上发现了我,但是我已经从读过我文章的人那里得到了数百次的联系。
而我的老板-Feature Labs[7]-确实找到了我的GitHub作品,不过不是通过在GitHub上搜索“great data science analysis”。相反,是通过我写的一篇文章,在这篇文章里我阐述了完成的一个项目并总结了这些结论。记住,这不是一篇章的代码,而是一篇关于代码的文章。
博客文章是建立重要联系的一个很好的媒介,因为它表明:(1)你做了很好的数据科学工作。(2)你关心分享它并把它教给别人。对数据科学的过度热情并不是一份工作的必要条件,但表明你对这一领域和学习感兴趣将有助于吸引雇主,特别是当你刚开始工作且没有太多的经验的时候。而且,写得很好的博客文章可以有很长的保质期,给你一个未来几年的投资组合。
目前还没有一条通向数据科学工作的道路,这意味着我们都要锻造自己的工作。写作与社区分享可以帮助你形成所有重要的联系,并在这个领域获得立足点。
. . .
反馈:工作,分享,倾听,改进,重复
作为一个新领域,在数据科学中很少有标准的答案。最好的学习方法是尝试一些东西,犯错误,并从中吸取教训。把你的工作放在公共场合意味着你可以从数千名拥有集体经验的数据科学家那里得到反馈。这就是成为一个社区的一部分的好处:总之,我们比任何一个人都了解得更多,通过成为社区中的一员,你可以利用这些知识,利用反馈来改进你自己的工作。
在互联网上处理反馈可能会很困难,但我发现数据科学社区,特别是Medium上的Towards Data Science来说,是非常文明的。我处理评论的策略是:
积极的评论 :感谢。建设性的批评 :写下评论,修正当前分析中任何可以修正的部分,并尽可能在未来的项目中执行建议。
非建设性批评:忽略。
不幸的是,我们经常没有花时间去回顾我们自己的工作,但幸运的是,我们可以和世界分享,让其他人来回顾我们的工作。这些人对我们的工作可能比我们更诚实,所以我们通过分享得到了更客观的评价。
课程中最有价值的部分绝不是内容,而是你从分配给你的教授那里得到的反馈。幸运的是,你可以在博客文章中与数据科学界公开分享你的项目,而不用上任何课程。
尽管学校教导我们要避免失败,但只有通过反复失败,然后不断进步,我们才会变得更好。毫无疑问,我是一个更好的作家和数据科学家,因为我已经把我的工作公开并接受批评,听取反馈意见。
. . .
怎么做?
现在,你可能有一到十几个Jupyternotebooks可以写出好文章,花上一两个小时把其中的一个写出来,放到博客上去。它不一定是完美的:只要你做了数据科学的工作,人们就会尊重你的文章。
如果你很难发布任何不完美的东西(我最大的问题之一),那就设定一个时限,比如说60分钟,无论你在60分钟内完成什么,都必须发布。我已经做过几次了,这让我的工作更有意义,更有效率。
现在,拿出一个Jupyternotebooks,写一篇文章。把它放在媒体上,然后让社区看到你的作品。虽然回报不是即时的,但随着时间的推移,好处会增加:
你会更好地完成关键的沟通任务机会/联系将打开
在建设性批评的基础上,你的数据科学工作和写作将会得到改善
继续做你的数据科学项目,但不要在GitHub上的代码上传或提交的时候就停止。迈出最后一步,写一篇文章。你未来的自我会感谢你的!
原文发布时间为:2018-08-13
本文作者:Xiaowen