It’s been an interesting month with my daughter, Amber. We have been engaged in an interesting little “tug of war” over the past several weeks. I am realizing that I have to be very careful here, because enthusiasm on the part of the “teacher” can either inspire a student, or completely demoralize them and turn them off.

We’ve agreed to a simple goal, and for now, that goal is the Codecademy streak. I’ve told her I don’t care if she only does one lesson on a given day, as long as she at least does that one lesson. Of course, I’d be really happy if she did two, or three, or ten, or heck, even do fifty like I did about seven months ago. Yes, I spent a free Saturday and completely pounded through the entire jQuery course. No, I’m not convinced that was the best use of my time, considering how much I still have to look up to write anything today.

What I realized from that particular experience was that my own enthusiasm to “push through” caused me to take shortcuts. I violated what I jokingly refer to as “The First Zed Commandment” which is “thou shalt not copy and paste“. Those who have read any of Zed Shaw’s books on “Learn [Language] The Hard Way” know that he espouses this pretty heavily, and I do too… most of the time. However, my own impatience often gets the better of me, and yes, I find myself cheating and copying and pasting. If I were looking to get in physical shape for a run, would I get the same benefits if I agreed to run 5K each day, but when I got impatient, I hopped on my bike and rode the rest of the way? Would I get the same training benefit? Would I get the same physical conditioning? The answer is, of course, no. Writing code is the same way.

At this stage, I may wish my daughter were moving faster, but if the net result is that she scores a lot of points, gets a lot of badges, but doesn’t remember fundamental syntax or hasn’t put the time in to recognize where she has made a mistake, what am I really teaching her? This has prompted me to, instead, ask her what time she wants to sit down with me, her with her computer, me with mine, and we work either face to face or side by side. This way, she sees what I am doing, and how I’m doing it. It may encourage her to do likewise, or she may say “hey, that looks odd, what are you doing?” Either way, it will start a conversation, and then we can discuss the fundamental details. I have to realize that it’s better for her to pull from me rather than me push to her.

So fundamentally simple, so easy to say, yet so hard to do when “Dad Brain” wants to carry her along as fast as he can. On the positive side, this is also allowing me to step back and make sure I really understand what I think I understand, with the often neat realization that, hey, I really didn’t know that as well as I thought I did. Consider this my solid recommendation to anyone wanting to learn how to code… teach your kid how to code. If you don’t have one, see if you can volunteer at a school’s computer club and offer your time. What I’m realizing anew is that the example of working through problems for them is a pretty amazing teacher in its own right.