登录
首页大数据时代我从高效的数据科学家那里学到的15个习惯
我从高效的数据科学家那里学到的15个习惯
2022-03-14
收藏

麦迪逊·亨特,地球科学学士学位本科生



当涉及到进入数据科学领域时,你需要使用书中的每一个技巧来给自己一个优势,推动你越过终点线。

那么,为什么不尝试效仿行业中最好的人的习惯呢?

这篇文章不是一个“快速致富”的方法,成为一个高效的数据科学家。相反,它显示了帮助最好的数据科学家到达他们所处位置的习惯。

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

1.跟上技术的发展。


有多少当前的数据科学技术是在最近十年左右才出现的?几乎是大多数。

进入数据科学领域的动机是你要好好尝试一下,你已经把自己归入了一生不断学习的状态。别担心,没有听起来那么凄凉。

然而,你应该时刻记住的是,为了在工作中保持相关性,你需要跟上技术的发展。因此,如果您在整个职业生涯中都在使用MATLAB进行数据分析,请尝试学习用Python编写代码。如果您一直在用Matplotlib创建可视化效果,请尝试使用Plotly来创建一些新鲜的东西。

如何养成这个习惯:每周花一个小时(或尽可能多的时间),尝试新技术。通过阅读博客文章找出哪些技术是相关的,并选择一对您想要添加到堆栈中的技术。然后,创建一些个人项目,学习如何最大限度地使用新技术。

2.保存适当的文件。


我似乎总是有幸阅读和处理那些文档糟糕、没有支持性注释来帮助我理解到底发生了什么的代码。

我曾经把它归因于程序员的吹口哨,直到有一天,我意识到这只是一个糟糕的程序员的标志。

我接触过的所有优秀程序员都是那些提供清晰、简洁的文档来支持他们的工作,并在他们的程序中添加有用的注释来描述某些代码行在做什么的人。这对于正在使用复杂算法和机器学习模型解决问题的数据科学家来说尤其相关。

如何实现这个习惯:花一些时间阅读好的代码文档或关于如何编写好代码文档的文章。为了实践,为旧的个人项目编写文档,或者花一些时间修改当前项目的文档。由于数据科学世界的很大一部分都是在Python上运行的,请查看这篇关于如何记录Python代码的非常好的文章:

Documenting Python Code: A Complete Guide - Real Python
Welcome to your complete guide to documenting Python code. Whether you're documenting a small script or a large…

3.参与数据科学社区。


认为开发人员是面皮苍白的社会弃儿的刻板印象,他们把自己锁在孤独中编写注定要统治世界的代码,这是一种过时的概括,没有反映整个科技行业的现代复杂性。


“没有人是一座孤岛。”--许多数据科学家最喜欢的一句话


数据科学的复杂性使得在数据科学界内外建立一个大型的专业人员支持网络是必要的,以解决使数据科学家成为必要的各种问题。

然而,社区的重要性并不仅仅停留在专业层面。随着数据科学领域的扩展,有必要为未来的分析师和工程师铺平道路,这样他们也可以产生影响,并进一步支持其他数据科学家。

随着数据科学领域的“性感”减弱,做出必要改变的唯一方法将是启动一场社区范围的运动,激励该行业向更好的方向改变。

如何实现这个习惯:成为一名导师,撰写信息丰富的博客文章,加入数据科学论坛并帮助回答问题,创建一个Youtube频道来分享您的经验,参加Kaggle比赛和黑客马拉松,或者创建课程来帮助未来的数据科学家学习进入该行业所需的技能。

4.定期重构代码。


重构是在不改变代码原有功能的情况下清理代码的过程。虽然重构是软件开发环境中的一个过程,但对于数据科学家来说,重构是一个有用的习惯。

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

我发现,当我最初编写代码来解决数据科学问题时,我通常会抛弃良好的编码实践,而倾向于编写在需要时有效的代码。换句话说,会发生大量的意大利面代码。然后,在我的解决方案开始工作后,我将返回并清理我的代码。

如何实现此习惯:查看旧代码,并询问是否可以更有效地编写相同的代码。如果是这样,请花一些时间来教育自己关于最佳编码实践的知识,并寻找可以缩短、优化和澄清代码的方法。查看这篇概述代码重构最佳实践的优秀文章:

Code Refactoring Best Practices: When (and When Not) to Do It
代码重构是DevOps软件开发方法中使用的一个过程,包括编辑和清理…

5.优化工作区、工具和工作流程。


