I've been noticing a trend of articles that (upon first glance) seem to be discouraging the general public from learning to code. A recent piece "Please Don't Learn to Code Please Don't Learn to Code Unless...Unless..." posted on Simple Programmer is only one of many. Once you get past the title, the article makes some points I agree with and others that should be addressed.
The article starts with the acknowledgment of the "Learn To Code" movement that often uses celebrities and politicians to encourage the public. The author then states that "coding is not the new literacy." Why not, exactly? We now live in a world where code exists everywhere, even though it's invisible to most. Coding ability isn't wholly necessary to communicate, but if we try to look forward and envision the world in a few years, it's not hard to imagine students in developed countries using code to solve problems on a regular basis.
Over the past twenty or so years, the ability to use a computer has in essence become the new literacy. Those without basic computing knowledge today (like the illiterate) are largely unemployable in many industries, but that clearly wasn't the case in the 1980s. In 1991 I had multiple weeks to complete a project for a university science class to send a single email to my professor. Things change. What was considered a challenge years ago is now a necessary skill for employment, and looking ahead some basic ability to code might fall into that category.
Why is it such a stretch to imagine that in the 2020s or 2030s our employers in many industries will expect new hires to read and write at least some basic code?
"Selling coding as a ticket to economic salvation for the masses is simply dishonest."
Is that really what is happening here? Do those "Learn To Code" commercials show men and women coders on gold-plated Macbooks aboard luxury yachts, lying atop piles of cash and surrounded by models while having champagne poured down their throats? Tech is hardly the only industry glamorized by the entertainment industry, but let's not conflate Hollywood portrayals and the "Learn To Code" movement when it comes to "selling coding." If we're genuinely worried about the public's fascination with Elon Musk and Mark Zuckerberg, let's get data on the number of high schoolers who can pick Elon out of a lineup in comparison with those who can name more than one Kardashian.
I'm not sure what the author had in mind regarding "the masses," but it's naive to think that every human being that has the ability to code is a coder. And that's how these articles (and sometimes more importantly, their titles) may be interpreted. Coding is soooo hard, and if you had the required talent to code you'd already be doing it. Is that a message we want to send, even unintentionally?
Back to the article...
The author mentions bootcamps and that "everyone wants to own a startup and/or become an engineer." Good, because many people think we need more engineers. Or perhaps more accurately, we need better engineers.
Those who go negative on the "Learn To Code" movement seem concerned about attracting the "wrong" people, or those who may not have the tools to be successful. Can we accept that the "Learn To Code" movement is primarily trying to recruit those among the brightest of their generation who perhaps never considered a career in coding and were instead looking at things like medicine, chemistry, or other non-CS engineering disciplines?
Compared to those other fields, software is relatively new. We need a "Learn To Code" campaign because kids aren't as likely to hear that message from their grandparents or even their parents. "Be a doctor" and "Go to law school" may eventually give way to "Be a software engineer," but we're not there yet.
Next, he mentions bootcamps. Anyone that has been in the industry for 20 years may remember the number of computer training programs that arose in the late 90s where Cobol or some Microsoft networking certification were your ticket to financial freedom. There were good and bad schools then, just as there are good and bad bootcamps. We will always have opportunists in education when we have supply and demand labor inefficiencies, and as the cost of traditional education rises this isn't likely to change.
As for what is required to learn coding at a high level, the author writes:
Don’t get me wrong; I do believe that engineering and programming are important skills. But only in the right context, and only for the type of person willing to put in the necessary blood, sweat, and tears to succeed.
All this blood, sweat, and tears is probably because people start learning how to code much later in life. I learned to type at 18, where students today are using keyboards at a much younger age. What if kids also learned some coding basics earlier on?
If your first exposure to programming concepts comes in a coding bootcamp after spending four years and 100K for a degree in economics, there will be some blood and sweat (but mostly tears). Students who had some computer science classes in high school and college aren't likely to face the same challenges.
Then perhaps the most troubling statement, for me anyway...
I would no more urge everyone to learn programming than I would urge everyone to learn plumbing.
I think this is where the author truly misses the mark. We can learn some basic plumbing because knowing how to fix a leaky pipe or unclog a toilet will save you some money and a headache some day. Likewise, we can learn some basic coding because writing a script to automate a task at our job might also come in handy. Everyone who learns to fix a pipe doesn't need to be a plumber, just like everyone who learns some coding doesn't need to be Mark Zuckerberg.
The article takes a bit of a tangent and then addresses the line between learning to code and getting being paid to program. He reveals he is self-taught and doesn't have a CS degree, but his persistence allowed him to make it in the industry.
Being self-taught and having no CS degree is probably the most difficult path to success in the industry, and the fact that the author succeeded in the industry is a testament to hard work. Imagine if we taught him some coding at a younger age?
But if you want to talk about how difficult it is to land gainful employment in an industry, is software really the best example? Even during a down economy, employment levels in the tech sector are well above other industries. Recruiters fall over themselves to talk to programmers, and it's not uncommon for even junior level talent to get 10-20 "offers" of new employment in a week.
Complaints about finding work in the software industry fall on deaf ears when your audience consists of people who aren't so inundated with offers of work that they find the need to put "Please don't contact me about jobs" on their LinkedIn profiles.
If we're going to discourage our youth from pursuing a career in programming because it's hard to get a paying job, let's start the conversation by telling them how much more difficult it will be to find a job in the dozens of other fields where unemployment is much higher. Although the manner in which programmers are evaluated for employment certainly needs to be revisited, let's not kid ourselves about the reality - if you are looking for a job, being an unemployed programmer is preferable to being an unemployed [almost anything else].
Let's change the message (or at least the branding of the message) from "Please Don't Learn to Code Unless..." to "Like countless other professions coding can be a lucrative career, but it can be difficult for some to enter and be successful. Even if you aren't seriously considering a career in technology, learning some basic coding might be a valuable investment of your time." Engineering isn't the only hard thing, and we should stop talking as if it were.