This holiday weekend, I turned in half the chapters on my new book. Guess that means I can start talking about it, huh?
My new book was inspired by a conversation I’ve had with several parents while running Young Coders. This exchange happened every time I ran a class, and sometimes, has happened several times during one session.
“I tried to teach my kid how to code before, but it didn’t seem to stick. I hope this class gets them interested!”
“How did you try to teach them?”
The parents seemed to fall into two groups: Those that tossed a book at the kids (“That’s how I learned!”) and those that tried to show the kid how to code (“I taught them to use the toilet and ride a bike, and I train people at work. How different could this be?’). Neither approach seemed to work very well unless the child was already deeply interested in coding.
Some might say that the only kid you can get interested in coding is one that already seems predestined to be a hacker, but my experience teaching says otherwise. One of my most disinterested students was a teen girl who was only there to make sure her brother behaved. At the end of the class, she was one of my best new coders.
So, what was missing? Why were books and parents falling flat, but classes doing so well?
The answer was surprisingly simple: The parents didn’t know how to teach.
How do you teach?
Teaching is not a simple act. Your mind is in constant motion, thinking about what you need to teach, what the student knows, and what you need to lay out to bridge those two things. You also have to keep an eye on how the student is doing. Are they tired? Overloaded? Distracted? Confused? Stuck? Do you need to go back and review a concept, or do they just need to get up and walk around a bit? Oh, wait, have we fed them? Could they just be hungry?
You also have to take the knowledge in your head and rip it apart, breaking it into chunks that can be easily taken in and reassembled. You have to figure out which chunks rely on other chunks, and try to find a good place to start. If you think this is a skill we all have, go ask a co-worker to explain the most complex part of your stack to a new hire. How many times is the new hire confused because the old hand left out something vital?
So what was wrong with just handing the kid a book? When I asked the kids (my son included) it usually came down to getting stuck. They’d come to a place where they got a minor bug, or where a piece of jargon wasn’t explained, and they’d shut down.
I’ve seen this happen in classrooms, but with a difference: There, we had someone at the ready to jump in and fix the mistake. Once the mistake was fixed (or the concept explained again), the student would dive back in.
So, how could I help? I’m teaching as many classes as I can. Could I write a book that could help?
Teaching the teacher and the student
I realized that we needed a book written for two audiences: students and mentors. The students needed to be taught how to code in such a way that they never got overwhelmed and had ample opportunities to practice the skills they gained. The mentors needed to be taught how to teach, helping them strike a balance between jumping in and leaving the student to fend for themselves.
After pitching it to my editor at O’Reilly, we also decided to add videos to help reinforce concepts and to help students review when needed. Lessons about Python are broken up by projects that use all the skills the student has acquired by that point. Some are, of course, games, while others are more practical (like a to-do list manager).
The ages I’m writing this for are somewhat fluid. It’s written at a 6th grade level (which is where most tech books should be written, in my opinion). A middle schooler would probably be able to make it through most of the chapters with the mentor off to the side, providing occasional encouragement. A precocious third-grader could probably make it through most of the book with a mentor providing support during the coding bits.
Hey, I know someone who would enjoy this!
Good! I’ll need tech readers soon! The final chapters are due at the end of November, with the tech review starting a bit before that. This might make an interesting winter break project!
Oh, and I’m totally looking for a better title for this thing. If you have any ideas on that front, ping me as well.