您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 软件开发专栏 > 大数据 > 正文

我从高效数据科学家那里偷走的15个习惯

发表于:2021-03-29 作者:大数据文摘 来源:medium

大数据文摘出品

来源:medium

编译:在赤道的熊猫

当涉及到数据科学领域时,你需要使用一些书中的所有技巧,以使自己获得一个使你超越终点的优势。

那么,为什么不尝试一下行业的良好习惯呢?

本文并不是成为高效数据科学家的“快速致富”方法。相反,它分享了帮助好的数据科学家达到他们现在的位置的习惯。

人们常说,数据科学家的价值取决于他们对组织的影响。这种影响起始于通过养成良好习惯成为一名有效的数据科学家。

与时俱进

仅在过去十年左右的时间里,出现了多少当前的数据科学技术?他们中的大多数。

带着想要在数据科学领域做出巨大成就的动机,你已成为终身学习的一员。不用担心,它听起来并不那么可怕。

但是,你任何时候都应该记住的是,你需要与时俱进。因此,如果你一生都在使用MATLAB进行数据分析,请尝试学习使用Python来编程。如果你一直在使用Matplotlib来可视化数据,请尝试使用Plotly进行一些创新。

如何养成这种习惯:每周花一个小时(或尽可能多的时间),然后尝试新技术。阅读博客文章,找出哪些技术是相关的,然后选择几个你想添加到堆栈中的技术。然后,创建一些个人项目,来学习如何充分利用新技术。

适当维护文档

我似乎总是很幸运能够阅读和处理具有糟糕文档的代码,而没有支持注释来帮助我了解到底发生了什么。

直到一天,我意识到这只是一个糟糕的程序员的标志。

我所遇到的的所有优秀程序员都提供清晰,简洁的文档,并通过提供有用的注释来描述某些代码行的用途。对于使用复杂算法和机器学习模型来解决问题的数据科学家而言,这一点尤为重要。

如何养成这种习惯:花一些时间阅读有良好的代码文档或有关如何编写良好的代码文档的文章。要练习,为旧的个人项目写文档,或者花一些时间来修改当前项目的文档。

由于数据科学世界中有很大一部分都运行在Python上,请阅读这篇关于如何记录Python代码的好文章:

https://realpython.com/documenting-python-code/

融入到数据科学的社群

人们曾经认为开发人员是不能融入社会的流浪者,他们束手无策的编写注定要统治世界的代码。这是一种过时的概括。它无法反映整个技术行业的现代复杂性。

“没有人是一个小岛。” ——最受数据科学家喜爱的名言

数据科学的复杂性要求在数据科学界内外建立一个庞大的专业人员支持网络,来解决数据科学家必不可少的各种问题。

但是,社区的重要性不仅限于专业层面。随着数据科学领域的不断扩大,我们有必要为未来的分析师和工程师铺平道路,以便他们也可以发挥影响并进一步支持其他数据科学家。

随着数据科学领域的“性别”逐渐减少,进行必要更改的唯一方法是发起整个社区的运动,以激励行业进行更好的变革。

如何养成这种习惯:成为一名导师,撰写内容丰富的博客文章,加入数据科学论坛并帮助回答问题,建立一个YouTube频道来分享你的经验,参加Kaggle竞赛和黑客马拉松或创建课程来帮助未来的数据科学家学习他们需要进入这个行业的技能。

定期重构你的代码

重构是清理代码而不更改其原始功能的过程。虽然重构是软件开发环境中必然产生的过程,但是重构对于数据科学家来说可能是一个有用的习惯。

重构时我的口头禅是“少即是多”。

我发现,当我最初编写解决数据科学问题的代码时,我通常会抛弃良好的编码习惯,而编写在需要时可用的代码。换句话说,我写了很多没有结构的代码。然后,在获得解决方案后,我重新清理代码。

如何养成这种习惯:看一下旧代码,想一想是否可以更高效地编写相同的代码。如果是这样,请花一些时间来学习最佳编码实践,找出可以缩短,优化和阐明代码的方法。

看一下这篇很棒的文章,它概述了代码重构的最佳实践:

https://www.altexsoft.com/blog/engineering/code-refactoring-best-practices-when-and-when-not-to-do-it/

优化你的工作区,工具和工作流程

现在有许多用可提高IDE效率的扩展,吃惊的是,有些人还没有选择优化其工作流程。

这种习惯对于每个人来说都是如此独特,以至于真正要确定哪些工具,工作空间和工作流程使你成为可能的最有效和最高效的数据科学家。

