Grokking Algorithms - 面向 Python 初学者的最佳数据结构和算法书籍
披露:本帖包含附属链接;如果您通过本文提供的不同链接购买产品或服务,我可能会收到报酬。
大家好,我读过很多关于数据结构和算法的书,比如Thomas H. Corman 的《算法导论》和Steve S. Skiena 的《算法设计手册》,所以当我了解到这本书时,我以为这只是另一本关于算法的书,但我错了。
这不仅仅是另一本关于算法的书,而且是 您在算法和数据结构方面读过的最有趣的书之一,特别是对于初学者而言。
它没有涵盖计算机科学中看到的所有数据结构和算法,但无论它涵盖什么,它都做得很好,这对初学者程序员或计算机科学学生来说最重要的。
让我们接受它,数据结构和算法很有趣,但同时它们非常复杂且难以理解,特别是如果没有很好地解释的话,这就是这本书的精彩之处。
它用非常简单的语言解释事物,最重要的是带有上下文,这有助于更好地理解主题。
例如,当 Aditya 在Grokking Algorithms中讨论数组和链表时,他举了一群朋友去看电影如何努力寻找相邻座位的例子,说明了数组由于连续内存需求而面临的问题。
有许多这样有趣且真实的例子,使得算法和数据结构这个复杂的主题变得更容易理解。
您还会欣赏他的简单解释,例如为什么 快速排序比 合并排序更常用 ?这是我以前想过但不明白的事情,这只是一个例子,这本书充满了有关基本主题的示例,例如数组、链表、排序算法、搜索算法、递归等。
如果他的语言和例子还不够的话,书中的美术、绘画和图表一定会吸引你。
本书包含约400张图表,每张都独具特色(例如下方所示)。它们与正文完美契合,帮助你直观地理解算法或数据结构的工作原理。
Aditya 的编程和美术背景确实创造了一种完美的融合,并在《Grokking 算法:程序员图解指南》** 中得以体现,使这本书成为所有程序员和计算机科学专业学生的必读书籍。
披露:如果您使用本文中的链接购买本书或任何课程,我将获得报酬。
我喜欢 Grokking Algorithms 的哪些方面
嗯,说实话,我喜欢整本书,从导言到结尾。这也是过去几年里我少数几本从头到尾读完的书之一,另外两本是叶戈尔·布加延科的《优雅的对象》和鲍勃·马丁叔叔的《整洁架构》 。
无论如何,以下是我喜欢的,事实上,我喜欢 Grokking 算法的列表:
1.语言通俗易懂。
2.有趣的图片有助于形象化地展示算法和数据结构的工作原理。
3. 考虑激发用例,例如当您必须设计一个应用程序来跟踪您的开支时,您需要更定期地添加和删除项目并每月查看一次或两次,您将使用哪种数据结构?
5. 书的大小,是的,它不是太大,所以您更有可能读完它并再次回来。
这些是我喜欢的一些观点,但总的来说,《Grokking Algorithms》是一本非常易读的书,其中有很多精美的图片,这使得这个困难的主题相对容易理解。
但是,如果您更喜欢在线课程等主动学习,那么您可以将本书与Udemy 的数据结构和算法:使用 Java 进行深度探索课程结合起来,该课程涵盖了比 Grokking 算法更多的数据结构并有效地补充了本书。
如何让 Grooking 算法变得更好
与你们许多人的想法相反,这本书肯定不能取代托马斯·科曼 (Thomas H. Cormen) 的《算法导论》等经典书籍,因为它并不全面,也没有涵盖大多数数据结构,如树或 Trie 等。
充其量,这是一本关于数据结构和算法的入门书,它让数据结构和算法这个略显枯燥的话题变得有趣起来。以下是我在这本书中忽略的一些内容:
-
这本书对数据结构的介绍比较少,数据结构是算法的对应部分,因为算法依赖于数据结构,而数据结构的选择会影响算法,如果 Aditya 能提供更多关于基本数据结构的内容,比如二叉树、二叉搜索树、字典树等,那就更好了。
-
虽然本书涵盖了动态规划和贪婪算法,并解释了一些高级算法,如 k-最近邻,但它仍然没有涵盖编码和加密算法、map-reduce等关键算法。
他在最后一章中尝试对接下来的内容进行某种程度的补充,其中他简要概述了主要内容中未涉及的另外 10 种算法。
顺便说一句,如果您想探索本书以外的更多数据结构和算法,我还建议您查看Robert Horvick 编写的《算法和数据结构》,这是 Pluralsight 提供的在线课程。
顺便说一句,您需要 Pluralsight 会员资格才能访问这些书籍,费用约为每月 29 美元或每年 299 美元(实际上,我是在他们每季度左右举办的促销活动中以 199 美元的价格购买的)。
即使您没有会员资格,您也可以利用他们的10 天免费试用免费访问此课程,该试用期可让您访问其所有在线课程 200 小时。
老实说,这本书兑现了它所说的内容,但是一旦你开始喜欢一本书,你就会开始对它抱有更高的期望,希望 Aditya 能够注意到这一点,并且第二版会比第一版更全面一些。
这就是关于《Grokking Algorithms:程序员及其他好奇人士的图解指南》的全部内容。简而言之,正如书名所示,我强烈推荐这本书给程序员、开发人员、软件工程师、学生、计算机科学毕业生以及所有其他好奇的人士。
它读起来很有趣,用通俗易懂的语言讲解复杂的概念,解决问题,并且注重概念而不是实现,这意味着
即使您不每天编写代码,您仍然可以了解特定算法的工作原理以及如何选择特定的数据结构来解决问题。
书中关于数组和链表的章节是我读过的最好的,强烈推荐所有程序员,尤其是刚开始职业生涯的程序员阅读。而且价格不贵,物有所值。
因此,如果您现在只想做一件事,那就去阅读Aditya Bhargava 的《Grokking 算法》,非常感谢您撰写了如此精彩的书籍,这使得这个主题更加有趣和易读。
您可能喜欢的其他编程文章和资源
- 7 门适合初学者的最佳数据结构和算法课程
- 5门学习数据结构和算法的免费课程
- 在 Java 8 时代,Effective Java 还有效吗?
- Uncle Book 的《清洁架构》---评论
- Java 并发实践在 Java 8 时代仍然有效吗?
- 每个程序员都应该读的10本算法书籍
- 5本提升程序员编程技能的书籍
- Java 开发人员应该学习的 10 个工具
- Java 程序员应该学习的 10 件事
感谢您阅读本文。如果您喜欢这本书和我的评论,请与您的朋友和同事分享。如果您有任何问题或反馈,请留言。
文章来源:https://dev.to/javinpaul/grokking-algorithms-best-data-struct-and-algorithms-book-for-beginners-with-python-54cp附言:如果你更喜欢在线课程而不是书籍,或者想要两全其美,那么你也可以在阅读本书的同时,查看《数据结构和算法:深入学习 Java》 。这将帮助你更好地学习这些关键技能。