A Modest Proposal: Please Don’t Learn to Code Because It Will Damage Your Tiny Brain

What a lot of people don’t understand is that programmers never write throwaway code. I once had the problem of wanting to download a few hundred images off of a website that had URLs like http://example.com/1.jpg, http://example.com/2.jpg, http://example.com/3.jpg, etc. up to http://example.com/347.jpg. (A local copy of an online comic, something that plenty of non-coders would want to do.)

At first I thought, “No problem. I always forget the exact function names of the networking library, but wget (a command line tool for downloading files off the web) is easy enough to use. I’ll just write a small script that writes a simple batch file that calls wget on each of these images. Something like:”

fp = open('temp.bat', 'w') for i in range(1, 348):     fp.write('wget http://example.com/%s.jpg\n' % (i))

Then I’d run the temp.bat file and I wouldn’t have to type out all those wget commands myself. A couple minutes later and I have all 347 images on my hard drive.

WHOA SLOW DOWN, AL. Are you sure you want to commit to writing this code? Writing a script that itself writes a script to be executed? That doesn’t sound very elegant. Isn’t that overengineering a solution to this problem? And what about supporting this code? Will it scale to millions of users? Have you thought about localization? What if I need to translate this script to Bulgarian? Do you really want to introduce this low-quality throwaway code into the world? Is that an inherently desirable thing?

Just imagine if your average layperson had the knowledge to automate simple, repetitive tasks with a quick hack like this. Then they wouldn’t have to struggle through all that manual typing and mouse clicking like a good techno-plebian. Or “ideally”, they could just give up on the problem and think there’s no practical solution (no code at all!).

“It assumes that coding is the goal. [...] Before you go rushing out to learn to code, figure out what your problem actually is.”

The core problem of this learn-coding-for-the-sake-of-coding fad is that you should have all the details of how you are going apply that skill laid out before you even write your first “Hello world” program. Having knowledge of new methods never broadens our perspectives or opens insights to novel solutions.

In my toolbox, there’s only a hammer and a saw because that’s all I need to build birdhouses. Sure, I might get ideas for new things to build if I had other tools. But I don’t know what those things are right now, so why do I need anything beyond what I already have? And hopefully if I stick to what I know, I’ll never find out.

“Software developers tend to be software addicts who think their job is to write code. But it’s not. Their job is to solve problems. Don’t celebrate the creation of code, celebrate the creation of solutions.”

Totally on the ball. It’s just like when one of my friends wanted to start an afterschool music program. “Hey now, the world doesn’t need another afterschool program. It needs an effective solution to lower drop-out rates, increase test scores, and prevent gang violence.” Thankfully, I was able to convince him to can the idea.

“It assumes that adding naive, novice, not-even-sure-they-like-this-whole-programming-thing coders to the workforce is a net positive for the world.”

I’ve seen some terrible code in my time, and the thought of these novice programmers being hired and putting their code on the market send shivers down my spine. Maybe if there was some way that companies could judge which candidates were qualified or not before hiring them (like a piece of paper listing their previous experience and education, or some sort of one-on-one conversation about their domain knowledge) it would be okay for people with less-than-absolute-mastery skill in coding to exist. Sadly, I can think of nothing that would prevent crap programmers from instantly being put in charge of the software for nuclear power plants.

You don’t create an effective workforce of software developers by encouraging many people to try their hand at coding and see who sticks with it. Rather, you need to scare off anyone who isn’t “serious” about coding. That’s the attitude that has led to the arrogant, petty, sarcastic, satire-writing generation of computer programmers I proudly say we have today.

“It implies that there’s a thin, easily permeable membrane between learning to program and getting paid to program professionally.”

Page 2 of 3 | Previous page | Next page