Originally posted in Anssi's blog
The half-life of a programmer is short. According to this New York Times article from 1998, only 19% of programmers are still working as programmers 20 years after they started their career as a programmer.
Six years after finishing college, 57 percent of computer science graduates are working as programmers; at 15 years the figure drops to 34 percent, and at 20 years — when most are still only in their early 40’s — it is down to 19 percent.
This same phenomenon is still alive today. Programmers drift away from their original work and move to management and other roles that have little to do with the programming profession.
I have always thought that this is sad. In my mind, management is something that almost anyone can do. It does not require any special skills or knowledge. Take a 2-month course in project management, and you will be able to do a reasonable job at it. Contrast that to the art of programming, which is a specialised skill that requires years of studying and practising before you can call yourself good at it.
Sadly, some of the best programmers get “promoted” to management roles. In this blog post, I explain some of the benefits of staying hands-on with programming throughout your whole career.
Things change a lot in the IT industry, and the career of an IT professional requires constant learning throughout the whole career.
Let’s consider two different strategies that you can take when it comes to learning new technology during your career.
The first strategy is to stay on the same technology platform and hone your skills in it.
The second strategy is to take more significant leaps and choose to keep current with the latest development trends and innovation, regardless of where it happens.
Let’s consider the first option first. You have some hard-gained experience on platform X and you want to keep flaunting that. This platform might not be the most fashionable right at this moment. It’s not where the most action and innovation is happening right now. Take Java, and consider that as an example. Java is still the most popular language today, but one would argue that it’s no longer the most fashionable one. It’s not the place to be where the innovators are at the moment. But because it has been hugely popular for many years, it will undoubtedly be in high demand for 40 years to come. Because of this reason, you will not be out of work if you choose to continue working on the Java platform.
Surprisingly, even COBOL which was created in 1959, continues to be relevant in some industry sectors. Apparently, Cobol developers are still in high demand. If you now Cobol and money is your primary motivator, it makes sense to continue and exploit this opportunity until it dries out. They are predicting that Cobol will stay a significant language for the next 20 years.
There might be good money to be made if you stay on a legacy technology platform, but this could be a boring strategy to take. The chances are that you will not enjoy this! A better option would be to keep learning new things because that is a way to stay motivated in your work. Let’s explore that option next.
Some of us want to keep up with the latest technology. We get bored if we need to work with the current tools and frameworks for more than a year or two. We want to learn new programming languages, new programming paradigms, and new tools and libraries.
If you are one of the few, who has not given up for the temptation to become a Manager, you have likely kept on learning all the time, and that has kept you motivated to continue in a technical career.
There is a study of StackOverflow data that explores the relationship between ageing and programming knowledge.
We observe that programmer reputation scores increase relative to age well into the 50’s.
According to this study, your programming related knowledge increases with age. Programmers can learn and acquire new skills and knowledge well into the age of the 50 and older. Learning is not only a privilege of the young.
You can move into a completely new technology platform if you want. It can require significant investments of time and effort to learn the latest technology, but rewards of learning can be marvellous. You will be again in a place where the primary action is and where the bets of startups and innovating companies are. This kind of leaps in learning can be extremely motivating.
It feels like a promotion when you get an offer to be a manager. You have worked hard to become an excellent developer, and the management has noticed this. Your boss knows that you are the best in your team. One day there is a management position that the company need to fill, and they offer this position to you. What do you say? The job is challenging, and if you accept to take it, you will not have too much time for programming any more. Do you accept the offer and become a manager?
I decided to say “yes” when my boss asked this question from me some 20 years ago. I never wanted to be a team leader, but still, I accepted the job. It feels like promotion, and as an ambitious person, it was too hard for me to reject the offer and challenge. That said, I have never regretted making this decision. I learned a lot by taking the time to learn Scrum and in doing my best to lead a development team.
All the time, I tried to keep my hands dirty in programming. I had my side project with, and that kept me busy during my free time. Despite my efforts to stay hands-on with programming, I was not learning programming related things as much as before.
One can argue that my programming career was in decline because of my decision to go to the dark side of management. The temptations of the dark side are the reason for the short half-life of programmers. If you stay in a management role for too long, and you can no longer compete with the young fresh-out-of-school developers that are coming to the workforce.
In my case, things turned out good. I decided to leave my day job and start my own business, and that again involved a lot of coding.
At the age of 40 or 50, you will have more time in your hands than before. Consider the following:
Your kids are already teenagers or adults. They might have moved out of the house already. , In any case, they are not spending much time with you any more. This is great :-)
Your marriage has gotten old as well, and your partner does not require much attention from you any more. This is also great.
During your 20-30 years of professional life, you have gained a lot of expertise. You know about corporate politics, how businesses operate, how to do teamwork, how to recruit new people, how to train junior workers, etc.
You have the soft skills that the younger workers are still missing.
At this age would be the perfect time to start a business. According to research done in 2018, The Average Age of a Successful Startup Founder Is 45.
The founders of successful startups are indeed this old, and we need to debunk the myth of the young entrepreneur.
Relative to founders with no relevant experience, those with at least three years of prior work experience in the same narrow industry as their startup were 85% more likely to launch a highly successful startup.
I realise that the startup game is not everyone, but for anyone who has dreamed of having a business of their own, this could be the perfect age to pursue that dream. You have more time than ever in your hands to make it happen, and on top of that you also have the work experience to increase the likelihood of success.
I started my first business at the age of 37. My open-source side project hobby started getting so popular that it made it possible for me to earn my income from it. I quit my day job and pursued my Flowplayer project full time as a business. This adventure as an entrepreneur lasted for ten years, but then, after some twists and turns, I exited from Flowplayer two years ago.
Today, I’m working as a Freelance developer and enjoying my work more than ever before. I’m again focusing almost entirely on programming.
Being a programmer is great, and your career can take many shapes and forms. You can continue programming for as long as you want. You have the potential to learn new skills and gains knowledge for as long as you need. Starting your own business, or switching technology platforms, are options that you can basically at any point during your career.
Just do it and enjoy the ride!