Coding for Beginners, 2nd Ed (In Easy Steps)
Author: Mike McGrath
Publisher: In Easy Steps
Audience: Complete programming beginners
Review: Sue Gee
This book aims to introduce practical modern programming to complete beginners. Can this be done in less than 180 pages?
Thanks to Code.org’s ongoing campaign, coding, or coding as it’s commonly known to make it convenient and trendy, is now firmly on the high school agenda. But that still leaves plenty of non-coders out there, many of whom may be beginning to feel disenfranchised in today’s digital world. This makes a book aimed at complete beginners very welcome. But let’s face it, even if you break it down into “easy steps”, it’s hard to teach complete beginners how to turn their ideas into working code.
All of the Seines In Easy Steps books share certain distinctive characteristics. They are published in color and conform to a fairly rigid template. Content is divided into sections, changing color for easy navigation, each focusing on something to do. Each section has about seven topics, with one or two pages dedicated to each topic and ends with an executive summary that gives a bulleted list of everything covered in the section. The theme pages have large sidebars and you will find many tips distinguished by three icons which correspond to warnings, points to remember and “Hot Tips” intended to “spice up your learning” and here used both for the context and essential information.
You can get a good idea of what you will learn from this book by listing the sections:
- Data backup
- Execution of operations
- to do lists
- Control blocks
- Creation of functions
- Sorting algorithms
- Importing Libraries
- Text management
- Programming objects
- Building Interfaces
- Application development
- Skills transfer
From this list, it is obvious that the book is about “doing”, as opposed to just theory, programming and so initially it has to choose a programming language. The choice made is Python, specifically Python 3.10.4 and readers are guided on how to download and install it in the second topic of the first section by following the steps shown in clear screenshots. Readers are also expected to use IDLE to follow along throughout the book and although you may want a more sophisticated IDE as you go beyond beginner status, there are at least two advantages to this choice – IDLE is provided by download and it has built-in help. More importantly, to follow the steps in the book means you can compare your progress to that shown in the screenshots and program snippets are provided on the book’s website in a zip file with icons in the sidebar of each topic to indicate where you need specific program snippets as you continue.
Once you have Python and IDLE and have seen how to use IDLE’s helper utility, the next topic is “Recording Programs” – but first you create a first program, an archetype of Hello World of course, and after saving it, you find out how to run.
This rapid pace continues. The next topic, Storing Values introduces the idea of a variable, likened to a box. In my opinion, this topic provides an example of how the need to cram everything leads to overhead because it also introduces boolean values. This is followed by a single page on adding comments, which after explaining the use of # to identify comments in Python, explains how IDLE automatically colors your code and how the code listed in the book uses the same color scheme . The last topic in Getting Started is about naming rules and most of the page is devoted to two tables, one a list of all the keywords you can’t use in variable names and the another a very confusing list with examples of names that are disallowed and which ones are. The tip on this page – choose meaningful names – and the warning – that names are case sensitive – are helpful but I thought there should have been another Hot Tip on Python keywords – look for them in the documentation. I had a similar reaction to other long lists in the book.
The Data Storage section begins with input and output on a single page each. Next is a two-page document on type recognition beginning:
There are four essential data types that you can represent when coding a computer program and which can be stored in variables
It goes on to list str, int, float and bool with brief descriptions and examples. This is all fine, but it can feel like it’s been thrown deep into the beginner’s core. After another dense topic on converting from one data type to another, there is a Guessing Game program. Although this includes features that are only demonstrated in more detail later in the book, seeing a program in action is a great way to motivate you to make further progress. The next topic is about fixing errors – covering syntax, runtime and semantic errors – and even if that means making deliberate mistakes, it’s very useful to see how IDLE responds.
The next three sections are fairly straightforward and, aside from the breakneck speed, can be considered a standard introduction to the fundamentals of programming arithmetic and comparison and logical operators, lists and ways to manipulate them, statements and if-loops, and exception-handling – well, that seems a bit overkill.
Although Section 6, on creating your own functions, feels a bit like removing the training wheels, it seems like a logical progression. But then there is a discontinuity with that devoted to sorting algorithms. While this is something you might expect to cover in a typical computer science course here, it seems out of place. Using a sort to explain the idea of an “algorithm” sounds like a good idea – but there are simpler algorithms, ones that don’t even deserve to be called algorithms that would be more useful in this section. I originally had similar reservations about the section on importing libraries, but it actually covers some of the basics like telling time and running timers.
No such reservations with the text handling section, except if it could have been introduced earlier, but then we get to object-oriented programming – in just a dozen pages. This would serve as a great refresher for someone returning to programming after a long enough gap to have forgotten what all the jargon means and in fact the section summary is as good an overview of a page as you could wish, but I still wonder what a complete beginner would do with it
We then come back to two very practical sections, Creating Interfaces, which is done using tkinter and Developing Applications, which describes the processes of creating a “lucky number” generator. For the beginner, these sections are satisfying because they look like “real coding”.
The final section is about skill transfer, and using the guessing game at the beginning of the book, you recreate the program in C, C++, C#, and Java. The section begins by distinguishing between a compiler and an interpreter. It’s a bit like having taken driving lessons and gaining a bit of self-confidence and suddenly being told to go see what’s going on when you look under the hood of the car. This will no doubt suit some readers, but for others it will just be another level of complexity.
I gave this book a rating of 4 because I think a lot of people will find it useful – maybe in combination with another resource like You Tube videos which are a very popular way to get started in programming . Don’t just read it – follow the instructions with the provided code – and when you find it goes too fast, consult the documentation or another book.
For Python book recommendations, see Python books for beginners in our Programmer’s library section.
For more book watch just click.
Book Watch is the I Programmer’s list of new books and is compiled from publishers’ publicity material. It should not be read as a review where we provide an independent assessment. Some, but not all, of Book Watch’s books are eventually revised.
To have new titles included in Book Watch, contact [email protected]
Follow @bookwatchiprog on Twitter or subscribe to the I Programmer’s Books RSS feed for daily Book Watch releases and new reviews.