Coding is easy and other fallacies

The New York Times ran an op-ed with the headline “In India, parents are being aggressively sold the idea that their children must start coding at 4 or 5 or be future failures.” (It’s behind a paywall, but you don’t need to read the article for my blog post). As I read the comments, I kept cringing at some fallacies. Hence my blog post. I’ve paraphrased the arguments I want to respond to.

My opinion: I don’t think little kids need to learn how to do code as little kids. But I also don’t think it is terrible if they do. Languages like Scratch Jr let kids create cute stories and games online. This feels just as creative to me as coloring except with some logic built in.

“Coding is easy”

I wrote a whole blog post about what “easy” means. I assure you many people currently learning to code (as adults) are not thinking “this is easy”

“No need to learn early; I learned to code in 3 months at age X”

Learning to code is not the hard part. Being a programmer/software developer is more than just learning how to code. Knowing how to code is a foundation skill for being a good programmer though. (Kind of like how basic arithmetic is a foundation skill for algebra). Once you’ve learned that initial three months of coding, you can learn the harder things that make you a good developer. For example, knowing what libraries/frameworks are available allows you to solve problems far faster.

I agree that you can become a good developer at any age. But I disagree that three months is enough to become proficient. Also, I’m sick and tired of interviewing “experienced developers” who can’t solve the equivalent of FizzBuzz. That’s a foundation level skill.

“Nobody will need to code by the time these kids grow up”

I’ve been reading about coders become obsolete my entire career. And I’m sure the predictions didn’t start then. Programming will become higher level over time. It already has. Look for some assembly language developers. Look at some Fortran code. It would take a long time to write something in those languages that we could write in minutes in a modern language.

Similarly, there are DSLs (domain specific languages) for business users. Who writes these? Programmers!

I also expect more “glue” and customization code over the years. I work with a lot of COTS (commercial off the shelf) products. One would think that there wouldn’t be a lot of programming because someone else wrote the product. Yet I code almost every day. Sometimes all day. Businesses will always have custom requirements.

“Languages change too quickly to learn”

Let’s look at some dates here. Python and Java were both created over 25 years ago. Both languages have changed extensively in the last 25 years. So yes, learning 1990’s Python or Java would not make you a good developer today.

However, these are little kids. They are probably using a language like Scratch that doesn’t require reading. Which clearly won’t be the language they use when they grow up. Similarly, the won’t be reading picture books when they grow up either (comics maybe, but not picture books.) When I was in elementary school, I learned Logo (a language with a turtle.) It was fun. I learned a little about computers and math and made a turtle move.

Even as an adult, you need to keep learning as programmer. Languages change. There are new languages. Learning multiple languages up front helps you learn new ones faster over your career. The fact that something changes quickly doesn’t mean declaring defeat.