(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.)