Who Should Learn to Code?

by Krishna on May 21, 2012

Codecademy has been gathering a lot of attention in recent times with many people, including Mike Bloomberg, pledging to learn code. The high-profile pledges shouldn’t be taken too seriously: they are just friendly endorsements for the well-funded startup that Codecademy is. And some of the others are perhaps well-intended, but the equivalent of New Year Resolutions, never to be followed up for any significant change in the person’s knowledge or skills.

For most people, not spending their time on learning programming is a good thing, because:

  1. Most people are good at (and work on) something other than programming. It is a better use of their time to become better at what they do.
  2. Programming may not even be a useful secondary skill. Many people would benefit much more from improvements in items like financial management, formal writing, presentations and so on, that help them in personal and business situations.
  3. Experienced programmers have already created hundreds of thousands of programs to solve most needs that require programming. Just take a look at the App Store.
  4. There are very few, if any, unsolved problems that can be solved with a cursory knowledge of programming.
  5. Many people struggle with basic programming concepts that even programming as a hobby or entertainment is not an option.

Experienced programmers who have huge codebases floating in their brains all day, may find this strange, but many people find elementary algebra and logic too hot to handle. This is even true for those looking for work as programmers. Let alone things like recursion, polymorphism and pointers, people find it difficult to understand basic control flow constructs such as conditions or loops. Forget programming languages for a minute, think about something like Excel functions. Sometimes even smart business people find them challenging beyond the most simple formulas. To the extent that they can use brute force to solve some basic coding challenges, they will start drowning in code when they try to write larger programs beyond “Rock, Paper and Scissors”.

I am not sure where this falls on the nature versus nurture spectrum. Is it possible for someone who has not demonstrated any aptitude for programming-related skills to overcome those deficiencies and become a good programmer over time? Perhaps, though I have come across very few examples. Most people are happy doing what they have been doing and a combination of risk averseness and lack of time combine to keep them where they are. It works the opposite way too. I suppose a good programmer may, with hard work, become a good physician. I haven’t seen any.

A complicating factor in all this is that code is taking over jobs that people do. Think of the professions that have been made obsolete with increasing use of software. There are many people who would willingly trade their jobs to be in the shoes of the programmers writing the code to displace them. Unfortunately, the usefulness of tools like Codecademy is limited because not only do you need much more than an introduction to programming, you need solid experience plus a bunch of educational credentials. The latter usually means a computing diploma or degree (from an educational institution) that can get you in front of an interviewer.

The people who would most benefit from learning code or at least understanding how code is written are the people who interact with programmers in their professional life. Take designers, for example. Programmers love designers who understand how good layouts can be implemented well on the web. A designer who just knows Photoshop and cut-and-paste CSS/JS makes it difficult for everyone involved. Or other examples:

  • A tester who can write a well-maintained set of automated scripts for functional and load testing.
  • A project manager who understands how complex a particular task can be in code instead of measuring its impact solely by front-end changes.
  • A recruiter with the ability to accurately appraise candidates through meaningful technical questions and doesn’t get fooled.

And so on. In technology, we are obsessed with programmers. But there is a much bigger set of people that deal with programmers directly or indirectly. It makes a lot of sense for them to improve their knowledge of programming as a secondary skill so that they can do their primary jobs in a much more informed way.


Macron May 30, 2012 at 2:35 am

I'm an educator in an institution of higher learning teaching management, and I can say that I have no current knowledge in programming, but am very keen to learn programming to be able to expand my research options into the world of computing. I can see a lot of opportunities in research on management practices within open source projects and the only way to get a valid look (research wise) would be to understand how they work, programming wise. As such, I'd like to ask how I can go about learning programming from almost naught with the aforementioned prerequisite in mind. Thanks in advance.

Krishna May 30, 2012 at 9:32 am

Macron, it would be good to start with learning the basics of one programming language and working through the examples to become familiar with programming. I would suggest Python as it is simple, popular and similar to other mainstream programming languages. Also, you will find extensive resources on the Web to help you, and I believe it is popular in research and academic circles too. Once you gain proficiency in one language, you could look at the the kind of tasks that would help you in your research and tackle those areas of programming that would help you. Let me know if you need any help!

macron May 30, 2012 at 9:23 pm

Thanks very much, Krishna for your valuable input. I'll give Python a shot then.

George Lungu May 30, 2012 at 10:41 pm

"Forget programming languages for a minute, think about something like Excel functions. Sometimes even smart business people find them challenging beyond the most simple formulas."

I cannot stop laughing. This article hits the nail right in the head. You can check my blog excelunusual.com and see what you can actually do in Excel using a tiny ammount of VBA. It's hard for me to learn any language while being able to do complex animated models in Excel using mainly spreadsheet formulas and 2D scatter charts as displays.

Nikhil September 17, 2012 at 7:22 am

Good post.

I guess we are talking about one of the most grey-cell-intensive skills. The limit on a person's number of days and inability to simultaneously master two or more such skills makes it well nigh impossible to really compete except within a really small niche. That is not to say that the human mind is incapable of such mastery, and there may well be examples of persons who have done well with two or more skills that are unrelated except in a transcendental sense.

But that's also an advantage. Imagine, if Charles Chaplin had been a techie as well, ...! I wonder if his antics would have been as endearing.

Let's allow the Nature in us to bring out the best.

Comments on this entry are closed.

Previous post:

Next post: