The Traveling Salesperson Problem (Jupyter Notebook) — This is an incredibly well-presented exploration of the Traveling Salesperson Problem and algorithms for solving it well beyond basic brute-force. It is in the form of a Jupyter notebook, which combines text explanations with live code and program output (similar to Mathematica, for those familiar) in a way that is perfect for this kind of document. Read at least the first few pages, and try to find time to really work through it, as you can learn a lot from it.