Learn Python with Tests
For teaching some of my friends some basic programming with python, I started out with Invent with Python. However, I found it didn't teach some software development skills such as testing.
So I changed the curriculum and focused on having tests to showcase how to do simple things and to test tictactoe.
I'm now trying to add some simple packaging and types via mypy as an example of what I think are best practices.