如何养成这种习惯:每年一次(如果更适合你,则每年一次),评估你的整体有效性和效率,并确定可以改进的地方。也许这意味着早上要首先研究机器学习算法,或者坐在健身球上而不是椅子上,或者在IDE中添加一个新扩展名,从而为你的代码添色。尝试使用不同的工作空间,工具和工作流程,直到输入最佳表单为止。

专注于理解商业问题

据我所知,在数据科学界,75%的工作是理解商业问题,25%的工作是编写模型来解决问题。

编程,算法和数学是简单的部分。了解如何实施它们来解决特定的商业问题,却不是那么容易。花费更多的时间来理解业务问题和你要解决的目标,过程的其他部分将更容液。

要了解你所从事的行业所面临的问题,你需要进行一些调查,来收集一些背景信息,去充实你在这个方面的知识。例如,你需要了解是什么使特定业务的客户产生兴趣,或者一个工程公司试图达到什么目标。

如何养成这种习惯:花一些时间研究你正在工作的公司及其所从事的行业。编写一份可以参考的备忘单,包括公司的主要目标和在这个特定行业的问题。别忘了写下你可能要用来解决业务问题的算法或有关机器学习模型的,这些算法将来可能会有用。每当你发现有用的内容时,请将其添加到这个备忘单中。

采用简约风格

不,不是生活。是在在你的代码和工作流程中。

经常有人争辩说,最好的数据科学家使用最少的代码,最少的数据和最简单的算法来完成工作。

尽管提倡极简主义,我不希望你认为是不充足的。通常,当人们讨论代码中的极简主义的重要性时,会有人尝试开发仅使用几行代码的离谱解决方案。不要那么做。是的,这种代码可以给人留下深刻的印象。但这真的是你最好地利用时间的方式吗?

相反,一旦你熟悉了数据科学的概念,就可以开始寻找可以优化的代码来将其变得简单,简洁和简短。使用简单的算法来完成工作,并且别忘了编写可重用的函数来消除冗余。

如何养成这种习惯:当你逐渐在数据科学领域获得进步时,开始敦促自己编写更有效的解决方案,写更少的代码,并使用更简单的算法和模型来完成工作。学习如何在不降低代码有效性的情况下缩短代码,并留下大量注释来解释合同约定版本的代码。

使用功能消除复杂性和冗余

我首先要承认在我第一次写数据分析代码时严重忽略了函数的方法。当我难以通过各种分析来推理自己的方式时,Spaghetti代码充满了我的IDE。如果你查看我的代码,你会认为我写的太差了,你会想删除它。

一旦我凑合得到了一个不错的结果,我会回去尝试修复这个相当于严重事故的代码。通过将代码做成函数,我可以快速消除不必要的代码的复杂性和冗余。如果我只对代码重新编译,我已经将其简化到当我重新阅读它时我理解我是如何做到的。

如何养成这种习惯:在写代码时请不要忘记函数的重要性。人们经常说,最好的开发人员是懒惰的开发人员,因为他们会找出如何创建不需要很多工作的解决方案。在你写出解决方案后,请重新将多余或复杂的代码写成函数,以帮助组织和简化代码。

应用测试驱动的开发方法

测试驱动开发(TDD)是一种软件开发原理,专注于编写具有不断测试的增量改进的代码。TDD在“红色,绿色,重构”系统上运行,该系统鼓励开发人员构建测试套件,编写实现代码,然后优化代码库。

数据科学家可以成功使用TDD,来构建分析pipeline,进行概念证明,使用数据子集并确保在开发过程中不会破坏功能代码。

如何养成这种习惯:学习TDD的知识,并考虑是否可以在你的工作流中使用这个原理, TDD并不是针对每个问题的完美答案,但如果严谨的使用, TDD可能会很有用。

这篇文章对TDD进行了很好的描述,并提供了有关如何将其实现到数据科学项目中的示例:

https://towardsdatascience.com/tdd-datascience-689c98492fcc

进行少量频繁的提交

你是否经历过提出pull request,计算机上出现了错误消息而且使你的计算机崩溃了吗?我有。那感觉糟透了。

在你想痛击那个做出这个提交的人时,喘口气,并记住,这个人显然没有花时间去养成良好的习惯。

团队合作的软件开发的黄金法则是什么?进行少量频繁的提交。

如何养成这种习惯:经常练习提交代码更改,并定期做出请求来获取最新的代码。你或他人所做的每项更改都可能破坏整个项目,因此,进行易于恢复且可能仅影响项目一部分或一部分的小更改很重要。

