Skip to main content

The Problem With "Everyone Should Learn How To Code"

Every week another article comes out frantically telling us that everyone should learn to code, that coding is an irreplaceable skill in the 21st century skill set, that you can supercharge your career if you just spent 20 minutes a day for 21 days to learn how to code, or some similar nonsense. Even Obama has joined in, stating on a number of occasions that "Everybody's gotta learn how to code." While the intent is often good, I think these sentiments are dangerous for a number of reasons, but mostly because they cheapen coding and show a complete lack of understanding about what it is.

The problem with "everyone should learn how to code, just like everyone should learn how to read and learn how to do arithmetic" is that fundamentally, coding is not arithmetic. It's not even like arithmetic. It's not like reading. And by comparing coding to the fundamental skills that form the lowest possible foundational step of intellectual pursuits (e.g., you can't study comparative literature if you've never learned to read, and you can't be a mathematician if you don't understand numbers), we perpetuate the incorrect vision of coding that most non-coders have. Which is, to put it bluntly, that it's a specialized form of typing.

Nobody in their right mind thinks that taking a semester of calculus makes you a mathematician. Nobody would ever say that 20 hours of violin lessons makes you a violinist. Yet we continue to perpetuate the belief that coding is just "something that you gotta learn", and something that just a little bit of work will allow you to learn and become proficient in.

No. Not everyone needs to learn how to code. Nor is coding something that you can learn just by spending a scant bit of time.

Do I think everyone should learn what coding is about? Yeah, absolutely. Learning about coding changes the way you think in a positive way. It changes how you approach problems and how you see the world. It changes your mental patterns. Learning about algorithms and complexity theory makes you a more rigorous thinker, and this extends into all aspects of your life. Learning about the way that software engineers approach problems can help you approach problems in any sphere of life in a more logical and productive way.

But "coding" is not the same as "syntax", and this is where the disconnect often occurs.

For instance, in Korea, the general view of programming is that it's slightly above data entry, but management doesn't quite understand (nor care) why. That is, the managers decide the requirements, and they throw it over the wall to the programmers, who, having been relieved of the difficult part (i.e., determining the requirements), simply have to type it in. This is one of the reasons why there is so little respect for engineers in Korea.

The reality could not be more different. Coding is more akin to art. If I were to tell you I wanted to see a painting of a sunset behind a mountainscape, there is no one set path to follow in order to produce the end result. Similarly, given a set of requirements for the features that you desire in a product, coding is the art and science of turning those requirements into reality. There are literally an infinite number of ways that one could do so, and computer science (it's called "science" for a reason) is the field of study devoted (in part) to how to achieve this in the best way.

When Obama participated in the Hour of Code recently (which is awesome, don't get me wrong), he apparently actually spent about an hour to produce one measly line of code. That code?

moveForward(100);

Not very impressive. Does Obama "know how to code" now? Um, no. But he claims it's "not complicated"!, explaining it as follows:

"The basic concept behind coding is that you take zeros and ones, you take two numbers, yes or no, and those can be translated into electrical messages that then run through the computer…. So all it’s doing is it’s saying yes or no over and over again, and the computer’s powerful enough that it can read a really long set of instructions really quickly."

Yeah ... um ... that was a good college try. So now that you know how to code, Mr. President, can you explain to the class what actually happens when a user inputs her personal info and presses enter on healthcare.gov?

Look, coding is fundamental to the future. There is no modern hardware without software, and there is no shortage of stuff for software engineers to do. The world runs on software. But the danger of "everyone needs to learn to code" is in trivializing and misunderstanding what coding actually is. Becoming a competent software engineer is difficult work. Becoming an amazing software engineer is rare enough that there's an extreme shortage of them.

If "everyone needs to learn how to code" gets more people to try coding who would not otherwise, then that's great. But I'd rather see the initial focus be on getting people who wouldn't otherwise try coding to give it a shot, specifically women and minorities, because many of them can be amazing engineers but never even think to try.

Coding is hard. It's difficult, it's painful, and it's often frustrating. But it's rewarding, it's artistic, and it's a fundamentally creative endeavor. It is not akin to mandatory primary subjects such as reading and arithmetic.

The world needs more coders, and it needs them now. But let's give coders the credit they deserve, and let's treat software engineering like the art and science that it truly is.

Comments

Popular posts from this blog

Why Korean Is Hard For Native English Speakers

A couple of days ago, as an experiment, I wrote my first blog post ever in a non-English language. It was an attempt to explain some of the reasons that Korean is hard to learn for native English speakers, so I figured I might as well try to write it in Korean. Those of you who actually read Korean can see how awkward the attempt was =).

In any case, the post came from an email conversation I had with The Korean from Ask a Korean, a fantastically well-written blog about all things Korea from the perspective of a Korean who moved to the United States during high school. Since I tend to geek out on language things, I figured I might as well post part of that conversation. An edited version follows.

---------

Out of the languages that I've attempted to learn so far, Korean has been the hardest. I've done a lot of meta thinking about learning Korean, and I think there are a number of reasons it's difficult for non-Koreans (and especially Westerners) to learn:

1) Obviously, the…

Don't Take Korean Language Advice From Kyopos

I'm not sure why it took me so long to figure this out, but the last people you should take Korean language advice from are kyopos (foreign-born or raised Koreans). That being said, if you do follow their advice, you will get many laughs from Koreans. Some of my personal favorites, all of which actually happened to me:

- When I first got to Korea, I was at some open-air event, and during a break I started talking to one of the hosts. He said he was only a part-time host, so I asked him what his full-time job was, and he said "백수" (which is slang for "unemployed guy"). I asked him what that was, and he replied, "Comedian". So then the next few people I met, I proudly told I was a baeksu. (Edit: Actually, this guy was Korean Korean, not kyopo.)

- Next, a kyopo who lived in the apartment I moved into back in 2010 asked me what I was doing in Korea, and I told him I was starting a company, and asked how to say that in Korean in case people ask. He told me…

Is It Worth It To Learn Korean?

Learning Korean as a non-Asian foreigner is an exercise in masochism. Note that I specify "non-Asian". Why does that make a difference? Simply because Koreans possess a deeply-ingrained belief that non-Asians are incapable of speaking Korean. The self-fulfilling prophecy of it is that since Koreans expect you to be incapable of speaking Korean, due to this mental block, they are likely to not understand you regardless of your proficiency level. Additionally, they won't respond to you with normal Korean like they would respond to an Asian person, because they assume you couldn't possibly understand. You will rarely ever have an opportunity to hear natural Korean, because Koreans simply won't speak it with you unless 1) they are open-minded and awesome (meaning they have probably lived abroad - thank you to all of you), or 2) they have known you long enough that they've gotten past the odd sight of a foreigner speaking Korean.

In short, nearly every time you op…