Programming is the go-to career for a tech person. It requires less hard-science knowledge than working as an engineer at a power plant, pays just as much (if not more), and gives you the possibility to work remotely.
While a programming career does have its fair share of benefits, there are quite a few pitfalls as well.
These can be manageable on their own, but the problem is that many people who start a career in programming do not entertain the possibility that this perfect job could have a single problem.
You get a junior position, get through the initial satisfaction with the possibility of finally applying your skillset and getting paid handsomely for it; then reality hits you like a brick.
This job is a lot less perfect than you thought it would be.
There are 8 things that will disappoint most beginner programmers.
But don’t use them as a reason to stay away from the job. Learn more about them, and come to your new job prepared.
Programming Is Boring
This may sound odd at first, but it’s true. If you’ve never worked in IT before, the only programming experience you have is learning it. When you learn how to code, you get to experience the fun stuff.
You learn in short bursts, thinking about a problem, and then getting a surge of happy hormones when you finally understand what the problem was. Most problems on the initial learning curve come from not understanding the language or algorithms well enough. There’s a clear mistake that you don’t understand yet, and in most cases, you can learn the solution from a book or Stack Overflow.
This makes learning how to code a very rewarding experience. You get to enjoy problem-solving that’s rarely out of your league.
That’s not the case with actually working a programming job.
Want to change the world with your skills? How about fixing the same bug on the clients’ websites over and over and over again? Want to experience the rush that comes after solving a complex problem? How about staring at poorly written legacy code with no discernable documentation for 10 hours straight before understanding the problem was in one function somebody accidentally deleted two years ago?
Programming certainly has its fun moments, but it can be unbearably boring sometimes.
Many people who decide to become a coder dream about making a positive change in the world with their software. They dream about creating a startup or working as part of a team to improve on the existing technology.
But that’s not always possible.
What you can get instead is working with legacy code. You don’t build anything new. You don’t even improve. All you do is try to understand this code that was written a decade ago and get it to work.
These kinds of projects are not entirely bad, because you get a stable income for rather easy work. However, this work could be boring you out of your mind, and put an end to those dreams.
As Jackie Lee, head of the Pro Essay Writer IT department puts it “when the innovation bit of job is over, all dreams and aspirations of senior staff die out.” There’s software that works just fine, and all you need to do is keep it that way.
If you find yourself in this position, and want to get through your paces without losing your spark, consider checking out Michael Feathers’ Working Effectively with Legacy Code.
Learning is a good thing, right? It would sure be naive to think that you can finish university and do your job without learning a day in your life. But learning in the programming industry goes so much deeper than onboarding.
This industry progresses faster than professional Starcraft players hit the keyboard. The speed of progress is so fast you need to learn constantly to keep up. As Lewis Caroll puts it in his book Alice in Wonderland, you need to walk if you want to stand still.
If you want to walk, you need to run.
This is how things go in the world of programming. New frameworks come out every month, new languages are created and adopted, code innovations (or, gasp, codeless programming) pop up everywhere, and if you don’t freshen up your knowledge, you may not get a better job later.
Hours Upon Hours of Work
What do people think of when they think of a programming job? They picture a person with a laptop, sitting on a beach, sipping on their cocktail, and working 4 hours a week to earn a $200k salary. They imagine a group of friends playing ping pong in the company lobby, waiting to return to their spacious work space with a birds-eye view of the city.
What do people not expect from a programming job? They don’t think about people sitting at their desks for hours, concentrating on documentation. They don’t think that writing code for 3 hours a day requires you to focus on finding a solution for another 5 hours. This can be hard even for a person without ADHD, let alone someone who has it.
They don’t think you’ll get asked to work overtime for the third time in a row because the project managers promised a client something they can’t deliver on time, and you’re paying the price.
Big Tech Takes Your Soul for the Money
Google can teach you a lot about the application process. However, if you’re lucky enough to get inside the company, you will soon find out that the price for the high salary and status is not eight hours of your time. It’s all your time.
As countless former Googlers put it, the company gives you so much stuff you forget what it’s like not being a Googler. You eat Google food, you hang out with Google employees in Google t-shirts, you work. That’s it. There’s hardly any time to do anything else, and the ecosystem in the headquarters discourages you from doing anything else.
The perspective these employees offer is that Google gives you an infrastructure that keeps you somewhat happy, but not entirely free. Just like a human zoo.
And Google isn't the only company that does it.
The People Problem
When you juggle learning, working, and having a personal life, it can be a struggle.
Code is often not the primary source of disappointment for a programmer. It’s the people that really cause frustration.
It can be small things. You’re trying to concentrate and managers are constantly hitting you up to ask for estimates and deadlines. You spend a week perfecting a piece of code only to find out your colleagues changed the library you’re referring to without telling you, and it just stops working.
It can be pretty big too. Imagine working 10 hours a day already and the manager snatches you for a high-priority project that will take you two hours to finish.
This can be a hard situation to deal with if you don’t have soft skills, which most tech people miss out on.
You Meet Smarter People
As a programmer, you’re going to be working together with a marvelous bunch of smart people. Some of them are almost too smart.
It’s a good thing in general, but the problem is not with these smart people. It’s with the programmers themselves.
Some young people who get into coding build their ego around being the smartest person in the room. When they meet a person who’s patented 12 inventions before finishing high school, it’s traumatic.
You understand you can be friends with them, and that you can learn tons from them. But you can never beat them.
This one is probably the lightest problem on the list. It can hurt, but ultimately it leads to improvement. With a peer group like that, you’re bound to become humble. That is if you don’t go the wrong path and become bitter.
Mental Health Problems
A lot of people who deal with technology better than with people think they’re not emotional. They think since they’re a bit awkward striking a conversation with a stranger, they can work for days without tiring like a robot.
But after the first project that you barely finish within the deadlines, it starts to dawn on you. You’re fully human and can get stressed as much as anybody else.
If you don’t start treating yourself as such and try to work more and more instead of giving yourself a rest, you’ll be burnt out in no more than a year.
On the Bright Side
This article has been nothing but grim.
I bet if this was only thing you’d read on programming, you’d be glad you didn’t take those PHP courses and are still working your sales job.
The truth is, most of these problems are true about any fast-growing industry that pays well. The main problem with programming is that so many people believe it’s some sort of a paradise job.
In reality, though, it’s just a job.
A job that can be fun and fulfilling if you don’t approach it with the wrong set of expectations. Now that you know what things can disappoint you, you’re ready to face them. As a result, you’ll be able to focus on happily doing your job, not dealing with frustrations.