优先发展自我

取决于你询问的人,这个行业有过多或过少的数据科学家。

无论行业是处于饱和还是干旱状态,你都将与大量高素质且常常是过高素质的求职者竞争。这意味着在申请工作之前,你需要已经养成自我提高的习惯。如今,每个人都因为合理的原因在提高自身技能,这一趋势对数据科学家来说也不例外。

如何养成这种习惯:列出技能清单,看看你如何满足雇主在工作岗位上的要求。你是否能有效使用相关库(例如Keras,NumPy,Pandas,PyTorch,TensorFlow,Matplotlib,Seaborn和Plotly)的Pythonista吗?你能否写一份备忘录来详细说明你的最新发现以及它们如何将你的公司的效率提高25%?你是否愿意作为团队的一部分来完成一个项目?你要试图找出你的不足之处,而且找到一些好的的在线课程或资源来增强你的技能。

在开始一个项目时你要知道项目的期望结果是什么

Stephen Covey在高效能人才的7个习惯中讨论了“从始至终”的原则。

为了有效地将其与数据科学项目联系起来,您需要在项目的规划阶段问自己,这个项目的期望结果是什么。这将有助于你了解项目的整体结构,并提供实现目标所需的成果的路线图。不仅如此,确定项目的结果将使您对整个项目的可行性和可持续性有所了解。

如何养成这种习惯:在每个项目开始时都要进行一个计划会议来准确地列出了你希望在项目结束时实现的目标。确定要尝试解决的问题,或要收集的证据。然后,你可以开始回答可行性和可持续性问题。这些问题将影响项目的里程碑和结果。之后,你可以使用制定清晰的计划,来辅助你编写代码和机器学习模型来完成项目。

理解,然后你能被理解

当理查德·费曼不能够成功的解释给大学新生新生自旋V2粒子服从的原理时,他说道:“我想我可以有把握地说,没有人真正理解量子力学。”费曼被称为“伟大的解释者”,他留下了数据科学家只能希望效仿的遗产。

数据科学是一种使用数据讲述一个引人入胜的故事的艺术,只有当讲故事的人理解了他们试图讲的故事后,它才能成功。换句话说,理解你的任务才能使你能够被理解。在了解你要完成的任务时尽早养成这种习惯,这样你就可以与其他人以相当的理解水平分享它,这将使你成为会议室中最有效的数据科学家。

如何养成这种习惯:使用费曼技术来加深对要尝试发现的概念以及要解决的问题的理解。此方法非常适合于分析数据然后向一般非数据科学利益相关者解释结果的数据科学过程。简而言之,你可以将对主题的解释精简到可以用任何人都可以理解的简单,非专业术语解释的程度。

阅读研究文献

在这个由研究生和博士主导的领域,行业的新闻和见解通常由发表的文献分享。

研究文献是了解他人如何解决问题,扩大我们的视野以及了解最新趋势的有效方法。

如何养成这种习惯:每周选择一篇或两篇与你当前的工作或对追求或研究感兴趣的技术有关的文献。尽量为每周的文献阅读留出时间,并将其作为优先事项。熟悉阅读论文的Three Pass 方法来帮助你快速收集相关信息。要真正巩固你对论文的理解,请尝试将你从阅读中学到的东西应用到你的项目中或者与同事分享你学到的东西。

乐于改变

从使用的技术到实现的目标,数据科学的世界正在迅速变化。不要成为那些束手无策,不愿改变的数据科学家。

乐于接受变革,这不仅会迫使你不断提高专业水平,而且还使你在瞬息万变的行业中保持重要地位,一旦你落后,该行业将使你脱颖而出。

如何养成这种习惯:每当有新技术或新方法发布新闻时,你可以尝试一下,看看新技术或新方法带来了什么。即使你只是阅读文档,也可以随时了解该行业不断变化的趋势。此外,你可以将有关技术的观点带入你的公司,并帮助他们应对技术变化和进步。作为一个对实时新技术敏感的人,你将会一直处于领先位置,也可以指导你的团队和公司寻求更好,更有效的解决方案。

在数据科学职业的任何阶段,养成良好的习惯可以发展你成为团队高效成员的潜力,你将会对任何需要解决的问题做出重大影响。

没有比现在更好的时间为未来的成功做好准备。

相关报道:

https://towardsdatascience.com/15-habits-i-stole-from-highly-effective-data-scientists-441b1d46c572?source=extreme_main_feed---------37-73--------------------2305a9c9_2b59_44a4_8f7f_b7036d51f7f0-------