有这么多的IDE提高工作效率的扩展,令人惊讶的是,有些人还没有选择优化他们的工作流。

这个习惯对每个人来说都是如此独特,以至于它实际上决定了哪些工具、工作区和工作流使您成为最有效和高效的数据科学家。

如何实现这个习惯:每年一次(如果对您更有效,则更频繁),评估您的整体有效性和效率,并确定您可以改进的地方。也许这意味着早上第一件事就是研究机器学习算法,或者坐在健身球上而不是椅子上,或者在IDE中添加一个新的扩展,为您的代码添加一层。尝试不同的工作空间、工具和工作流,直到您进入最佳形式。

6.重点了解业务问题。


据我所知,数据科学75%理解业务问题,25%编写模型以找出如何解决这些问题。

编码、算法和数学是容易的部分。了解如何实现它们,以便它们能够解决特定的业务问题,而不是太多。通过花更多的时间来理解业务问题和您试图解决的目标,剩下的过程将会顺利得多。

为了了解你所从事的行业面临的问题,你需要做一些调查,收集一些背景知识,以支持你对你试图解决的问题的了解。例如,您需要了解是什么使某一特定业务的客户成功,或者工程公司试图达到的特定目标。

如何养成这个习惯:花些时间研究一下你工作的特定公司和他们所处的行业。写一份你可以参考的备忘单,包含公司的主要目标,以及在特定行业可能面临的问题。不要忘记包括您可能想要用来解决业务问题的算法,或者将来可能有用的机器学习模型的思想。当你发现有用的东西时,添加到这个备忘单中,很快你就会拥有一个与行业相关的花絮宝库。

7.采用极简风格。


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

人们经常认为,最好的数据科学家使用最少的代码、最少的数据和最简单的算法来完成工作。

虽然作为极简主义者,我不想让你立即假设稀缺。通常,当有人讨论代码中极简主义的重要性时,会导致人们试图开发只使用几行代码的令人愤慨的解决方案。别闹了。是的,令人印象深刻,但这真的是对你时间的最好利用吗?

相反,一旦您熟悉了数据科学概念,就开始寻找可以优化代码的方法,使其简单、干净和简短。使用简单的算法来完成工作,不要忘记编写可重用的函数来消除冗余。

如何实现这个习惯:作为一名数据科学家,开始推动自己编写更高效的解决方案,编写更少的代码,并使用更简单的算法和模型来完成工作。了解如何在不降低代码有效性的情况下缩短代码,并留下大量注释来解释压缩版本的代码是如何工作的。

8.使用函数消除复杂性和冗余。


当我第一次编写数据分析代码时,我会第一个承认我严重忽略了函数。当我挣扎着通过不同的分析来推理时,意大利面代码填满了我的IDE。如果您看了我的代码,您可能会认为它已经走得太远了,并自愿把它从谷仓后面拿出来,让它摆脱困境。

一旦我设法拼凑出一个半体面的结果,我就会回去试图修复相当于严重事故的结果。通过将代码打包成函数,我可以迅速消除不必要的复杂性和冗余。如果这是我对代码所做的唯一一件事,那么我已经将它简化到了一个点,我可以重新审视解决方案,并理解我是如何到达那个点的。

如何实现这个习惯:编写代码时不要忘记函数的重要性。人们常说,最好的开发人员是懒惰的开发人员,因为他们知道如何创建不需要太多工作的解决方案。编写解决方案后,返回并将冗余或复杂的代码捆绑到函数中,以帮助组织和简化代码。

9.应用测试驱动的开发方法。


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

数据科学家可以成功地实现TDD,以产生分析管道、开发概念验证、处理数据子集,并确保在开发过程中不破坏功能代码。

如何实现此习惯:研究测试驱动开发,并确定此技术是否可以为您的工作流添加一些内容。TDD并不是每个问题的完美答案,但如果仔细实施,它可能会很有用。查看这篇文章,它对TDD进行了很好的描述,并提供了一个如何在数据科学项目中实现它的示例:

How to use Test Driven Development in a Data Science Workflow
Another thing Data Scientists and Machine Learning Engineers should learn from Software Developers

10.做出小而频繁的承诺。


有没有发出一个拉请求,你的计算机被错误消息和问题从Wazoo中传出来?我有。太烂了。

当你想介绍谁对你的拳头做出了如此大的承诺时,深呼吸,记住这个人显然没有花时间养成良好的成长习惯。

基于团队的软件开发的黄金法则是什么?做出小而频繁的承诺。

