原文:
www.kdnuggets.com/2021/03/15-habits-learned-from-highly-effective-data-scientists.html
评论
作者:Madison Hunter,地球科学本科生
图片由Evgeny Tchebotarev提供,来源于Pexels
当涉及到进入数据科学领域时,你需要利用所有书中的技巧,给自己那个推动你越过终点线的优势。
那么,为什么不尝试效仿业界最佳的习惯呢?
本文不是一种“快速致富”的方法来成为一个高效的数据科学家。相反,它展示了帮助最佳数据科学家达到他们现状的习惯。
人们常说数据科学家的价值取决于他们对组织的影响力。这种影响力始于通过培养良好习惯成为一个高效且有效的数据科学家。
有多少当前的数据科学技术是仅在过去十年左右才出现的?几乎所有的。
通过带着你要全力以赴的动机进入数据科学领域,你已经把自己投入到了终身不断学习的状态中。别担心,这并不像听起来那么悲观。
然而,你需要时刻铭记的是,为了在职场中保持相关性,你需要跟上技术的最新发展。因此,如果你整个职业生涯都在使用 MATLAB 进行数据分析,可以尝试学习 Python 编程。如果你一直用 Matplotlib 创建可视化,尝试使用 Plotly 来获得一些新的体验。
如何实施这个习惯: 每周花一个小时(或尽可能多的时间)尝试新技术。通过阅读博客文章了解哪些技术相关,挑选几个你想加入到你的技术栈中。然后,创建一些个人项目,学习如何最好地使用这些新技术。
我总是有幸阅读和处理文档记录极差且没有支持性注释的代码,以帮助我理解到底发生了什么。
我曾经把这归结为程序员的感慨,直到有一天,我意识到这只是一个糟糕程序员的标志。
我处理过的所有优秀程序员都提供清晰、简明的文档来支持他们的工作,并在程序中添加有用的注释来描述某些代码行的功能。这对于使用复杂算法和机器学习模型解决问题的数据科学家尤其重要。
如何实施这一习惯: 花些时间阅读优秀的代码文档或关于如何编写优秀代码文档的文章。为了练习,可以为旧的个人项目编写文档,或者花时间更新当前项目的文档。由于数据科学界很大程度上依赖 Python,可以查看这篇关于如何文档化 Python 代码的优秀文章:
Python 代码文档化:完整指南 - Real Python
欢迎来到你全面的 Python 代码文档编写指南。无论你是在文档化一个小脚本还是一个大型项目…
将开发者刻板印象为皮肤苍白的社会孤立者,锁在孤独中编写旨在统治世界的代码,这种陈旧的概括并不能反映现代技术行业的复杂性。
“没有人是孤岛。” —— 许多数据科学家最喜欢的名言
数据科学的复杂性使得在数据科学社区内外需要一个庞大的支持网络,以解决各种使数据科学家变得必要的问题。
然而,社区的重要性不仅仅局限于专业层面。随着数据科学领域的扩展,有必要帮助铺平未来分析师和工程师的道路,使他们也能产生影响,并进一步支持其他数据科学家。
随着数据科学领域的“性感”逐渐减退,进行必要的改变的唯一办法是发起一个社区范围的运动,激励行业向更好的方向发展。
如何实施这一习惯: 成为导师,撰写信息丰富的博客文章,加入数据科学论坛并帮助解答问题,开设 Youtube 频道分享你的经验,参加 Kaggle 比赛和黑客马拉松,或创建课程帮助未来的数据科学家学习他们需要的技能,以进入这一行业。
重构是清理你的代码而不改变其原始功能的过程。虽然重构是软件开发过程中出于必要而产生的,但对于数据科学家来说,重构也是一个有用的习惯。
我在重构时的座右铭是 “少即是多”。
我发现,当我最初编写代码解决数据科学问题时,我通常会抛弃良好的编码实践,转而编写能在需要时工作的代码。换句话说,经常会出现大量的“意大利面条”代码。然后,在我的解决方案工作后,我会回过头来清理我的代码。
如何实施这个习惯: 查看旧代码,问自己是否可以更高效地编写相同的代码。如果可以,花时间了解最佳编码实践,并寻找缩短、优化和澄清代码的方法。查看这篇概述代码重构最佳实践的精彩文章:
代码重构是在 DevOps 软件开发方法中使用的一个过程,涉及编辑和清理…
市面上有许多提高生产力的 IDE 扩展,令人惊讶的是,有些人还没有选择优化他们的工作流程。
这种习惯对每个人来说都是独特的,它实际上取决于哪些工具、工作空间和工作流程使你成为最有效率的数据科学家。
如何实施这个习惯: 每年(或更频繁,如果这样对你更有效),评估你的整体有效性和效率,确定你可以改进的地方。这可能意味着早上第一件事是处理你的机器学习算法,或者坐在一个运动球上而不是椅子上,或者给你的 IDE 添加一个新的扩展,以便为你检查代码。尝试不同的工作空间、工具和工作流程,直到你达到最佳状态。
从我所看到的,数据科学是 75%理解业务问题和 25%编写模型来解决这些问题。
编程、算法和数学是简单的部分。理解如何实施它们以解决特定的业务问题则不那么简单。通过花更多时间理解业务问题和目标,其余的过程将更加顺利。
要理解你所在行业面临的问题,你需要进行一些调查,以收集支持你解决问题的背景信息。例如,你需要了解某个业务的客户需求是什么,或者一家工程公司试图实现的具体目标是什么。
如何实施这个习惯: 花些时间研究你工作的具体公司以及它所在的行业。写一份备忘单,包含公司的主要目标和它可能面临的行业特定问题。别忘了包括你可能想用来解决业务问题的算法或未来可能有用的机器学习模型的想法。每当你发现有用的信息时,都要更新这份备忘单,不久你就会拥有一个关于行业相关信息的宝藏。
不,不是生活中的事。在你的代码和工作流程中。
人们常说,最优秀的数据科学家使用最少的代码、最少的数据和最简单的算法来完成任务。
尽管我不希望你立即将极简主义与稀缺性联系起来。当有人讨论代码中的极简主义重要性时,常常会导致人们尝试开发仅用几行代码的极端解决方案。停止这种做法。是的,这很令人印象深刻,但这真的就是你时间的最佳利用吗?
相反,一旦你对数据科学概念感到熟悉,开始寻找优化代码的方法,使其简洁、干净且简短。使用简单的算法来完成任务,不要忘记编写可重用的函数以去除冗余。
如何实施这一习惯: 随着你作为数据科学家的成长,开始推动自己编写更高效的解决方案,减少代码量,使用更简单的算法和模型来完成工作。学会在不降低代码有效性的情况下缩短代码,并留下大量注释以解释精简版本的代码如何工作。
我承认,在第一次编写数据分析代码时,我严重忽视函数。混乱的代码填满了我的 IDE,我在不同的分析中挣扎。如果你查看我的代码,可能会觉得它已经完全不可救药,并主动提议把它带到谷仓后面去结束它的痛苦。
一旦我设法拼凑出一个还算不错的结果,我就会回去尝试修复类似于严重事故的代码。通过将我的代码打包成函数,我迅速去除了不必要的复杂性和冗余。如果这是我对代码所做的唯一改动,那我已经将代码简化到一个可以重新审视解决方案并理解如何到达这一点的程度。
如何实施这一习惯: 在编写代码时不要忘记函数的重要性。常说最优秀的开发人员是懒惰的开发人员,因为他们知道如何创建不需要太多工作量的解决方案。在编写解决方案之后,回过头来将冗余或复杂的代码打包成函数,以帮助组织和简化你的代码。
测试驱动开发(TDD)是一种软件开发原则,专注于编写不断改进且经常测试的代码。TDD 运行在“红灯、绿灯、重构”系统上,鼓励开发人员建立测试套件,编写实现代码,然后优化代码库。
TDD 可以由数据科学家成功实施,用于生成分析管道,开发概念验证,处理数据子集,并确保在开发过程中功能代码不会被破坏。
如何养成这个习惯: 研究测试驱动开发,确定这一技术是否能为你的工作流程增添价值。TDD 并不是解决所有问题的完美答案,但如果谨慎实施,它可以是有用的。查看这篇文章,它提供了对 TDD 的极佳描述,并提供了如何将其应用于数据科学项目的示例:
数据科学家和机器学习工程师应从软件开发人员那里学习的另一件事
是否曾经发起拉取请求,然后你的电脑充满了错误信息和各种问题?我有过。那真是糟糕透了。
在你想揍那个做出如此大提交的人时,深呼吸,记住这个人显然没有花时间养成好的习惯。
团队软件开发的黄金法则是什么?进行小而频繁的提交。
如何养成这个习惯: 养成经常提交代码更改的习惯,并同样定期发起拉取请求以获取最新代码。你或其他人所做的每个更改都可能破坏整个项目,因此重要的是要进行易于恢复的小更改,这些更改通常只影响项目的一部分或层级。
根据你问的对象,行业内数据科学家的数量可能要么太多,要么太少。
不管行业是否变得饱和或干旱,你将与大量高素质且常常过于资深的候选人竞争一个职位。这意味着在申请工作的前期,你需要已经养成自我提升的习惯。如今,大家都热衷于提升技能,这是有原因的。数据科学家也不应例外。
如何养成这个习惯: 制定技能清单,查看你如何满足雇主在招聘广告中列出的要求。你是一个能高效使用 Keras、NumPy、Pandas、PyTorch、TensorFlow、Matplotlib、Seaborn 和 Plotly 等相关库的 Python 专家吗?你能写一份详细说明你最新发现以及这些发现如何使公司效率提高 25%的备忘录吗?你是否能舒适地与团队合作完成项目?识别任何短板,并找到一些好的在线课程或资源来提升你的技能。
在高效能人士的七个习惯中,斯蒂芬·柯维讨论了“从终点开始”的原则。
为了有效地将其与数据科学项目联系起来,你需要在项目规划阶段问自己项目的期望结果是什么。这将帮助你塑造项目路径,并为你提供一个实现最终目标的成果路线图。除此之外,确定项目结果还将让你了解整个项目的可行性和可持续性。
如何实施这个习惯: 在每个项目开始时进行规划会议,明确你希望在开发周期结束时实现的目标。确定你将尝试解决的问题或收集的证据。然后,你可以开始回答将塑造项目里程碑和成果的可行性和可持续性问题。从那里开始,你可以在明确的计划指导下开始编写代码和机器学习模型,直到项目完成。
在尝试准备一场关于自旋-V2 粒子如何遵循费米-狄拉克统计的入门讲座失败后,理查德·费曼 曾著名地说:“我无法将其简化到入门水平。这意味着我们真的不理解它。”被称为“伟大的解释者”,费曼留下了一个数据科学家只能希望模仿的遗产。
数据科学,利用数据讲述引人入胜的故事的艺术,只有当讲述者理解他们所讲述的故事时才会成功。换句话说,你的任务是理解,以便你能被理解。及早养成理解你想要完成的目标的习惯,以便你能与他人分享并达到合理的理解水平,将使你成为房间里最有效的数据科学家。
如何实施这个习惯: 使用 费曼技巧 来深入理解你正在尝试发现的概念和你正在解决的问题。这种方法与数据科学过程中的数据分析及向非数据科学利益相关者解释结果的过程非常契合。简而言之,你将对主题的解释精炼到可以用简单的非术语语言进行解释,使任何人都能理解。
在一个由硕士和博士主导的领域中,研究论文通常用于分享行业新闻和见解。
研究论文 是了解他人如何解决问题、拓宽视野以及跟上最新趋势的有效方式。
如何实施这个习惯: 每周挑选一到两篇与你当前工作相关或你有兴趣追踪或学习的技术的研究论文阅读。尝试每周抽时间进行文献回顾,使其成为优先事项。熟悉 三遍阅读法,帮助你快速获取相关信息。为了真正巩固对论文的理解,尝试将你从阅读中学到的东西应用到个人项目中,或与工作同事分享你学到的内容。
数据科学的世界正在快速变化,从使用的技术到达到的目标都在不断演变。不要成为那个固守旧有方法、不愿改变的数据科学家。
开放改变不仅迫使你持续提升自己的专业能力,还能使你在快速变化的行业中保持相关性,否则一旦落后就会被淘汰。
如何实施这个习惯: 每当有新技术或新实践成为新闻时,尝试使用一下,看看这些新技术或实践能带来什么。即使你只是阅读文档,也能让自己了解行业的变化趋势。此外,你可以将对技术的见解带到公司,帮助他们应对技术变化和进步。在办公室中保持敏锐的触觉可以帮助你走在前沿,同时也能帮助你指导团队和公司找到更好、更高效的解决方案。
在你数据科学职业生涯的任何阶段,养成良好的习惯可以使你充分发挥潜力,成为团队中有效的成员,对他们试图解决的任何问题产生巨大影响。
现在是为未来成功做好准备的最佳时机。
简介:Madison Hunter 是一名地球科学本科生,软件开发毕业生。Madison 发表关于数据科学、环境和 STEM 的随笔。
原文。经授权转载。
相关:
-
如何在没有工作经验的情况下获得你的第一份数据科学工作
-
如何成功成为一名自由职业数据科学家
-
阅读论文如何帮助你成为更有效的数据科学家