On being a 50 years old programmer
November 27, 2016
In the struggle of being a more mindful human being I resolved to make a “future self introspection” about the things I invest my time. This post is part of that reflection, I would like to answer the question: what myself with 30, 40 years would like for the Jean of right now to invest his time?
What will I think when I’m with 30? or 40? Certainly I will like for the me of today to adopt technology and concepts which lasts. The forties Jean will not be happy if he has to learn a new way of doing the same every week.
It’s not a lazy thing say, there are so much things to learn in Computer Science that the one which stays changing the way of doing the same is simply plain unaligned with learning.
And what exactly is technology that lasts? Seems to me that technology that lasts has some traits.
Traits of enduring technology
- Tradition or replicability through out history
- Driven by committee (ISO like) or a benevolent dictator
- Disruptive productivity results
- Has pedigree, some very well known leader
Probably no technology will apply all those traits, but the one’s that apply some of them successfully will probably be a good deal to bet on it’s long term success.
Some of them that came to mind:
- Bash and binutils (replicability, productivity)
- Unix like operational systems (replicability)
- C programming language (pedigree, driven by committee)
- SQL (committee)
- Vim (tradition, productivity)
- Haskell (committee)
- Git (pedigree, disruptive productivity)
Beyond technology, probably it’s good for the forties Jean to focus on concepts, they tend to stand much longer than technologies.
- Design by contract
- Inversion of dependencies
- Test driven development
- Unix like services (micro-services)
- Architecture in general
- Algorithms in general
- Performance and optimization
- Computer Science theory in general
Much of the rest, seems to me, are trends and will fade away, much of the “high tech” we see now will probably fade, the way we building interfaces will most certainly fade, all those novel programming language that just has some new syntax sugar will (probably) fade as well.
I just hope I can adhere to this principles the most I can so to be able to remain as an relevant developer in the years to come.