I read this book in a combination of the paperback and the Kindle version as purchase of one brings with it the option of downloading the other.
Introduction to Programming.
I purchased this book, at least in part, as I am interested in making sure that as time goes on my daughter begins to learn more about computers than just the fact that it is possible to watch YouTube videos on them. While this is a project that I feel strongly about, I am being careful to not push any agenda.
The fact that such a book is available is an indication of the times that we live in. I grew up in the ZX Spectrum era, learning BASIC in lessons at school. But a ZX Spectrum was a simple machine, with limited capabilities. Even the cheapest, simplest modern PC eclipses the original home computers in what they can do. But I think it is important to maintain a perspective on the functionality of modern computers. Programs now are huge projects, often written by an army of coders. Computers are still machines that are controlled by the programs that people write for them. Therefore having even simple skills to know how to program computers opens up a plethora of possibilities, which will help modify thought processes, teach critical thinking skills and prepare children for a technologically complex future. In this much this book has similar aims to the Raspberry Pi. It aims to allow users of computers to see that they don’t have to be passive, they can interact, and they can make the computer do what they want it to.
These then are the aims of this book, and in order to guide the process this book is actually the product of a father and son team, where the father is an experienced programmer and the son is a beginner intent on wrestling control of the machine. This central conceit of the book works to make the book a good source of information, but it does sometimes lead to cutesy writing which is less than ideal.
To provide a suitable springboard the book looks at programming using the Python language. This is a popular programming language for those looking to learn, and it is easy to see why. Programs written in Python tend to be easy to understand, reading like a stilted English language description of what you are trying to achieve.
The only point I would raise about the wisdom of choosing Python is that the language is in something of a state of flux. Most of the code currently ‘out there’ is Python v. 2, but Python v. 3 is growing in popularity, and there are some quite major changes in the two versions, apparently intended to force reappraisal of some of the code base. The book does address these issues and even highlights where they may cause problems, but it seems an awkward thing for the beginner to have to deal with.
And does it work? Well I haven’t tried it with my daughter yet. She is only 7 years old, and I think it is probably a little early to expect programming to fire her imagination. And when she is ready to make her first foray into coding I’ll start with Scratch, before the rather more abstract Python. But this book will be one I reach for when we are ready to make that transition.