Why I’m Teaching My 7-Year-Old Daughter to Program in Python



There have been a lot of positive events in my life that I can attribute to my dad, but certainly one of the most memorable was the day he brought home our first computer.  It was one of the first IBM PCs and included a monochrome monitor.  There wasn’t even a mouse.  I was probably five years old and remember clearly the sound of it booting up (which took five minutes or so) and the smell of hot circuitry that blew from its vent ports.  I explored on it constantly.  Eventually at the ripe old age of nine, I saved up enough birthday and Christmas money to buy a used IBM PS-2 of my own which I proudly kept on a desk in my room.  This was, of course, perfectly safe for a young man in the early 90's since it was still years before folks in Appalachia knew about the internet. 

So, what on earth does a nine-year-old boy do with a computer without internet?  Well, I had a few games, MS Paint, and an encyclopedia, but I was still curious.  I remember my dad walking in one day and saying “you should learn to program that thing.”  I literally had no idea what he meant.  We found that a programming tool called QBasic came with the operating system on my computer and between the two of us and the installed ‘Help’ feature we were able to output the classic “Hello World” onto the screen.

I was hooked.  I learned everything I could about programming by looking at the backend codes that came as examples with QBasic.  I started amazing my friends with little games and screen savers I would make for my computer or for my TI-83 calculator.  By 7th grade, I was basically the computer technician for my middle school.  As new computers started coming into classrooms, my principal would call me out of class to set them up or repair them.  When I moved on to high school, I got a good recommendation from the teaching staff which landed me an internship at a local NASA facility where I was programming databases for a technical library in the evenings.  Not a bad gig for a 16-year-old kid!  These opportunities continued to snowball into laboratory fellowships in college, co-ops, and eventually landing an awesome job.

So this brings me to a few weeks ago.  One night my seven-year-old daughter wanted to play with me.  As we rummaged through her toys, I saw a small robot that we bought for her last Christmas.  If you don’t have kids, you should know that every year there is a new education toy craze that has all the parents going out to “invest in their child’s education.”  Over the past year or two this craze has been “programming.”  My daughter has a robots for which you can punch in simplistic commands like forward, forward, right, right, and the robot moves in the sequence directed.  Knowing what I went through to learn programming as a child, I struggled to understand how this toy taught “programming.” 

So, I say to my daughter: “Hey, want to learn how to write computer programs in a language called Python?”  Intrigued by the nature of the question (particularly the notion that a snake might be involved) her answer was of course: “Yeah! What’s that?”  So I downloaded Notepad++ and a Python compiler and away we went.  

Since then, our normal routine includes me showing her a couple of new functions every few days and then giving her an assignment to work herself.  I make her struggle for 10 minutes or so and then I jump in and help her.  So, now it’s not uncommon in the house to hear “Daddy, can I dynamically allocate a string list variable, or do I need to know the array size before I start?” I haven’t told her she’s not old enough to program yet…


So back to the title statement.  Why am I teaching my daughter to program in Python?  Because I’m growing a little creator

She has always absolutely loved to play with computers.  I could be a consumer and foster this interest by buying brain-leaching video games, or I could teach her to creatively use the computer as a tool to build her skills and curiosity; to create something useful.  Learning to program was next to impossible with the resources I had growing up.  Now the resources and tutorials for learning are infinite.  Python is a free and fun activity where she is learning to think and problem solve in a very picky new language.  It’s amazing how fast she picks up on it.

If you are interested in getting your little one involved in programming, you don’t need to be a programmer yourself.  You can learn with your kids as you go.  In my case, I hadn’t wrote a line of code in 15 years and the languages I learned in college such as FORTRAN are now extinct dinosaurs.  So I’m learning along with my daughter.

An easy transition for any beginner might be Scratch.  This fun programming interface was made especially for kids by the staff and students at MIT.  It is very visual, but includes a lot of fundamental programming concepts like if/then statements and loop algorithms.  There’s even a Scratch Junior which targets kids seven and under.  Best of all, all Scratch applications are 100% free!

If your little ones aren’t so little and you are ready to dive into a real programming language like Python (which I recommend), www.learnpyton.org has a good introduction and actually has a window with a running Python shell so that you don’t have to download anything.  You just do the exercises right there on the webpage.

Both options above eventually have their limitations, so me and the little one just downloaded Notebook ++ and IDLE Python 3.4 (all free) and away we went.  Python.org can help get you started, or just shoot me an email if you need help.

To wrap things up, learning to program is awesome and will be critical for the world your children will grow up in, but programming isn't the only outlet for a creator.  There are all kinds of things that you can teach your child that will help them rise above a parasitic culture that lives to consume. Challenge your kids to be creators!  It's your job, not their teacher's! You will be amazed at what they can do if you just shut off the TV and give them a chance to be extraordinary.





Comments

Popular posts from this blog

Creator's Path to Financial Independence Calculator

Building a Twenty-Four Seat Movie Theater in My Basement

The Creator’s Path to Financial Independence: Part 1