“Which book do you recommend for learning programming/Python?” or The Problem with Learning Coding f
Books are great. Non-fiction books can be brilliant at learning new stuff, ideas, philosophies, facts.
But can we learn everything from books? Are some subjects ill-suited to be learnt by reading a book?
Learning to play the piano
Let me start with a field I do not know much about: learning a musical instrument. I learnt a bit of piano when I was a child although I was never too good at it. That’s my only limited experience with learning music. But what I do know is that no matter how many brilliant books one can read, they will never become a musician just from reading books. Learning music requires something else: lots and lots of practice.
Moving on to coding…
Learning how to program is similar in many ways. Of course books can communicate how programming works, explain how the various tools are used and why, provide plenty of examples of code and more.
But a key aspect of learning programming cannot be extracted from the ink written on a page (of the digital equivalent if reading on a Kindle or other screen)
I am not referring to practising as such. Yes, that is extremely important and I have written about this in a previous blog post.
The key element to truly learning programming concepts is exploration. Having a starting point and then using it to explore and experiment, make errors, try to fix them, make more errors, try to fix them again, and so on.
How does a child go through a book teaching coding?
Here’s what most children, teenagers (and quite a few adults too) will do:
They will read some of the basic stuff to get started
They will then look at the code and copy it in to their computer. As long as they have copied it in correctly, the code will work and the child is thrilled that they have “written a program”
This process is depriving the student of that all-important exploration and experimentation stage which is so important to the learning and understanding.
This is very difficult to avoid with books as books have to have the full code available somewhere. As adults we may be able to discipline ourselves and not look at the finished code while we try to solve the problem ourselves but children will find this a lot more difficult to do as they still do not understand that the path is more important than the final destination.
So, are books never useful when learning how to code?
No. Learning the fundamental concepts of programming and the thinking processes required cannot be fully grasped by reading a book. This is especially true for the younger students. However once you have reached a certain level of proficiency and want to explore new and more advanced concepts, then books come in useful. the same applies to someone who can already program but want to learn another language. The key concepts are the same or similar and if a person is already a programmer than they already have the required mindset to think in the right way — learning a new language using a book is perfectly fine (although many would only use such a book as a rough guide to their self-learning).
When it comes to learning how to program, use books with caution, especially for children