I was just reading about people programming in their forties or later and was pondering about my experience and all the talks I had with friends with the same occupation – software programming.
It is challenging, and the excitement of handling something not tackled before due to scale, budget constraints, invisible bugs in the software or working with custom hardware is very empowering.
Leaving the craft aside here are the reasons I still love designing, writing code or managing teams of people doing it:
- There is gratification in short step releases and with iterations leading to a new product, more so
- The final product is a compromise on many levels and that is a lesson of every working day. What you envision is molded by change in requirements or people’s abilities or customer’s whim or time constraints.
- You don’t write software, most of the time you deal with people writing software and the broader their experience the more amazing is the final product
- The obsolescence rate is incredible high with technologies changing every few years. You are always in learning mode but mostly learning your weaknesses in evaluating, thinking multi-step processes and testing edge scenarios. Software programming is a demo of the fallible human thinking against the machine.
- In the end, programming is a creation endeavor. It is messy, requires a lot of energy and many times you are like Sisif, going through the same effort until someone approves it.
- You learn humbleness, by testing your code and discovering the cases not that much encountered in real life. It forces your thinking into corners not often visited.
- I see it also like a game, when you start with some ideas/metrics that have to be fulfilled and build around it, bringing together reinforcements in order to hold the fort.