Digital transformation. Big data. Machine learning. Artificial intelligence. Internet of things. Industry 4.0. There is a digital race going on which every business is taking part in whether they know it or not. With all this excitement about, we all have to ask ourselves whether we have the right skills to thrive in the near future.
Contrary to what the title says, what I actually want to explore in this article is whether or not you should learn to code. It is aimed at undergraduates or employees who don’t have a coding background but are wondering if it’s worth learning to code.
Disclaimer: This article is going to be very opinionated/subjective. I’m not hoping to convince you of my beliefs, but I do hope that my perspective gives you something to think about and will help you come to your own conclusions.
Why bother?
Digital is already the new mantra for companies. Why depend on expensive, slow, unreliable humans when you can get computers to do the work? It is cheaper than outsourcing! The future is most likely going to reward those companies and people that bet on computers. Coding is going to become a highly treasured skill. I love coding and I recommend learning to code to every soul I meet.
Everyone should learn how to program a computer because it teaches you how to think.
– Steve Jobs
However, even I know that learning to code may not be for everyone. We are not headed for a future where every single person is a programmer. That’s a crazy idea! However, it’s very likely that most people will benefit from coding skills/software development knowledge even if their primary role isn’t to write software.
- Increased productivity. You can automate repetitive or menial tasks and spend more of your time on more value adding and enjoyable tasks. For example, Automate the Boring Stuff with Python teaches you how to do away with some of the menial, everyday tasks that we all hate doing.
- Independence and creativity. Coding is about more than writing scripts. It’s about finding creative solutions to real word problems. Coding allows you to bring your own ideas to life without having to depend on someone else. Of course, you also need to be able to identify and define the problems before you go about solving them.
- Extract more value from data. Most jobs these days involve doing some data science. If you work with spreadsheets, make plots etc., what you are doing is data science! Using tools like Python or R can help you extract more value from your data and work more efficiently than with a primitive spreadsheet. I won’t make a detailed comparison of Python/R vs spreadsheets here as there’s a lot to cover; perhaps it’s something for a future article.
- Communicate better with software developers. Even if you aren’t a developer yourself, you will probably be working very closely with those who develop the software that you use. Having an understanding of software development will make you a more informed customer. This is analogous to how knowing the inner workings of your car makes it easier to understand what your mechanic is talking about.
- Career boost. The ability to code can make you a more valuable employee and open up new opportunities at your workplace.
Those of you who expect to become effective leaders of teams/organisations/companies in the future will also need to have a good understanding of computers because businesses are growing increasingly dependent on computers. Having a good understanding of software will help you make better decisions, particularly those that relate to investing in software.
Even governments are starting to realise the importance of the coding skill. Alongside reading, writing and math, coding is on track to become one of the basic skills taught in schools. Estonia is leading the education drive with its ProgeTiger programme launched in 2012 aimed at not just primary, but even preschoolers! England’s new coding curriculum, published in 2013, also aims to have programming skills taught to kids as young as five.
So, the main takeaway is this:
You don’t have to be a programmer to learn how to code. Learning to code can enhance the skills that you already have and make you better at what you already do.
For the sake of completeness, I’d also recommend that you watch the following video which makes the counter-argument that not everyone should learn to code.
Cost of learning to code
I’m going to assume that you have little or no programming experience. Now, to achieve a basic understanding of coding and the programmer ecosystem - enough to solve relatively simple problems that you might otherwise resort to a primitive spreadsheet tool to address - is going to cost you some time and money.
Assuming you have a full-time job/study and that you can only dedicate your evenings/weekends to learning to code, I estimate that it’ll take approximately six months to get there. It could take less time if you find a way to make use of coding in your job/study. It will also depend on your learning agility.
From a financial point of view, learning to code is going to cost you next to nothing. Of course, I’m assuming you’re privileged enough to have already a computer and access to the Internet, which you probably do if you’re reading my blog. Free learning resources are abundant online. Even if you do end up doing some paid online courses, these cost about £10 or so. Education has never been this cheap.
Is it worth it?
Let’s ignore the financial cost because it is negligible. However, six months is a pretty significant time cost that needs to be justified. Also, bear in mind that after six or so months of learning to code, you will probably still be a ‘beginner’. It’s harder still to become proficient at it. It will continue to cost you more time to advance yourself as a programmer and to keep up to date as the software industry develops.
If you’re well into your career:
- Your time is precious as you’re highly skilled/knowledgeable
- Maybe you don’t have much time left in your career to cash in on any programming skills you develop
Say you’re a stress engineer or a project manager with decades of experience - you already have tremendous value because of your existing skills/experience. It might make more sense for you to monetise that skill/experience rather than invest in a new one. However, nothing is stopping you from learning to code if that’s what you want to do.
If you’re in your 20s or younger, your situation is the exact opposite.
- Your time is relatively cheap as you are not very skilled/knowledgeable (no offence, I’m in my 20s myself)
- Any new skills that you pick up could benefit you for a long time as you have your whole career ahead of you
You need to consider your circumstances, where you’re in your career and decide whether investing in learning to code is the best use of your time.
Another factor that will come into play is whether you enjoy coding or not. However, you can only understand that by trying it out. It’s quite exhilarating solving a difficult programming puzzle and seeing the result, but most of the time programming isn’t that exciting. The majority of the time is spend troubleshooting bugs, googling for help, or even just waiting for inspiration to strike. If you genuinely enjoy the process of learning to code, then you’ll have enough motivation to keep at it until you solve your problems. If you don’t enjoy the process though, don’t sweat it! It just means that coding isn’t for you and that your time is better spent doing something else that you do enjoy.
Where to begin?
If you’d like to give coding a try, I would recommend starting with the Python language. I wrote a post on getting started with Python where I start by explaining why Python is a good language for beginners and then direct you to lots of good resources for learning to code. Good luck on your programming journey. It’ll be fun!