People like to recommend the Structure and Interpretation of Computer Programs as a great book to learn software development, but I will point out it has no games that you can type in to your computer so it's objectively inferior to Dave Ahl's "BASIC Computer Games" as a learning tool.