A couple weeks ago I gave Eli (now 8) my first programming book, “C By Example” from Que. The original edition I had was from 1992.
From the time I first laid my hands on a computer I was hooked. I devoured giant books like these on MS-DOS, QBasic, C, Pascal, and x86 Assembly language. By the time I was in 8th grade I had written many large programs and was proficient in all of the above languages.
Eli is definitely cut from the same cloth. He first got interested in Kindergarten when each kid has to complete an ‘hour of code’ (from code.org, a great site by the way). He’s extremely curious, much in the same ways I was at his age.
I started showing him a little simple python code, where he could prompt the user a question, check the results, show random text, etc. He’s really excited about it, but I still think the mental concepts are a little out of his reach.
So, for bedtime reading, we’ve been going through this book starting at page 1. It’s pretty entertaining given how outdated the book is (25 years old, gulp!) Computers were so much simpler then. The book really starts with the fundamentals of how a computer works from a low level.
I’m finding that a lot of Computer Science programs don’t even teach low level languages anymore. A typical CS program will start with Java or Python as its initial language. Most schools don’t even teach C unless you are pursuing an EE degree.
While it is great how quickly you can become productive in these languages, something is definitely lost when you don’t learn the fundamentals of how a processor, memory, and disk work. I’ve noticed that many entry level engineers are impatient and just want to ‘make things work’, rather than understanding how things work.