Mad scribblings and inexpert musing

Jeff Atwood Misses the Point

published: 15 May 2012 05:05:00AM

Jeff Atwood wrote an article this morning called Please Don't Learn to Code. He addresses some serious problems with the way we present programming to the external world, which is probably comes from a desire to dress up what we do as cooler than plumbing. But he goes a step too far telling people not to learn something. Programming ability is not a ticket to a magical land of unicorns, fairies and premier upper-middle class salaries. Programming is diverting, challenging, and interesting. It's a great thing to make a career out of, but also a fantastic hobby. There are many reasons to learn to program no matter who you are. I've been preparing that article for ages and will hopefully finish it some time after I've calmed down. There is a difference between a software developer (engineer, if you prefer) and someone who knows how to program. I can't speak for "the movement" although, I'm pleased as punch that there is one but I can say that aside from being honest about how much I make writing software and how I learned what enables me to earn that I have never told someone the reason to learn programming was to rake in the cash.

The Mayor Learns to Program

His opening remarks jab at the Mayor of New York's supposed new year's resolution to learn to code suggesting we'd end up with

20 GOTO 10

If Mayor Bloomberg gets that far, it would actually be awesome. I'm not suggesting he spend his mayoral days learning Javascript but everyone has nights, weekends, and hobbies. I'm sure the mayor of New York can afford to have quite a few.

Mr. Atwood, I don't want everyone to become a crack Java developer. I wouldn't wish that on my worst nemesis. What I want is for anyone with even a passing interest in how computer software works to have access to tools and materials they need to learn more about it as they please. And we don't have that yet. CodeAcademy is doing an excellent job getting us closer and should be applauded for doing so.

Programming as a Life Skill

It is obvious to me how being a skilled reader, a skilled writer, and at least high school level math are fundamental to performing the job of a politician. Or at any job, for that matter. But understanding variables and functions, pointers and recursion?

Here you're comparing big things (reading, writing, and mathematics) to little things (variables, pointers, and functions). The individual concepts are of little importance the same way homophones and perfect grammar are of little importance. But how deeply can you trust a politician's reasoning about software and technology if they lack even a basic understanding about how that computer works. There's a startling lack of digital literacy among people outside of software engineering and there are people trying to break down those barriers and get the interesting and relevant information out there in understandable ways.

Programming is absolutely not on the same level as reading or arithmetic however, does your argument for not teaching it in schools then extend to arts and music? Surely they are not as basic a skill as reading and arithmetic yet we still perceive some value in teaching them to children.

You said yourself that a software developer's job is to solve problems. Well what is a JavaScript interpreter but an abstract problem solving sandbox? Is there a specific reason you don't want problem solving to be a general skill? Are you frightened of our field losing status as the only problem solvers?

The critical thinking skills that I started developing when I started learning to code are what sustain me both physically and mentally. I would love to be teaching these skills in elementary school for that reason alone. Programming is engaging, and while it won't engage everyone, we should at least be providing the same opportunities we used to afford music, art, and wood shop. How many people who took wood shop in high school went on to become carpenters? Probably not many. But how many gained some level of appreciation for the craft? I'm sure that number is far higher. I didn't have wood shop at my high school, but I was fortunate in that my father, uncle, and grandfather all work with wood in various capacities and that allowed me to see how enjoyable and creative the process is.

In Which We are Likened to Plumbers

I can also recognize plumbing problems when I see them without any particular training in the area.

Yes, it doesn't take a plumber to notice a clogged toilet. Just like it doesn't take a web developer to recognize that 404 Not Found or 500 Internal Server Error means something went wrong but can you do anything about that clog without a plunger? And where did you learn to use it? Unless you were born with the knowledge of the existence and use of plungers, someone showed you how to use it. That's all I'm advocating here. Teach everyone to use the plungers of coding. It's interesting to remark however, that there is very little someone with a programming plunger can fix. It takes so much more to get any real work done. So why bother? A little bit of understanding never killed anyone and you'll have at least some basic understanding of what your programmer is doing for you if you know how tough it is to

Wrapping Up

I'm about to arrive in my last operating systems class of the year, so I need to go and I want to publish this while I'm still caffeinated and disappointed enough to go head-on against one of the authors and developers whom I deeply respect. Much of your argument is extremely valid and the "everyone should learn programming" {initiative,movement,meme} should accept this criticism, which I do, and synthesize it so that we can better reach our goal.

However, you've thrown the baby out with the bathwater in your haste to put a stop to misinformation and are losing a really powerful way to engage inquiring minds of all ages with a deeply interesting and modern art, computer programming.