Algorithms for Breakfast
The screenshot of a personal Kindle library of Dmitry Vostokov, Algorithms collection, 2018

Algorithms for Breakfast

Not long ago my mornings started with reading philosophy books because I was doing diagnostic analysis and philosophy was a great start of the day. A year ago, things changed and along with that my morning routine: my mornings started with reading books about algorithms. The shift was due to my move to software construction. It requires the knowledge of existing algorithms, algorithm design of the new algorithms, combining the existing algorithms with design patterns, and algorithm analysis. My previous focus on the diagnostic analysis of software postconstruction problems required only proficiency with data structures as a part of reversing and reconstruction. Occasionally, the knowledge of algorithms was required to deal with performance problems. Now the things changed. My projects require knowledge of many existing algorithms. Some advanced projects even require the design of new algorithms. As usual, mastering the subject requires deliberate repetition. I compiled the list of books from my library (classified as related to algorithms) that I read through the past year, currently reading, and plan to read soon[1]:

  • Algorithms Unlocked
  • Real-World Algorithms: A Beginner's Guide
  • Guide to Competitive Programming: Learning and Improving Algorithms Through Contests
  • Introduction to Algorithms, Third Edition
  • Programming Pearls, Second Edition
  • Garbage Collection: Algorithms for Automatic Dynamic Memory Management
  • Advanced Data Structures (by Brass)
  • How to Think About Algorithms
  • Introduction to Recursive Programming
  • The Art of Computer Programming, Volumes 1-4A Boxed Set
  • Algorithmic Puzzles
  • Algorithms and Data Structures: The Basic Toolbox
  • Algorithms and Theory of Computation Handbook, Volume 1: General Concepts and Techniques
  • Algorithms in a Nutshell: A Desktop Quick Reference, Second Edition
  • Algorithms Unplugged
  • The Garbage Collection Handbook: The Art of Automatic Memory Management
  • Structured Parallel Programming: Patterns for Efficient Computation
  • A Common-Sense Guide to Data Structures and Algorithms
  • The Algorithm Design Manual, Second Edition
  • Algorithmic Composition: Paradigms of Automated Music Generation
  • Computational Thinking: A Beginner's Guide to Problem-Solving and Programming
  • The Power of Computational Thinking: Games, Magic and Puzzles to Help You Become A Computational Thinker
  • Think Like a Programmer: An Introduction to Creative Problem Solving
  • Mastering Algorithms with C: Useful Techniques from Sorting to Encryption
  • Once Upon an Algorithm: How Stories Explain Computing
  • Handbook of Data Structures and Applications, Second Edition
  • Data Structures and Algorithm Analysis in C++, Fourth Edition
  • Introduction to Reliable and Secure Distributed Programming, Second Edition
  • Algorithms (by Dasgupta et al.)
  • Algorithmic Mathematics
  • The CS Detective: An Algorithmic Tale of Crime, Conspiracy, and Computation
  • Data Structure Practice: for Collegiate Programming Contests and Education
  • Practical Analysis of Algorithms
  • The Power of Algorithms: Inspiration and Examples in Everyday Life
  • Data Structures and Algorithms with JavaScript: Bringing classic computing approaches to the Web
  • Mathematics and Technology
  • The Second Age of Computer Science: From Algol Genes to Neural Nets
  • Programming Massively Parallel Processors: A Hands-on Approach, Third Edition
  • The Art of Multiprocessor Programming, Revised Edition
  • Synchronization Algorithms and Concurrent Programming
  • Networks, Second Edition
  • Information Theory: A Tutorial Introduction
  • How to Solve It: Modern Heuristics
  • Concrete Mathematics: A Foundation for Computer Science, Second Edition (this one I have in Russian translation)
  • C Interfaces and Implementations: Techniques for Creating Reusable Software
  • Transactional Information Systems: Theory, Algorithms, and the Practice of Concurrency Control and Recovery

I didn’t include more mathematically oriented books, and Data Science, AI and ML titles. These are saved for another post.

Also, I wouldn’t recommend learning algorithms from technical interview preparation guides alone, but such books contain some insights including what you need to highlight to an interviewer[2]:

  • Programming Interviews Exposed: Coding Your Way Through the Interview, Fourth Edition
  • Elements of Programming Interviews: The Insiders' Guide (there are C++, Python, and Java versions)
  • Cracking the Coding Interview, 6th Edition: 189 Programming Questions and Solutions
  • Coding Interviews: Questions, Analysis & Solutions


[1] The links are not included because all the books are available on Amazon either in a hardcopy or Kindle version and can be easily found there. I include authors only if there are several books with the same title.

[2] Meso-problem Solving using Meso-patterns (https://www.dumpanalysis.org/meso-patterns)



要查看或添加评论,请登录

Dmitry Vostokov ????的更多文章

  • Reflections on 2024

    Reflections on 2024

    The significant 2024 achievements include these: Finally actively learned the Rust language (this process will continue…

    1 条评论
  • A Software Engineer Reborn

    A Software Engineer Reborn

    Seven years ago, I put my feet on a software engineering path again after 14 years of technical support when I only…

  • Software Surgery

    Software Surgery

    A colleague recently named me a brain surgeon after solving a series of software problems no one could solve in the…

    4 条评论
  • ChatGPT Review of "Memory Dump Analysis Anthology" by Dmitry Vostokov

    ChatGPT Review of "Memory Dump Analysis Anthology" by Dmitry Vostokov

    Overview "Memory Dump Analysis Anthology" by Dmitry Vostokov is an extensive and highly specialized series dedicated to…

    2 条评论
  • Reflections on 2023

    Reflections on 2023

    I usually write this post on New Year’s Eve, but because this was the year when my System Idle Process had 0% CPU…

    2 条评论
  • Introducing Lov Language

    Introducing Lov Language

    In the past, I paid little attention to traditional performance and system behavior visualizations, for example, for…

    1 条评论
  • Reflections on 2022

    Reflections on 2022

    My previous yearly review was in 2012. Ten years later, I see 2022 as the most productive in the last decade for…

    4 条评论
  • Systematic Software Diagnostics

    Systematic Software Diagnostics

    Systematic Software Diagnostics attempts to unify various disorganized and fragmentary individual software diagnostic…

  • Exercises in Tracing Style

    Exercises in Tracing Style

    Years ago, I bought the book in Russia whose title is “Literature of Formal Constraints: Form and Games from Antiquity…

  • Introducing Methodology and System of Cloud Analysis Patterns (CAPS)

    Introducing Methodology and System of Cloud Analysis Patterns (CAPS)

    We wrote a short post about added complexities of virtualization almost 15 years ago[1] and then about orbifold memory…

社区洞察

其他会员也浏览了