Don’t you ever become a programmer, this is the final warning. Don’t become a nerd that more than 40 years later, thinks it is “fun”. Makes people wonder, if you see what I mean.
Picture from my YouTube series “TDD på svenska”
The first thing that comes to mind is the frustration that you constantly have to handle. Naturally, frustration leads to anger and anger blocks analytic thinking which is precisely what you need.
Of course, all kinds of jobs have frustrations. Annoying colleagues, for example. But collaboration with people is in our DNA, unlike collaboration with computers. As a programmer, you need to deal with both.
The trick is to turn the energy that is triggered by frustration into something productive instead of anger. You know you're successful when you don't notice that it is way past bedtime.
In other words, you need the patience of a saint, every working hour of the day.
A small detail can really ruin your day, welcome to life as a programmer. Forgot to set the load balancer to sticky session mode, did we? Sorry, thousands of users get intermittent errors. It will cost a couple of millions in lost revenues. Too bad we released that on a Friday afternoon.
A system has thousands of details that can mess up really well and you can not possibly know them all since you didn’t write all the code. You can only hope that the tests have your back.
So you need to really be obsessed with details, or should I say, respectful. Should this not be your thing, perhaps you can be some kind of architect instead.
Most areas involve development of the field that you need to keep up with. But in our field, it is just crazy how fast technology changes. Especially since the internet became a widespread platform for sharing all sorts of ideas, products and services.
To know what is relevant and what is not, is a true challenge but one thing you will know for certain, is that if you stop learning, your skills will eventually become irrelevant. Your options are then: become a manager or retire.
With that said, there are skills that will always be relevant, such as well crafted information modeling.
Being called a nerd is no longer an insult but there are still consequences from it. If you enjoy programming so much that you stay on the job, you will eventually find yourself programming in your spare time and attend after work events. People will comment on you doing job things in your free time. You probably want to get a life but the nerd in you will call you to the keyboard.
Should you want to start a family, be sure to explain this to your future spouse.
This may sound odd, but I hear a lot of complaints about unsolicited approaches from recruiters. Why would you be annoyed by job offerings, isn't that a good thing?
Turns out that it can be too much of that as well. Also, some feel that those connection requests on LinkedIn do not understand what programmers are looking for. Good coffee and breakfast is nice, but not enough reason for a job switch.
I agree that talking to a person in London with a heavy Indian accent about a contract with a company in Stockholm, next door to me, feels a bit odd. But we live in a global world.
On the other hand
If you are one who easily turns frustration into energy.
If you actually can't get enough of details, because the nerd in you craves them.
If you smile when discovering just how deep a rabbit hole probably goes.
If you enjoy spending free time just to try something out and then drop it.
If you can let the good and respectful recruiters outshine the clumsy ones.
Then probably you should become a programmer. Or, maybe you already are one?
Per Lundholm started a long time ago as a programmer by writing code in assembler and Fortran. Over the years there were of course other languages and today Elm is the favourite.
He has also taken time to study psychology to better understand how people use digital tools. Another aspect of human behavior that interests Per is the group dynamics of a team.
Per is both interested in how to write good code and how people best collaborate to achieve goals together.