Several weeks ago I decided I would try to piggyback on the “codeyear” movement that’s received so much momentum and attention since the start of this year. It’s actually something I’ve wanted to do for some time myself – to teach a really basic workshop for beginners on programming concepts and the principles of computer architecture (which is just a fancy way of saying “how computers work”). When I saw the numbers (up to a quarter of a million people on Codecademy now?) I knew the time was right to throw my hat in the ring and make a start at teaching.
I have always believed that people are capable of so much more than they think they are, and I believe this is especially true when it comes to programming. It seems to me that a big part of this lack of “technical self-esteem” comes from the fact that our public education system is a complete failure when it comes to preparing children for their futures, particularly in the areas of science and technology. The American educational system is lacking so much in this department that nearly all of our population is practically to the point where they believe that computers are magical devices (something our friend Steve Jobs was always fond of saying about his “innovations”); but in fact they’re really nothing of the sort.
Another part of this “fear and loathing” of computers and programming seems to come from people already in the know perpetuating straight-up elitism, and yes, even issues of class and, dare I say it? Gender and race. People truly believe that they need to be a wizard to comprehend anything to do with programming, and all the language of computer professionals supports this – and to some extent, it’s somewhat warranted, because knowing how to program empowers you. I know this because that’s how I’ve lived for the last 20 years; I’ve had confidence working with any kind of computer system anyone throws in front of me because I learned over time that they’re really not that complicated, and that there’s a process to solving problems with computers. When you work with something long enough, you become an expert at it, and that’s the simple truth; no one became a wizard overnight, or started off with any kind of innate ability to program or otherwise work with a computer. Every computer expert has spent years and years making mistakes, doing research, experimenting, and otherwise finding various ways to learn everything they could about these machines and the languages used to program them.
As with any other skill, mastery comes with practice. Every artist starts with stick figures, every potter starts off making a simple bowl, every athlete starts off with simple exercise routines – and over time, with patience, determination, and practice, they all become experts in their fields.
Communicating this to my students was one of the critically important things I hoped to accomplish in my first workshop. I also wanted to give them a sense of ownership over their ability to learn about technology, and give them a sense of power over their computer that they might not have thought was possible.
So I have to say I’m very happy about how the workshop went. I received great endorsements on Skillshare and students have expressed some extremely moving sentiments when the workshop ended – one of which really sticks with me at the very moment I’m typing it out: “I never thought I could actually learn how to program, but you’ve helped me over the mental hurdle, and now I think I can actually do it.”
I just can’t tell you how much this means to me, that I actually got people to this point. There’s only so much you can do in a five to six hour workshop; I’ve never expected people to leave the course fully ready to write programs on their own. But I can say with complete confidence that I have started people on the right path. And I couldn’t be more proud or more inspired or more motivated to take this teaching thing as far as I can. I want to make a difference, and I now know that I can do just that.
I probably should have started this teaching thing a long, long time ago!
So, to fulfill this lofty goal I have of teaching as many people as possible how to program, I’m making what I’ve developed for my curriculum available to everyone under a free culture, Creative Commons CC-BY-SA license. You can find the presentation I give at the beginning of the workshop on the history and concepts of computers online at Prezi (a terrific site for making killer presentations) and you can also download the notes packet I hand out in the workshop from my Github account, complete with the slide notes, code, and other tips for getting started with programming.
I intend to continue teaching the workshop, because I think there’s still a huge value in being taught in person in an interactive, hands-on workshop setting. There’s plenty more that I discuss and digress about that isn’t included in the materials, but the gist of it is all there in the packet for anyone who isn’t near the New York metro area or doesn’t have the money to take the workshop with me. Our culture is our future, they must both be open and free; and we can all be free if we empower ourselves with technological literacy and take our future into our own hands.