On December 8, 2013, US President Barack Obama "asked every American to give it a shot to learn to code" (watch it here), kicking off the Hour of Code campaign for Computer Science Education Week 2013. "Learning these skills isn't just important for your future, it's important for our country's future," President Obama said.
The message is clear: coding (aka. programming) is an important skill for this Information Age, and many will agree. Some might wonder: there are many "how to program" books, why another one?
A typical how-to-program book will go through the programming concepts, syntax and followed by demonstrations with simple examples. I have read dozens of them (for different programming languages) and taught this way at universities. It was not an effective approach. It is more like a teacher dumping knowledge upon students.
I believe a better way is to engage students in doing carefully selected programming exercises and guiding them solving interesting and useful computer programs. New programming concepts are introduced gradually. I put this into practices by teaching my 12-year old daughter Courtney. This book is the outcome of the journey.