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

  1. Casino & Sportsbook - St. Louis, MO - JTV Hub
    Welcome to 순천 출장마사지 the St. 청주 출장샵 Louis casino & sportsbook. The casino has 1,000 시흥 출장샵 slots, 3 tables & a sportsbook. The casino has live dealers 울산광역 출장샵 and games. 동두천 출장안마

    ReplyDelete

Post a Comment

Popular posts from this blog

영어가 모국어인 사람들은 왜 한국어를 배우기가 어려운 이유

이 포스트는 내 처음 한국어로 블로그 포스트인데, 한국어에 대하니까 잘 어울린다. =) 자, 시작합시다! 왜 외국사람에게 한국어를 배우기가 어렵다? 난 한국어를 배우고 있는 사람이라서 이 문제에 대해 많이 생각하고 있었다. 여러가지 이유가 있는데 오늘 몇 이유만 논할 것이다. 1. 분명히 한국어 문법은 영어에 비해 너무 많이 다른다. 영어는 “오른쪽으로 분지(分枝)의 언어"라고 하는데 한국어는 “왼쪽으로 분지의 언어"이다. 뜻이 무엇이나요? 예를 보면 이해할 수 있을 것이다. 간단한 문장만 말하면 (외국어를 말하는 남들은 간단한 문장의 수준을 지낼 수가 약간 드물다), 간단한 걸 기억해야 돼: 영어는 “SVO”인데 한국어는 “SOV”이다. “I’m going to school”라고 한국어로는 “저는 학교에 가요"라고 말한다. 영어로 똑바로 번역하면 “I’m school to go”이다. 두 언어 다르는 게 목적어와 동사의 곳을 교환해야 한다. 별로 어렵지 않다. 하지만, 조금 더 어렵게 만들자. “I went to the restaurant that we ate at last week.” 한국어로는 “전 우리 지난 주에 갔던 식당에 또 갔어요"라고 말한다. 영어로 똑바로 번역하면 “I we last week went to restaurant to again went”말이다. 한국어가 왼쪽으로 분지 언어라서 문장 중에 왼쪽으로 확대한다! 이렇게 좀 더 쉽게 볼 수 있다: “전 (우리 지난 주에 갔던 식당)에 또 갔어요”. 주제가 “전"이고 동사가 “갔다"이고 목적어가 “우리 지난 주에 갔던 식당"이다. 영어 문장은 오른쪽으로 확대한다: I (S) went (V) to (the restaurant (that we went to (last week))) (O). 그래서 두 숙어 문장 만들고 싶으면 생각속에서도 순서를 변해야 된다. 2. 첫 째 점이니까 다른 사람을 자기 말을 아라들게 하고 싶으면, 충분히...

10 other things South Korea does better than anywhere else

Recently this article about 10 things that South Korea does better than anywhere else  has been making the rounds on social media, but when I first read it, I couldn't tell if it was sincere or satire. A few of the items on the list are not very positive, such as "overworking" and "using credit cards". So, I thought I would try to put together a better list. Here are 10 other things South Korea does better than anywhere else: 1) Small side dishes, a.k.a. " banchan " (반찬) Banchan are by far my favorite aspect of Korean cuisine. Rather than the "appetizer and main dish" approach of the West, a Korean meal is essentially built around small dishes. Even a 5,000 won (about $5 USD) meal at a mall food court will come with two to four banchan in addition to the "main", and often people will actually choose restaurants based  on the banchan (e.g., seolleongtang , or beef bone broth soup, places tend to have the tastiest kimchi). Ther...

"Gangnam Style" English Translation

I finally got around to looking up the lyrics to Psy's "Gangnam Style" last night. I couldn't find any English translations that I liked, so I decided to make my own. Disclaimer: I don't speak Korean. It's not my first language. It's not even my second or third language. But I did used to live in Gangnam, and the Internets abound with dictionaries, so I decided to give it a go. Incidentally, this is also my first foray into Korean-English translation. The translators out there will know - translation is as much art as science. If you translate directly, you end up with overly awkward constructions. But if you vary too much from the direct translation, you risk losing the original intent. So, in some places below, I've taken some poetic license to make the translation sound better. For example, "놀 땐 노는 여자" literally means "a girl who plays when it's time to play", but I changed it to "a girl who knows how to get down"...