Books for Learning Software Engineering
Introduction to Algorithms
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, & Clifford Stein
This was the same book I used in my algorithms class in school—maybe the instructors were biased as Cormen was chair of our Computer Science department at the time. The coursework was grueling, but I had never felt my brain learning and changing so rapidly as I did during my algorithms class.
The book covers a broad range of algorithms in depth while making them easy to learn and understand. There are over 100 exercises for you to go through so that you can learn each system in detail. After you finish this book, you’ll have a solid understanding of the majority of the algorithms used by software engineering teams around the world to solve everything from routing to search.