Sunday, May 20, 2012

Is "Learn To Code" necessary?

There have been a lot of posts in the blogging world recently about whether or not you should learn to code.  A company called Code Academy issued a challenge about learning how to code.  This was quickly followed up with the Mayor of New York, Michael Bloomberg, tweeting about how he was going to learn to code.  The site Coding Horror was so appalled by the idea that everyone needed to learn how to code that they wrote a very strident blog entry on why people shouldn’t learn to code.
Never one to back down from a challenge, I thought I would add my two cents into the argument.
Should people learn to code?  If they are learning to code in order to call themselves programmers, then the answer is “no”, people don’t need to learn how to code.  If they are learning to code in order to understand how computers work, then the answer is “no” because learning to code does not give you any insight into how computers work.  If, on the other hand, they are learning to code in order to learn something new and to expand their horizons, then “yes”, learn to code.
I think the Coding Horror site went too far in their analysis of what was happening, but to be honest, I blame that over reaching analysis to be fostered by the Code Academy web site.  By going through the list of courses it really appears as if the Code Academy web site is trying to teach people to become Javascript experts.  That is not a good thing to do.  Back in the early days of the web (many of you are too young to remember this) one of the features of HTML was the <blink> tag.  Wow, did that hurt.  Blinking text did nothing towards making the Web what it is today.  Indeed, it may have set it back a few years.  Imagine a new generation of coders thinking of blink.
What I think most people actually need is a tutorial in demonstrating how computers actually work.  It isn’t necessarily a long course.  Indeed, it may be nothing more than an hour show on PBS or the Discovery Channel.  Keeping it light, keep it entertaining, but get across the message that computers are complex machines and that it takes a lot of effort to make them do what they do. 
While I don’t totally subscribe to the Coding Horror idea that most programmers can’t program, I do subscribe to the idea that perhaps in our zeal to satisfy the hiring requirements of business we have graduated too many people that still need some work on their programming skills.  We need some way to differentiate between people that know how to write applications and people that just repeat what they learned in school. 
Is certification the answer?  Well, the Canadian ISP certification talks about how you are a “practitioner of the highest integrity.”  Integrity is important, but it does nothing towards indicating if you actually know anything and, to be honest, the certification does not actually have any impact due to the fact that if you graduate from an accredited institution you pretty much automatically get certified.  New Zealand has the Information Technology Certified Professional, but outside of New Zealand who even knows about it? And, much like the Canadian ISP designation there is a large component based on integrity and not skill.  (Self assessment was the rule until recently.)
The IT industry needs more qualified, competent individuals in its ranks.  The Learn To Code idea is an interesting challenge, but it does not come anywhere near to fulfilling the needs of the industry.  It does, however, do a really good job of advertising for The Code Academy.