Originally posted on infoworld.
Whether you’re a beginner, a moderately skilled dev, or an expert, there’s a book in this lineup to expand your Python programming powers
The more popular or more powerful a programming language, the better the odds of finding not only many books about it, but a diversity of books. As Python has soared in popularity, so have the number and variety of the books created to help people learn the language and master its intricacies.
Here are seven of the best books on programming with Python, ranging from beginner’s guides to power-Python proficiency. Whether you’re just starting out, or you’ve been working with Python for some time, there is most likely a book here for you. A few are available in online or PDF editions for free.
Automate the Boring Stuff with Python
Most introductions to programming languages, or to programming in general, are conceptual. They talk about programming in the abstract. Rob Sweigart’s Automate the Boring Stuff with Python talks about programming in the particular: It uses a course in Python as a way to learn how to turn tedious tasks into snappy Python scripts.
Automate is pitched at beginners to Python and computing generally. It opens by getting the reader comfortable with a simple IDE (the “Mu” editor), then steps them through the use of input, flow control, functions, object collections (lists, dictionaries), validating input and pattern matching, and working with files.
The second half of the book is more task- and project-oriented. It covers common automation tasks: working with spreadsheets and text documents, sending emails, manipulating images, and automating GUI interactions.
What makes Automate a valuable beginner’s book is how it rolls in, all along the way, projects that are suited to the current level of lesson — such as a simple (albeit verbose) rock-paper-scissors game to teach flow control, or a Pig Latin generator to teach string manipulation. It also takes the time to map out, again and again, how to translate what we want to do (first this, then this, then this) into what the program does.