CodeGym /Java 博客 /随机的 /编码技能升级,第 2 部分。从哪里学习算法
John Squirrels
第 41 级
San Francisco

编码技能升级,第 2 部分。从哪里学习算法

已在 随机的 群组中发布
继续我们关于不属于 CodeGym 课程的其他编程相关主题的系列文章,以及有关您可以在哪里学习它们的链接和建议。今天我们来聊聊算法。 编码技能升级,第 2 部分。从哪里学习算法 - 1

什么是算法

算法本身只不过是解决问题的分步收据。现在编程中使用的大多数算法已经被发现、测试和证明。Java 中的算法是用于对集合执行各种操作的静态方法。如果 Java 程序员使用数据结构来存储和组织数据,则算法用于操作这些结构中的数据。所以这两个主题是相互关联的,了解它们如何协同工作非常重要,可以使您的 Java 编码更有效率。算法可以应用于任何编程语言,通常期望经验丰富的程序员至少了解该主题的基础知识,并知道如何将算法转换为他们正在使用的编程语言的代码。

算法书籍

  1. Narasimha Karumanchi 的 数据结构和算法变得简单。

    算法(和数据结构)初学者最好的教科书之一。《Data Structures And Algorithms Made Easy: Data Structures and Algorithmic Puzzles》是一本为复杂数据结构和算法提供解决方案的书。每个问题都有多种解决方案,本书使用 C/C++ 编写。您可以使用这本书作为准备面试、考试和校园工作的指南。

  2. Aditya Bhargava 的Grokking 算法

    “Grokking Algorithms”是另一本通俗易懂、图文并茂、语气友好的指南,教你如何将常用算法应用于程序员每天面临的实际问题。您将从排序和搜索开始,随着您建立算法思维技能,您将解决更复杂的问题,例如数据压缩和人工智能。每个示例都包含图表和完全注释的 Python 代码示例。

  3. Thomas Cormen解锁的算法

    一本关于算法基础知识的书,适用于想要扩展该主题知识的初学者和编码专业人士,这次是作为麻省理工学院学生的大学教科书编写的。

    “读者将了解什么是计算机算法、如何描述它们以及如何评估它们。他们将发现在计算机中搜索信息的简单方法;将计算机中的信息重新排列成规定顺序的方法(“排序”);如何解决可以在计算机中使用称为“图形”的数学结构建模的基本问题(对于建模道路网络、任务之间的依赖关系和财务关系很有用);如何解决有关字符串(如 DNA 结构)的问题;密码学背后的基本原理;数据压缩基础;甚至还有一些问题,没有人想出如何在合理的时间内在计算机上解决,”该书的作者说。

  4. Java 中的数据结构和算法,作者 Robert Lafore。

    这是一本专门针对 Java 的教科书。除了清晰简单的示例程序外,Robert Lafore 还在书中添加了一个研讨会,作为一个可在 Web 浏览器上执行的小型演示程序。这些程序以图形形式展示了数据结构的外观及其操作方式。

    每章末尾的编程项目建议解决方案均提供给公认教育机构的教师。可以在pearson.com的讲师资源中心找到该教科书的教育补充资料。

  5. 你好世界:在算法时代做人,汉娜·弗莱 (Hannah Fry)。

    Hannah Fry 的“Hello World:Being Human in the Age of Algorithms”是一本相当有趣的书,它从稍微不同的角度看待算法。作者描述了已经在医疗保健、交通、犯罪和商业领域实现重要决策自动化的算法的真正力量和局限性。

算法在线课程

  1. 算法,第一部分第二部分,由普林斯顿大学通过 Coursera 提供。

    普林斯顿的一个非常棒的完全免费课程。它涵盖了每个认真的程序员需要了解的有关算法和数据结构的基本信息,重点是 Java 实现的应用程序和科学性能分析。第一部分涵盖基本数据结构、排序和搜索算法。第二部分侧重于图形和字符串处理算法。课程完成后不提供证书。

  2. 加州大学圣地亚哥分校通过 Coursera 的 数据结构和算法专业化课程。

    加州大学圣地亚哥分校和美国国家研究院高等经济学院提供的另一门著名的算法和数据结构课程。该专业是理论与实践的结合:您将学习解决各种计算问题的算法技术,并将以您选择的编程语言实现大约 100 个算法编码问题。

    “没有任何其他算法在线课程能够为您提供下一次工作面试时可能面临的大量编程挑战。为了让您做好准备,我们投入了 3000 多个小时来设计我们的挑战,以替代您通常在 MOOC 中找到的多项选择题。抱歉,在学习算法时,我们不相信多项选择题......或计算机科学中的任何其他内容!对于您开发和实施的每个算法,我们都设计了多个测试来检查其正确性和运行时间——您将不得不在不知道这些测试是什么的情况下调试您的程序!这听起来可能很难,但我们相信这是真正理解算法如何工作和掌握编程艺术的唯一途径,”该课程的作者说。

  3. 斯坦福大学通过 Coursera 进行的 算法专业化。

    并且这次是斯坦福大学知名大学的第三门公认的免费算法课程。本课程是为至少具有一点编程经验的学习者介绍算法。学习者将通过多种类型的评估练习和掌握算法的基础知识。每周都会有一个多项选择测验来测试您对最重要概念的理解。还有每周的编程作业,您可以在其中使用您选择的编程语言实现讲座中涵盖的算法之一。每门课程都以选择题期末考试结束。

YouTube 频道和播放列表

  1. Abdul Bari 的 算法。

    Abdul Bari 的算法简短讲座列表,Abdul Bari 是一位颇受欢迎的 YouTuber,他以最简单易懂的方式向观众解释复杂的主题。

  2. Java 中的数据结构和算法关于使用 Mosh 频道进行编程。

    “Programming with Mosh”是面向编程初学者的热门主流 YouTube 频道。它有很多很多关于 Java 和其他编程语言的教程,它们结构合理,介绍也很好,包括数据结构和算法的教程。如果您不想读书和支付课程费用,这是熟悉这些主题的好方法。

  3. 麻省理工学院 6.006 算法导论,2011 年秋季,麻省理工学院开放式课程

    MIT OpenCourseWare 是麻省理工学院的一个频道,它有很多很棒的免费视频课程,包括算法课程。整个课程包括 47 个大约一小时的课程。

评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION