With Python QuickStart Guide, veteran computer programmer and software developer Robert Oliver attempts to deliver something very ambitious. He has written a guidebook to the Python programming language that purports to take absolute beginners to the coding world through the fundamental principles and advanced topics necessary for them to achieve enough proficiency to produce their own sophisticated programs. Having spent several weeks reading every chapter—and, more importantly, working through every example and line of Python code in this lengthy volume—I can attest to the fact that the author very nearly succeeds in that audacious quest.
The book is organized into a series of short chapters that are collected into four sections, starting with basic Python operations (e.g., computer setup, data structure and storage, program flow techniques) before proceeding to more involved topics (e.g., functions and classes) and applications (e.g., math coding, internet access, file storage), and finally to advanced concepts (e.g., website development, Git, SQL). This is a logical progression and each concept in every chapter is illustrated with useful examples that give readers the opportunity to get plenty of hands-on experience with the code itself. (In fact, while all this code is listed in the print version of the book, the author has created a companion website from which the Python program files can be downloaded directly, which was quite helpful.) Connecting these concepts are the programs comprising a computer game—ClydeBank Coffee Shop—that is developed progressively throughout the entire volume.
There is so much to recommend for this project, but there are also aspects of the exposition that were less successfully executed. Fortunately, the good far outweighs the bad overall, which makes for a guidebook that should be welcomed addition on many bookshelves. Oliver has a very approachable manner in laying out the myriad topics and his explanations are always accessible and thoughtfully delivered. The examples he creates are generally nicely done and on point, but it would have been beneficial for there to be more end-of-chapter exercises for readers to work thorough on the own as a way of solidifying the understanding of the underlying concepts. (There are only about a half dozen such exercises scattered throughout the book.) Finally, the author’s obvious enthusiasm for coding and program development is apparent everywhere in the text and that passion certainly helped this reader stay motivated.
On the other hand, there are two significant issues that deserve mention as well. First, the concept of Python’s graphing and data plotting capabilities is not addressed anywhere in the guide. Given that data visualization is one of Python’s strengths as a programming language—and one of things that attracts a lot of users to begin with—not covering libraries such as Plotly, Matplotlib, and Seaborn seemed like a major omission for readers who are interested in writing more focused programs than they are in web development or game design. Second, despite my best (and repeated) efforts, I could not get all the code in the book to work properly. In particular, Visual Studio Code, the recommended code editor on which all examples were based, did not always work as described and some of the advanced topics (e.g, web development with Flask, contacting databases, SQLite interfacing) appeared to have missing elements and did not really run at all.
So, while Python QuickStart Guide is an easy book for me to recommend, that recommendation must be at least somewhat tempered for certain potential users. If your goal is to become a serious program developer, this volume provides a good overview of the capabilities of the Python language, the skills you will need to master, and the resources you will have available to you. However, for true beginners with more modest programming ambitions, there are other references that might better serve your coding needs.