Software Developer vs. Football Player
This is a translation of the first blog post I have issued 10 years ago.
Being a software developer means that you are a knowledge worker. In other words, you will consume a lot of neurons. As Joel Spolsky said, you can consider this occupation as a liberal profession. Nevertheless, the technology is constantly changing, you need to bring new ideas, to learn new programming frameworks and paradigms. All these have an impact on your life. If you compare this to football players, unless you are a Totti or Buffon, to keep your engineering skills sharp after 50s, it is probably wise to look for a management job, for a job where you can use better the experience and expertise gained instead of learning the latest and greatest JS framework. Your could probably start a new business, start teaching, anyway something that could balance the pressure of spending 8-10 hours per day to implement the latest technology framework
If you are an average developer, most likely that in the first 5-10 years you have to invest a lot of work to build the right kind of experience, to be well positioned in the 30-40 decade, when the young wolfs are pressuring you, you most likely have a family that needs your time and attention or a hobby that keeps you busy. The look and feel of the apps is changing, maybe you will need to make with automation some of the tasks that you were used to make it manually, maybe there is a new parallel programming paradigm that come along with the micros. In short words, every 10-15 years there is a revolution in the concepts, like it was at the beginning the one moving from ASM to C.
Once again, a comparison with football players. At the beginning of the career, have a look to a good club that provides a fair contract and very good training. Learn and improve yours self. Second contract, try to seize a good contract (some responsibilities, a good boss, some promotion possibilities) that you make your careers solid. If you made the right decisions, you will be in the top team before retirement (that would be for developers maybe after 50/about 10 years before retirement). Or, at least, you will be in the right position to get a contract from a small team that looks for experience, where you can advice others and be considered a guru.
In this story is not about genius developers. They will always get a job and get the money from a certain company. This is just for ordinary people, like me.