当前位置: 首页 > 科技观察

数据科学和人工智能从业者如何提高编程技能_0

时间:2023-03-20 16:11:16 科技观察

大数据文摘来源:中编:河马我讨厌编程!这是我七年前实习时对同行说的话。真的。我不想像公交车上那些面无表情的人一样,成为一个没有感情的编程机器。今天,我拥有2个编程相关专业的研究生学位,曾在5家不同的公司担任Web开发人员,目前担任计算机视觉工程师。我喜欢编程!这就是我告诉每个问我为什么对技术如此热情的人。我对编程的热爱源于这样一种认识,即使用代码实现的应用程序确实在当今技术驱动的社会中提供了机会。本文描述了开发和提高我的编程技能的方法。您可以使用以下5种策略来提高您的编程技能。算法实践算法往往会吓跑很多机器学习从业者,我也不例外。机器学习领域的兴起使得传统的通过启发式算法检测模式的方法变得不再必要,我们将特征检测留给了神经网络。尽管如此,算法仍然在软件和计算中占有一席之地,并且当然也是机器学习不可或缺的一部分。算法练习是提高编程技能的最佳工具之一。学习算法除了在提高代码的内存效率方面有明显的好处外,学习算法的另一个好处是可以很好地培养解决问题的思维方式。使用您选择的编程语言实施探索各种数据结构和数据修改方法的算法。了解如何使用数据对象、方法和其他有用的函数提高编程效率。数据科学家经常使用数据挖掘和网络爬虫算法。对算法和数据结构的扎实理解有助于生成高效代码,在实践中执行速度更快,进一步缩短项目交付时间。不同的算法有不同的复杂程度,这里简单介绍一下算法,供大家热身。相关链接可以在这里找到:https://towardsdatascience.com/algorithms-for-data-scientists-insertion-sort-6caa69f906b3个人经历:作为一名移动计算机视觉工程师(MobileComputerVisionEngineer),我使用了很多深度学习模型对于常见的计算机视觉(CV)任务,例如姿势评估、目标检测等。尽管PyTorch、TensorFlow和Keras等平台减轻了模型实现的复杂性,但我发现有必要针对特定??用例实现自定义算法。例如,创建基于余弦相似度的姿势匹配算法或高效遍历作为机器学习模型输出的数据结构。为了保证自己对各种算法的风险有一个很好的了解,我买了一本很好的教材——《Introduction to Algorithm(第三版)》。不过,这本教材对初学者可能不是特别友好。在这种情况下,特别推荐使用HackerRank等平台。TechnicalBooks读书让我有种回到学校的感觉,没有什么比得上语言生动、内容详尽的书了。在我职业生涯的早期,我以为我最终会停止观看YouTube教程或购买编程书籍,因为我已经掌握了“忍者级”编程技能。然而,多年来,我意识到无论我去哪里,我都可以学到更多关于编程语言的知识。尽管我喜欢通过YouTube编程教程学习,但没有什么可以替代经典编程技术书籍中丰富而简洁的知识。例如,Python是一种面向数据科学家的易于学习的标准编程语言。在学习了几周的语法、数据结构和常用函数之后,很容易实现和运行自定义Python脚本。您可以通过视频进一步学习Python的中级技能。然而,Python还有很多值得探索的地方,所有这些都可以提高您的编程技能。我学习有关Python语言的更深入知识的方法之一是通过技术书籍,更具体地说是《Fluent Python》。本书不适合初学者使用,主要面向中级以上的程序员提高编程水平。总之,技术书籍可以通过对编程语言的简单明了的介绍来提高数据科学家的编程水平,也可以通过对编程语言的深入讲解来提高数据科学家已有的编程技能。阅读其他开发者的代码最近,我尝试实现深度学习卷积神经网络InceptionNetwork。虽然我已经有使用Python和TensorFlow库实现的方法,但我很好奇其他机器学习从业者是如何实现它们的。我探索了几个GitHub存储库,研究了其他开发人员的代码,无疑学会了改进现有解决方案和更好地应用我现有编程技能的方法。有大量公共GitHub存储库可供研究和学习。您无需在Google或Facebook等科技公司工作即可向其开发人员学习。只需浏览由其工程师开发的项目的公共存储库。对于数据科学家来说,这可能意味着探索代码存储库,例如最近发布的Detectron2或其他开源机器学习工具。在工作场所的内部开发团队中进行代码审查也是一种合适的学习方法。通过了解其他开发人员实现的基本原理和思考,您可以间接扩展自己的视野和编程知识。学习不同的编程语言致力于编程语言的多样性是提高编程技能的唯一途径。程序员使用代码来解决问题,多种编程语言的知识扩展了解决问题的可用工具。掌握Python可能有助于你学习数据科学核心的实际应用。但在专业和实际环境中,软件开发包含不同的平台,每个平台都有特定的语言来访问和实现功能。一个专业的机器学习从业者可能会在以下方法中应用不同的编程语言:JavaScript从互联网上抓取数据SQL修改和查询数据库Python实现算法和机器学习模型Swift/Kotlin/Java集成机器学习模型的移动设备应用程序其他工具和方法一旦您精通一种编程语言,就可以更容易地学习一种新的编程语言。如果您了解通用的软件开发范例,如面向对象编程、函数式编程等,您将更容易上手。软件开发范例的知识适用于各种编程语言。遵循软件开发的原则,拥抱简单,避免重复,提高可读性。这些是我多年编程积累的经验。它们听起来很简单,但大多数开发人员并不遵循它们,有时我自己也会忘记这些原则。因此,在软件工程行业中,一些准则被反复提倡和强制执行,以确保开发人员能够进行简洁有效的软件开发。有些被列为其中的一部分。(1)KISS原则KeepItSimpleStupid(KISS)在开发软件时强调简单的概念。问题的解决不一定要复杂,在软件开发的设计和实现阶段采用简单的原则可以保证代码易于理解和维护。是的,技术人员往往喜欢炫耀,但为了可读性,保持简单——美剧你不是MR。可扩展、可维护和高效程序的原则。要了解有关SOLID中所涵盖原则的使用和实践的更多信息,请查看KaterinaTrajchevska的视频。相关链接:https://www.youtube.com/watch?v=rtmFCcjEgEw&ab_channel=LaraconEU单一责任原则(Singleresponsibilityprinciple)开闭原则(Open-Closedprinciple)里氏代换原则(LiskovSubstitutionprinciple)接口分离原则(接口隔离原则)依赖倒置原则(Dependencyinversionprinciple)(3)DRY原则不要重复自己(Don'tRepeatYourself)。在编写程序时,编写执行已经存在的功能的代码会浪费您的开发时间。避免重复的一个好习惯是使用项目文件夹中的实用程序文件。实用程序文件包含在源代码中经常执行的常见任务。特别提及(1)个人项目从事个人项目可以向数字机器学习从业者介绍新的领域、库、平台、框架和编程语言。从事个人项目以提高编程技能的主要优势是开发软件产品时会遇到各种问题。编程解决的每一个问题都会增加你的整体技能水平。(2)分享你的经验教别人如何用你擅长的语言编程是提高你的编程技能和展示你的专业知识的一种行之有效的方法。您可以通过多种方式分享体验,包括YouTube视频、在线课程或我最喜欢的Medium博客文章。结论提高编程技能是一个永无止境的旅程。您可以随时学习或改进编程。尝试享受学习过程。有时情况真的很棘手,StackOverflow可能无法解决所有问题,但请记住,为了最终掌握它,磨练技能所花费的每一分努力都是必要的。相关报道:https://towardsdatascience.com/how-to-improve-programming-skills-for-data-scientists-and-machine-learning-practitioners-d865d8aadab1【本文为专栏组织大数据文摘原文翻译,微信《大数据文摘(id:BigDataDigest)》]点此查看更多本作者好文