Learn to Code by Solving Problems is a beginner's book that uses coding-competition challenges to teach you how to write programs in Python.