Recently I wrote about why you should become a software developer and all the benefits that come with it. It's a great career and an awesome field to study for sure. I for one am glad I chose it among the many possible options in life. But now it's time to dive into the reasons why you should not get into this field, based off of my own experiences and friends and coworkers alike.
I have been a part of this industry for over a decade now, and there
have been more than a few times when I've told myself that I should have
been a doctor, or Alaskan crab fisherman instead. Suitcase packed up
and ready to go, I always come back however. Once you get over the
frustrations that are inevitably involved with any and all jobs in our
modern day world, you get to see it for what it is. And it's a pretty
awesome thing, for some people.
So the following are a few reasons why you might want to steer clear of being a software engineer.
1. If you don't want to work too hard
Software development can be a difficult job, depending on the company and the task at hand of course. Managers might not know what "difficult" is sometimes and this trickles down to your projects. At previous jobs, they knew what difficult was, and they dished it out to me and my team. But I've had friends at different companies tell me what they were working on, and as my jaw hit the floor, I felt a bit bad for them. Not because it was difficult work. Quite on the contrary actually.
It was mainly because they were spending weeks at a time on tasks that I
would have only a few days to finish normally. Once they leave those jobs,
these individuals tend to have a more difficult time as technology is
constantly progressing, with or without them. And if you are looking to
get into companies such as Microsoft, Apple or Google, then you need to
be able to handle difficult tasks with relative ease.
Initially, none of us are good at anything really. Years of mistakes and bugs and hundreds of hours spent with knowledgeable people helps us become better at any job and in life. And that requires constant effort to keep improving your skills.
2. If you value your personal time
This job can sometimes take a toll on your social life. Working with large teams of people leads to unrealistic deadlines sometimes and even seemingly impossible tasks. Big project due next week and your lead read the specifications backwards? These things will happen, and often.
I've had jobs where I found myself working Mon-Sun straight for months
at a time. Jobs where you go home, take a 1 hour nap, then jump on your
laptop for the hourly meeting that is scheduled. It's tough, and not
really rewarding in that moment. But it's the reality of the job.
When you work on a high traffic website, things happen. Visitors are
lost, competition springs up, and really bad bugs are found lurking
around corners.
Alot of times you will be taking your work home with you. Not necessarily doing the work from home, but at the minimum trying to figure out how you're going to implement it. My first big project was creating an AJAX chat application that could be used across a whole suite of websites. I had 0 previous experience with anything web related. But I was a young guy and the managers wanted a fresh take on it.
For 2 weeks, my entire life revolved around this project. Being told
that a major corporation paid big bucks in advance to advertise on the
app did not help. About 60% of that project was figured out at home at
some point in the weekend. Notes were taken and plans were made, then on
Monday morning in the office I could get to work and ask advice from my
fellow co-workers.
These type of projects happen constantly
sometimes and some people just can't handle that level of pressure. I
for one, could not and it has definitely taken some years in order to
get my skills up to par for complex projects. Some people might think I
was crazy to not just come in Monday and quit my job. Well, every Monday
I came in ready to quit my job. But then you would end up letting alot
of people down and I'm not one to run away from responsibility because
it's a bit tough.
There is a reason why many of today's major tech companies offer their employees sleeping areas and full kitchens. It is because they are going to be there a while. It's a silent agreement. The company knows it, and the employees know what they're getting themselves into and they continue to flock in, because personal time has many different meanings to different people. Do I wish I could spend my day with friends coding awesome stuff? You bet I do.
3. If you just want to make money
A good software developer is worth their weight in gold. And at current gold prices, that should be a decent amount. That's not always what they are paid though. The median average income for a software developer is roughly in the 80-90k range according to various online job statistics sites that I've checked. Which isn't a bad salary. But, unfortunately, you probably won't make that for a while.
In my relatively short career I've seen way too many people unprepared
during interviews, unprepared for the job, and they get waved by until
the right candidate is found. Eventually those people end up working for
some small company and making the bottom 5%. Many of those numbers are
also based off of very large tech companies that can afford to pay their
employees well, but in return require a higher level of skill. If you
work for Google or Amazon for example, you will probably not have to
worry about costs of living for a while. But that's if you work for
Google or Amazon, and there is a long waiting list in the department.
Those companies make it a point to hire top level talent to work on the
future.
I've had good friends who have tried to get into the Software Development industry. A year after, with no luck or prospects in sight, they head into a different field. I've seen plenty of people come through making 40% less than what I've made, mainly because they had not worked much in their lives or maybe the interview didn't go so great, but management figured they can get someone for cheap and pick up the work as they go along. You can be paid alot in this field, but unlike those dreams of grandeur from college, you might be tired of the job before you can get to that point.
4. If you have seen The Matrix too many times
Or any other film where computers work in awesome and awe-inspiring ways. Sometimes the job is not very glamorous or flashy to the outside world, but it's equally as rewarding as anything that Tank ever did in the Matrix. And also let's be honest, those guys weren't doing anything that exciting anyhow. Loading a "Jump" program sounds like typing exe jump on a terminal to me. I'm normally good at watching movies with their own versions of user interfaces, but when I see someone in a film reading 1's and 0's, I cringe a bit.
This is more or less how I start a new project normally. Nothing too crazy or exciting about it. I hit "New", and before my eyes a new website is created for me. Then I fill in the gaps. I mean, I get it, the movies wouldn't be too exciting if we just saw people staring at a screen for 2 hours, just to realize they had a semicolon in the wrong place.
The real day to day job of a full-stack web developer probably involves less coding and more meetings with designers and business people. It's still exciting to participate in the creation of software that could potentially be used by millions, it's just exciting in a formal office way.
5. If you don't love it
If you love what you do, then you don't work a day in your life. I personally love this career, which is why I spend 12+ hours a day doing it, learning about it, becoming better at it and talking about it. Just as you would want your doctor to care about his patients, you would want your software developer to care about the websites, phone apps, and desktop apps that they build. Too many people spend way too much time hating their jobs and just going along with the motions. If you get excited whenever you talk about the next project at work, you're probably in the right field.
I'm sure no astronaut ever said "space again?". Sometimes it sucks, sometimes no one knows about your accomplishments that day, sometimes you fall asleep doing it and then end up typing nonsense which you try and decipher the following day. If any of that sounds like something you wouldn't want to deal with, you probably shouldn't become a software developer.