- A Programmer's Life

What are the darkest truths about computer programmers?

How do you stay positive and not let them crush your spirit?

The darkest truths are these:

  1. We have to constantly keep up to date with technology. It just becomes harder as we age.
  2. We’re very good at problem solving and if given enough time we can come up with a quality solution. However, programmers have deadlines to meet. So, there is always conflict with quality versus time.
  3. We feel sad about life just passing by because our most valuable time is spent working and thinking about solving programming projects.
  4. In our young days, programming is passion and fun. Once we mature and have family, programming is just a job.
  5. We do not like meetings. It’s not because we don’t like to communicate or we are introverts, but because meetings drive us away from our thought process and valuable time completing complex assignments. As I mentioned before, we are constantly thinking about solving programming projects.
  6. As a developer, you are always behind when it comes to (new) technology. It becomes harder and harder to learn new technologies since they have longer learning curves.
  7. Its pretty exhausting (especially when you get older) to keep learning a working life long. Its hard / almost impossible to become really good at some technologies because there are simply too many, and very fast replaced by a even newer technology
  8. The business is not learning from its mistakes. Every new project I'm on (at different companies) its the same song: managers in general don't have a clue, but they do make the important decisions.
  9. Companies focus too much on pure technology knowledge when doing interviewes, instead of looking for the best ‘problem solvers’.
  10. The industry becomes more and more a ‘software fabric’. They prefer as much as possible being standardized and automated, including the people. The less creativity of the people, the more they like it. Not my idea of having fun at work. The longer you are in the industry, the less fun it becomes. Its nowadays just completely different than in the days when I started (almost 15 years ago) and what attracted me to the profession (problem solving).
  11. People outside the software development world just dont have any idea what your job means (‘oh, so that is something with computers?’)

Even the best of us are tired, often underpaid, somewhat arrogant, and anti-social.

We are asked to spend a good portion of our limited lifetimes doing something complex enough that most people will never understand what we do. Because they do not understand it and we cannot explain it, we are either looked at as geniuses (which is a lie) or some kind of strange hermit (which is closer to the truth).

We do what we do because we love the challenge of problem solving.

But as you get older, you realize that companies treat us as a commodity to be used and then cast aside when something new comes along. The irony is that the new does not produce better code. The processors have, in principle, not changed - so the code needed hasn’t either.

For example, 
C++ vs C. Has C++ produced better, more maintainable, code? 
No. 
The overall quality of the code remains the same, except now C++ makes it more resource intensive. Even worse, C++ is such a mess that even the best trained do not have a firm grasp on the entire standard.

Another: 
Java. 
I was there 20 years ago when it came out of nowhere promising to change everything. 
It fell short, and now Oracle claims it as property, suing those that try to recreate it. 
Another wasted decade or two, chasing your tail - because now we fall back to C and other leaner languages when you work with embedded processors with a lower power requirement.
Yet, as soon as you stand on practicality rather than whatever is new and fashionable, you are expendable - which is why many programmers either are promoted into other areas or retire by their 40s.