The downside of being a programmer
I was a programmer for 16 years before changing to PM recently. Previously I’ve written about the plus side of being programmer. But as any other good thing in this world, there are downsides that are not discussed as often. In this post I try to mention some of them.
This is brutal honesty. It might be controversial and unpleasant but this is what I learned about a profession that I happily did for the better part of my adult life.
As of 2016 computer languages are pretty complicated for an average person. Not everyone with a great idea can make a great program. As the computers get more powerful, it will be possible to create programs in higher level languages which makes them more reachable for an average person. This can shrink the market for the traditional programmers.
Also as the artificial intelligence becomes more and more advanced (IBM Watson is promising), the computers can understand us better and this too can make them more approachable for an average person without too much experience.
You get a kid or go to hospital? By the time you’re back at work, the technology you mastered might be part of history.
Always on the run
In the information age, computer technologies as the devices which run this revolution are constantly improving. That means if your job is to deal with computers, you need to constantly keep yourself up to date.
Give me six hours to chop down a tree and I will spend the first four sharpening the axe. — Abraham Lincoln
This is totally true about programming. I usually spend about 1–3 hours per day learning new libraries, languages and APIs. Maybe I’m a slow learner, but you’ll hardly find any programmer who doesn’t Google programming-related stuff on a daily basis. Hacker news and Stackoverflow are the popular ones but the journey doesn’t stop there. The computer industry is constantly changing and it takes a lot of energy, time and effort to be at the top of your game.
Even if you have been to university and have a computer degree, by the time you graduate your knowledge is already half way outdated and you need to actively learn to keep yourself useful in the market. Sure the basic like the data structure, algorithms and operating system get outdated slower, but that GUI library you used to do your homework is probably deprecated or on its way to be replaced with something shiny.
It’s not necessarily unpleasant, but when your brain can’t handle this flow of information because of sickness, drama, aging or any other reason, you’ll be crippled at work.
Software development has become more or less an art of putting components together. Unless you’re developing these pieces, you’ll probably be able to manage without a computer degree. This lowers the entry barrier for programming jobs. Considering all the goodness of programming jobs, people from all trades want to work as a programmer. Therefore the competition is kinda tough even though the market is quite good.
I’ve worked with infamous musicians, risk-avoidant journalists, failed sportsmen and shy guitar players who were amazing programmers. Some of the greatest programmers I’ve met don’t even have a university degree. It’s more of an art than a learnable skill.
The profession is not totally risk free. There is a risk of internet addiction disorder and repetitive strain injury. Sitting all day long doesn’t make things better either. Our body is not evolved for sitting behind a desk and stare at screen. For example 2 years ago I started to feel headaches and after diagnosis it turned out that my eye gets too much pressure when staring at screen for long hours. I ended up with computer glasses but there are many who suffer from more painful problems in their back or neck.
Unfortunately depression, bad self-esteem, communication issues or passive-aggressive behaviours are not uncommon among people who spend the better part of their day with computer. I’m not sure if dealing with computer causes these issues or certain people find it easier to deal with computers. Nevertheless, even if you don’t have such issues, you need to be prepared to cooperate with colleagues who may have. I recommend this episode about developer mental health.
As the technology becomes more and more complex, our daily tasks are shifting from implementing algorithms to quickly learning a new tech and utilizing it in projects. It might be interesting to get new toys (or upgrades) all the time but over a long period it may lead to fatigue.
Programmer’s main job is like translation — they translate human language into computer language and vice versa. Too much dealing with computers, may degrade your communication skills. Normal human beings are not as abstract, quick, accurate and predictable as computers.
There is a risk that programmers find it too tedious to deal with people with all their “obvious” flaws and mistakes. This wouldn’t be an issue in a world where most people are programmers, but one of the reasons programming pays well is because it is hard for the majority of the people do be really good at it.
If you manage a product, be aware that programmers live in another world. It is very important not to suck at your job because it’s an employee’s market and they’ll most probably leave for someone who doesn’t. Programmers are sensitive creatures. Seek to understand them and they’ll do wonders because at the end of the day they hold the key to the powerful computers that define our modern society.