Category: Learning

Start Me Up: Learning to Program

My daughter told me on her own out of the blue that she wants to learn how to program. As a life-long computer nerd, this development made me elated! I have been hoping that one of my progeny would express an interest in computing but I didn’t want to push them there. I wanted the interest to be self-motivated.

I remember quite well my first experience with programming. It involved typing a bunch of code in BASIC from the back of Family Computing Magazine and Compute! so that I could have a free game. When I first started I had no idea what it was I was typing. Just that I would get a game when I was done.

It was this visceral link that fueled my passion for programming. Type something in get a reward, see the results. I wanted to give a similar experience to my daughter while also letting me to join on the journey of wonder with her. After careful thought and consideration, I decided that the Arduino would provide a perfect environment to learn not just programming but also electronics.

While I’m waiting for the Arduino starter kit that I ordered to be delivered (due to arrive on Monday), I decided to look through the book I selected as a tutorial. I noticed that it spent a lot of time on the basics of programming (which I don’t need) while also giving good coverage to electronics. But what I really wanted was a “do this, see results” tutorial that was less pedagogical and more like mimicry.

Think of how we learn as babies/toddlers. We learn to walk by copying the big people around us who always stand upright. We learn to talk by reproducing the sounds these people keep making around us. No one tells us the mechanics of walking, we learn through trial and error. When we start talking, we don’t understand grammar, we just keep seeing the big lady call herself mama and that’s an easy sound to reproduce so we start saying it. And repeating it when she gets excited that we said it.

Again it’s very visceral. I do something and get a result. I try to take a step, encouraged by my mother and manage to take a few before losing balance and falling on my rump. I type in code on my computer and get a working program. I don’t necessarily understand algorithms or processors or memory allocation, functions or any of the deeper why’s or how’s to programming. I just know that following someone’s instructions gets me a free game to play.

It’s the feedback of success for our guided effort that encourages us to continue learning more. I think that a young me having to sit through a course on computer architecture and the theory of computing before I could use a computer would have lost interest and I would have missed my calling. (Okay I lie, I read the DOS manual in my spare time when my family first got our computer).

I don’t want to burden my daughter with the theory of electronics and computing. I want to give her that guided effort/success feedback loop that I had as a child so that I can get her excited about her success and ready to keep learning.

When we start doing something, it’s important to get that positive result as soon as possible. Whether it’s learning to walk, program, or play an instrument, we all like to have some feedback as to whether we’re on the right track.