There is an idea floating around that everyone should learn to code. President Obama has endorsed the idea. In 2012, the New York City mayor, Mike Bloomberg, vowed to learn to code (we don’t know how far he got with it.) It is almost a fad to advise people to pick up a programming language, no matter which career they have chosen. And though some critics are saying there is no need for everyone to learn to write a program in Python or any other language, we say there is.
It's not because of the IT job market and the need for programmers. Nor should you learn to code for fear of AI taking away jobs in the looming future. Not everyone who learns to code needs to or can become a professional coder. Learning code is not a matter of attending a college course for a year, and then jumping into the job market with some credentials but not enough experience or deep knowledge.
We recommend learning to code for a different reason. If you approach computer programming as a tool to understand the increasingly tech-centric world, then you'll pick up valuable skills that you'll be grateful for all your life.
Learning to Code is like Learning Any Language
Everyone learns to write whether or not they want to become a professional writer. Even if you don't want to become a professional programmer, building applications or creating websites, you can learn to code. Everyone will benefit from a basic understanding of how a computer works, what a website really is, and how to give commands to your computer when it breaks down, without having to rely on a technician.
You Can Do Things for Yourself
Programming doesn't have to be similarly life-changing for everyone. There are people online who claim they have saved their business $2 million a year by building a program that combined their business knowledge, and the little programming knowledge they taught themselves.
Even smaller examples are encouraging. Learning Excel Macros, or any other scripting language, could benefit any office worker. There is always a need for good programmers. Learning code can open up many jobs on Freelancer.com, and maybe you could finally give up your desk job!
You Can Hire the Right People
When you're interviewing a technical person for your business, you want to be able to ask them the right questions. It's the same with buying a car. If you don't have any knowledge of the internal workings of a car, you're more likely to get duped by a used-car salesman. If you knew a little about cars, you could change the spark plug yourself without having to call in a mechanic.
Similarly, when you're interviewing a programmer to hire for your business, you'll make a better hiring decision if you can explain to them exactly what you need.
Learn for the Right Reasons
The reasons above are the practical reasons to learn basic computing, but there are other reasons people give to urge non-geeks into the computing world. These reasons are not quite convincing. For instance, some people say that learning to code can teach additional skills, such as problem solving or critical thinking. But there's no reason to beat your head with the vagaries of C++ initialization just to improve your problem-solving abilities. Learning tennis can have the same effect, and it will get you out of your desk chair and into the sun to boot.
Only learn to program when there are practical reasons for it. Or learn it if you want to learn a little more about the technical world, the mobile devices you use all the time, and the websites you browse.
Know Your Limitations
You may certainly be more interested in programming after having spent a year elbow-deep in syntax, variables, and conditional statements. However, this interest may not always translate into the skill needed for joining the industry. Talk to other programmers if you can, and gauge your skills before you either post your profile on a job board, learn a little more, or decide that you've learned all that you need to know.
The Bottom line
It may seem fickle of us to caution you when we're trying to make a case for learning to code. But our aim is to encourage people to learn programming languages with the right attitude, and from the right sources. A little caution will help you make sure the precious hours and effort you spend learning to code don't go to waste.
A fallout of the growing popularity of coding is that every other person with some coding knowledge is setting up an online course. Many of these programs don't go very deep into the subject and only leave you with a working knowledge. It is relatively easy to gain a general knowledge of programming so you can build a form for your website's contact page, for instance, or build a program to store and manage your customer data. But this is not enough.
We don't mean that you need to be a genius to use a computer productively. But in the long and short term, you need to know more than popular online and mobile courses can teach you.
Very often, you'll only pick up habits from these courses. You may end up memorizing concepts rather than thinking them through. Of course, this applies to any branch of learning. But it particularly applies to something like programming, which is more accessible to the average person with a computer than quantum physics, for example.
Plenty of people are inspired by reading Stephen Hawking's and Richard Feynman's popular writings on physics. But this doesn't mean they take up the subject as a career. Nor is it feasible for most people in other industries to drop everything and decide to study the boson and its habits. But programming is a lot more accessible than physics. All you need is a computer and an editor/compiler (freely available online) to start building programs.
If you learn in the right way and spend time thinking about the workings of a piece of code, you'll employ your time more efficiently. However, if you learn a technology-specific language by rote and the technology or language goes out of style, you'll have no foundation to adapt to the new technology or language that comes along.
We highly encourage people to learn to code, as long as they don't use a shortcut, and skip learning and thinking about the foundations of coding. When you learn it in the right way, you'll find coding skills are highly valuable in a world where there is always a need for people who can build better apps.
What do you think? Do you want to pick up the one skill that everyone is saying you cannot do without? Which language will you decide to learn, and why?