
"Grokking Algorithms is a fully illustrated, friendly guide that teaches you how to apply common algorithms to the practical problems you face every day as a programmer. You'll start with sorting and searching and, as you build up your skills in thinking algorithmically, you'll tackle more complex concerns such as data compression and artificial intelligence. Each carefully presented example includes helpful diagrams and fully annotated code samples in Python."--Publisher's desription.
That said, I personally prefer Introduction to Algorithms (CLRS) for its formal rigor and clear proofs, and Grokking Algorithms for building intuition.
The broader goal of this project is to build a well tested, reference quality set of implementations in C, Python, and Go. That is the next milestone.
A quick Googling pulled up a Linear Programming Using Excel tutorial: https://science.utm.my/procscimath/wp-content/uploads/sites/...
This type of problem was what helped me understand the optimizations. I haven't studied the inner workings of the Simplex method, but it is used in Excel's Solver as well as Apache Commons'.
While it is still computer science oriented, I also like Grokking Algorithms (https://www.manning.com/books/grokking-algorithms). I used it as a source when I was building out some examples when I was teaching Algorithmic analysis and data structures. It does a great job of distilling the problems into a beginner friendly way that will lead you to dig into "what libraries are out there that have implemented this?"
One more thing, if you learn programming. Don't forget to practice, practice, and practice. The book has exercise sections. Please, don't skip it.
https://www.manning.com/books/grokking-algorithms-second-edi...