For the past 7 months or so (September 2014 - March 2015), I’ve spent my Tuesday afternoons teaching a Code Club to 4th and 5th graders. It’s been an awesome, rewarding experience I’ve always walked away from feeling even more excited about what I do as a developer!

Additionally, my experiences have caused me to begin to question the “everyone should learn to code” maxim. “Coding is the new literacy,” or so the argument goes, and there has been a resultant push to get everyone in the US to spend time learning how to code.

While the premises of the Learn to Code (LTC) movement sound amazing, putting these arguments into the context of other industries shows that there are indeed serious problems with this ideology.

For example, what if the airline industry began to push something like this? We might start to hear pitches like:

There’s an exciting new initiative in the airline industry that’s slowly gathering steam. Proponents argue one very simple point: Everyone should learn how to fly an airplane! After all, in our modern world, there’s always an airplane overhead while 90% of us live within 2 hours of a major airport, so knowing how to fly an airplane is more vital than ever. Flying is the new driving, so grab your bomber jacket and head over to one of the many free flying clubs popping up near you!

A bit over the top perhaps, but I think it drives home the main issues with the LTC movement:

  1. Just like getting behind the cockpit of an airplane requires hours of instruction, completing a certification process, and a commitment to ongoing training, writing good code is something that requires practice, effort, and dedication. One does not simply walk into a cockpit and begin flying, nor should one expect to be able to simply sit down at a computer and begin to write good code. Skills take time to develop, and sometimes the LTC movement makes coding sound almost easy or something. Simple and elegant - yes. Easy - no!

  2. Not everyone can paint, swim, dance, or fly an airplane, nor can everyone code. Furthermore, there is a huge difference between “being able to code” and “being able to code well.” And this difference exists in all of the aforementioned fields as well - there are competent swimmers, swimming instructors, and olympic swimmers, all with differing skill levels and abilities. While one may be able to doggy paddle, that does not mean that one can make it all the way to the olympics. (Nor does it mean that one shouldn’t try to make it to the olympics just because one can currently only doggy paddle. Keep reading!)

  3. Not everyone wants to learn how to code. Granted, as someone who has done tech support professionally, I wish more people knew how to use their computers. However, I don’t have the time or inclination to become a certified mechanic - I’d much rather take my car to an expert who can do the work I need in a reasonable amount of time for a fair price. In the same way, there are people who would much rather focus on their passions and let someone else handle their computer and technology needs.

So, if I believe so strongly that not everyone should learn to code, does that mean that I’m elitist or that I just wasted the past 7 months teaching coding? No - I believe both of those statements to be incorrect. Like most things in life, the truth lies somewhere in the middle.

I would advocate the following:

Everyone should be given the opportunity to learn how to code.

What each person does with that opportunity is up to him or her. But everyone should at least get the opportunity to learn how to code regardless of sex, religion, ethnicity, color, background, socioeconomic status, perceived intelligence, or any other factor besides the desire to learn.

After all, where the desire to learn exists, all that is lacking are the means. And that’s where we who are passionate about coding come in!