Are you wondering if you should teach yourself how to program? I’m not surprised. Programming is trendy and often regarded as a critical skill for the future. But it’s also perceived as hard and almost “magical,” as Arthur Clarke put it:
“Any sufficiently advanced technology is indistinguishable from magic.” — Clarke’s third law
Programming may be an incredible journey or drudgery. I’ve been on the programming road for five years, so let me share with you some of the best and the worst moments of a beginner programmer’s life.
Learning to code comes with numerous benefits. Here are the top three for me.
You get to learn a new skill
That’s a biggie. I love learning, so a chance to gain a new skill — all by myself and for free — was too tempting to resist.
I always considered myself more interested in social sciences than technology. But it turns out I have a deep passion for solving problems, and that’s what programmers do.
What’s more, programming is not just any other skill. It teaches you to think differently. Computers understand only logic. You can’t be more or less accurate. Your commands need to be precise.
Besides precision, programmers need to learn how to break big problems into smaller chunks. The ability to divide a complex business problem into manageable parts is crucial and will help you in all areas of life.
You have more opportunities
Many people learn to code to find a job as a programmer. The programming job market is still booming, so finding a job for a decent programmer is straightforward. Also, salaries are a huge magnet for many people.
Looking for a job as a programmer is a valid reason to learn to code. That’s the path I took. So if you want to create code for a living, do it.
But you can find other reasons why learning to code might be a great idea. Above all, this skill gives you one great benefit: flexibility.
You can change your career direction if you know how to code. In many industries, programming is a gateway to promotion or a new career path.
When I worked as a lawyer, my colleague learned to code in Python. Now he is the head of a team responsible for creating digital products and coordinating cooperation between lawyers and developers — his expertise in both fields has proven to be invaluable for his company.
Think about how you could use programming skills in your job to maximize your value to an employer.
What if you don’t want to get a promotion but just earn enough to fund your hobbies and lifestyle? Programming can help with that too. Huge parts of many jobs can be automated. Machines are perfect for mindless office work. One program may finish hours of your work with a click. And the time you save is all for you.
Programming is fun
For people who like to solve problems, programming is fun. My highest ups often come from fixing a bug that was nagging me for hours or creating a particularly elegant part of code. Those little pleasures make my days brighter.
What’s even better, programmers get to build things. Programming is like a superpower, allowing you to create something out of nothing.
In too many jobs, you do countless things and can’t see any effect. You’re just a cog in a colossal machine that is too complex to comprehend. But when you program, you can immediately see the results of your work. The satisfaction coming from creating real products is motivating and keeps you going even further.
Also, as a programmer, you can help other people. Be it your friends, loved ones, or organizations you support, you can help solve their real problems. You may learn to program for free — all you need is access to the internet — so it’s good to give something back.
Some moments in a beginner programmer’s life are awkward. Here are my top three most significant obstacles.
Programming is hard
It should be obvious, but it’s not. I’ve read countless articles saying everyone can learn to code. It’s easy and fun. In reality, the number of things you need to understand to become a competent programmer is huge — algorithms, data structures, languages, frameworks, version control, tests, bundlers, etc. The list goes on almost indefinitely.
In programming, the more you know, the more prominent your inadequacies are. You may believe you understand a lot in the beginning, but after a few months, you’ll realize you’ve just scratched the surface.
The greatest obstacle for a beginner is the transition between simple conditionals and loops and real applications. I’ve found myself relearning these same elementary things again and again.
In my specialty, front-end development, there is another difficulty. The landscape is changing quickly and new tools emerge every day. I stress over the fact that the thing I’m learning is outdated and I won’t need it.
So don’t let anyone fool you: Programming is not easy, and it’s not for everyone.
Programming takes a lot of time
You need to prepare for hundreds of hours of studying. To even become more or less competent, you’ll probably need to study every day or devote years to it.
When you’re learning to code, everything takes a lot more time than anticipated. Finding materials, reading them, coding. You expect to understand something in a few days only to discover you don’t get it after four weeks.
I struggled for almost a year to find a job. It required lots of time and discipline. I’ve also made countless mistakes along the way, and you’re bound to make mistakes too. So if you want to learn to code, get ready for a marathon — not a sprint.
Impostor syndrome hits you hard
“I’m not good enough. I need a degree. I’m too stupid.” These thoughts will accompany you for years. It’s a great obstacle for self-taught programmers — they feel inferior to the “real programmers” with IT degrees.
You may learn all the time, and you’ll never know everything. That’s OK. All you need to do is strive to code as well as you can and try to become a little bit better as a programmer every day.
Impostor syndrome is real. I still feel it. I think I should know more, read more, code cleaner, learn new languages. I’ll probably feel like a fraud from time to time until the end of my carer. And that’s OK too. We all have to accept it.
One particular thing stood out as the biggest obstacle for me when I was learning to code: loneliness. I didn’t attend any boot camp, so for me, it was months of sitting home alone, reading, and writing code. It became depressing, especially when a few of my job applications were rejected and I started to question whether I had wasted almost a year. Luckily, after the struggle, I’ve found a terrific job and met great people.
Don’t repeat my mistake. Take care of your mental health. Meet with friends, find a coding partner, or even go to a boot camp. Learning to code isn’t everything, and you’ll be much better off if you take care of yourself.
How do you feel? Should you learn to code? For me, it was worth it. I’ve got a job I enjoy and I’ve learned more things than I imagined possible. If you’re still not sure, give it a try. Maybe programming is something you’ll love.