Hello World! – A Friendly Intro to Programming…
Many months ago, Manning Publications contacted me and asked if I’d review this book. I had seen one of my fellow local user group members with it, and it intrigued me, so I agreed to do it. Manning sent me a PDF of Hello World! Computer Programming for Kids and Other Beginners (ISBN 1933988495), which I promptly read but have forgotten to post about here. My apologies on delaying my review on such a great book…
Father and Son Take on Programming
This book was written by a father/son team – the son is 10 years old. When they first embarked on this journey, he was 6 years old. And he wasn’t just a kid learning a new programming language – Carter had significant input in the book content. Cartoons with speech bubbles, amongst other parts, were written by Carter.
They wanted to gear it for beginners at any age, including kids. Rather than convincing “why” to learn programming, they assume that if you picked up the book, you’re obviously interested in learning programming.
What I love most about this book is that it offers a kid’s perspective on programming. I’ve found the younger perspectives of programming to make it seem less intimidating and more fun, and this book and Carter’s perspective both do that.
Presenting the Concepts
I really like the order they presented concepts. If I had to teach an intro to programming (in general) class, this would be the approach I’d take as well. It starts out with the basics of variables and operators. From there, it moves on to GUIs, decisions, loops, comments, and then graduates from there.
The object-oriented side of Python doesn’t get introduced until later, and I like this because it reminds me of my data structures classes in college when people who thought they understood the basics would get totally lost. Object-oriented notation and development in general was a tough concept that really made or broken a person when it came to our data structures classes. Those who didn’t get it did what they could to get through the class and then avoiding programming like the plague. I think this was because OO concepts in general were explained more academically rather than in terms that most people could relate to. Carter and Warren use a simple example of a ball to explain objects, attributes, and methods – had we had something like that in college, there may have been a few more programmers from that program. After objects, they get into things like modules, graphics, collision detection, sound, and randomness.
Each chapter addresses concepts that we as developers should be familiar with and explains them in terms that a beginner can understand. Rather than being challenged to look at a language through a textbook with syntactic and plain examples, I find this book offering fun examples for learning basic programming concepts and even the advanced concepts.
Overall, I really enjoyed the book. I found the examples to be easy to relate to and the overall text to be both understandable and in an order to make it easy for a beginner to work through. As I mention
ed earlier, I read it right away. I got caught up in event planning, speaking engagements, and life in general that I forgot to write this review. I liked this book so much that I purchased a dead-tree version for my bookshelf and to take with me and promote at my Python talks. I highly recommend this book for beginners of all ages.
More on Father and Son
Want to see and hear more about Warren and Carter Sande? I found some links that you may enjoy.
You can see them on the Young Programmers Podcast, where Carter presents PythonCard: http://young-programmers.blogspot.com/2009/11/carter-sande-presents-pythoncard.html
They appeared on Hanselminutes #194, talking about their book writing experience, Carter’s programming experience, and other things: http://www.tr.im/RM6l