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
Post a Comment