52ky 发表于 2021-8-25 22:51:23

Learning Algorithms: A Programmer’s Guide to Writing Better Code

算法是理解如何编写高效代码的核心。作为软件开发人员的每个人都需要具备有效的算法知识,但如果他们来自编码训练营或 2 年学位,他们可能没有足够详细地介绍算法。仅仅知道证明和引理等术语是不够的;算法只有在实际程序中使用时才会有效。这意味着所有工作的软件专业人员(开发人员、测试人员、维护人员)都需要了解算法的关键实现问题。如果程序员更改算法的哪怕是最细微的部分,都可能导致性能大相径庭。有必要了解出现在不同算法中的各个机制以及所有部分相互作用以实现完整问题解决方案的方式。

程序员需要一种混合方式来学习算法,将在线可视化与书面形式的清晰解释相结合。本书还将在每章末尾包含一些来自练习和问题的 Katacodas。

本书描述了许多创造性地解决计算问题的算法。每种算法至少有一个创新步骤,可以改进问题的普通代码解决方案。算法是最小的——没有任何东西可以删除,也不需要添加任何东西。每个单独的部分对于更大的整体工作都是必要的。解释算法的工作原理就像讲故事一样。


(Algorithms are central to understanding how to write efficient code. Everyone who works as a software developer needs to have an effective and working knowledge of algorithms but if they come from a coding bootcamp or 2 year degree they probably did not cover algorithms in enough detail. It is not enough to just know terminology such as proofs and lemmas; algorithms only become effective when put to use in real programs. This means that all working software professionals (developers, testers, maintainers) need to understand the key implementation concerns of algorithms. If a programmer changes even the slightest part of an algorithm, it could result in wildly different performance. It is necessary to understand both the individual mechanisms that appear across different algorithms as well as the way in which all parts interact together to achieve a full problem solution.

Programmers need a blended-way to learn algorithms, combining online visualizations with clear explanations in written form. This book will also include a number of Katacodas from exercises and questions at the end of every chapter.

This book describes a number of algorithms that creatively solve computational problems. Each algorithm has at least one innovative step that improves over ordinary code solutions to a problem. An algorithm is minimal -- there is nothing you can remove, and you do not need to add anything. Each individual part is necessary for the larger whole to work. Explaining how an algorithm works is like telling a story.)

页: [1]
查看完整版本: Learning Algorithms: A Programmer’s Guide to Writing Better Code