如何实现这个习惯:经常提交代码更改,并定期请求获取最新代码。您或其他人所做的每一个更改都可能破坏整个项目,因此进行易于恢复且可能只影响项目的一部分或一层的小更改是很重要的。

11.把自我发展作为优先事项。


根据您询问的对象,该行业的数据科学家要么太多,要么太少。

无论这个行业是饱和还是干旱,你都将与大量高资历的候选人竞争一份工作,而这些候选人往往是资历过高的。这意味着在求职之前,你需要已经养成了自我提升的习惯。今天,每个人都痴迷于提高技能,这是有充分理由的。这种趋势对数据科学家来说应该也不例外。

如何养成这个习惯:做一个技能清单,看看你是如何满足雇主在招聘公告中提出的要求的。你是一个能够高效使用相关库的Pythonista吗,比如Keras、NumPy、Pandas、PyTorch、TensorFlow、Matplotlib、Seaborn和Plotly?你能写一份备忘录,详细说明你的最新发现,以及它们如何使你的公司效率提高25%吗?你愿意作为团队的一员来完成一个项目吗?找出任何缺点,找到一些好的在线课程或资源来提高你的技能。

12.开始一个项目时,要牢记目标。


Stephen Covey在《7个高效能人士的习惯》中讨论了“以终为始”的原则。

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

如何实现此习惯:在每个项目开始时都有一个规划会话,该会话明确列出您希望在开发期结束时实现的目标。确定您将试图解决哪个问题,或者您试图收集哪一个证据。然后,您可以开始回答可行性和可持续性问题,这些问题将塑造项目的里程碑和结果。从那里,您可以开始编写代码和机器学习模型,并有一个明确的计划来指导您完成项目。

13.理解,这样你才能被理解。


在试图准备一个关于为什么自旋v2粒子服从费米-狄拉克统计的新生讲座失败后,理查德·费曼说过一句著名的话:“我不能把它降低到新生的水平。这意味着我们真的不明白。“被称为”伟大的解释者“的费曼留下了数据科学家只能希望效仿的遗产。

数据科学是一门使用数据来讲述一个引人注目的故事的艺术,只有当讲故事的人理解他们试图讲述的故事时,它才会成功。换句话说,理解是你的任务,这样你才能被理解。尽早养成这个习惯,了解你想要完成的事情,这样你就可以与其他人分享到一个相当好的理解水平,这将使你成为这个房间里最有效的数据科学家。

如何实现这个习惯:使用Feynman技术来加深对您试图发现的概念和试图解决的问题的理解。这种方法很好地与分析数据然后向一般非数据科学利益相关者解释结果的数据科学过程相一致。简而言之,您将对主题的解释细化到这样一个程度,即您可以用任何人都能理解的简单、非行话术语来解释它。

14.阅读研究论文。


在一个由硕士和博士主导的领域。持有者,研究论文经常被用来分享行业新闻和洞察力。

研究论文是了解他人如何解决问题的有用方法,拓宽了我们的视野,并跟上了最新的趋势。

如何养成这个习惯:每周挑选一到两篇与你当前的工作或你感兴趣的技术相关的研究论文来阅读。试着每周为这篇文献复习留出时间,让这成为一个优先事项。熟悉阅读研究论文的三关方法,这有助于你快速收集相关信息。要真正巩固你对论文的理解,试着把你从阅读中学到的东西落实到一个个人项目中,或者与同事分享你学到的东西。

15.对变化持开放态度。


数据科学的世界正在迅速变化,从所使用的技术到所达到的目标。不要做那种固步自封、不愿改变的数据科学家。

开放的改变不仅会迫使你作为一个专业人士继续提高,而且还会让你在一个快速变化的行业中保持相关性,这个行业在你落后的时候会把你吐出来。

如何养成这个习惯:每当一项新技术或实践成为新闻时,就进行一次测试,看看新技术或实践带来了什么。即使只是阅读文档,您也可以随时了解行业的变化趋势。此外,您可以为您的公司带来一个关于技术的视角,并帮助他们导航技术变化和进步。在办公室里做一个耳旁风的人可以帮助你保持领先,也可以帮助你引导你的团队和公司找到更好、更有效的解决方案。

在数据科学职业生涯的任何阶段,养成良好的习惯都可以让你发挥潜力,成为团队中有效的一员,对他们试图解决的任何问题都有很大的影响。

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



数据分析咨询请扫描二维码

客服在线
立即咨询