Can you turn an old monkey into a sofware developer?
Well… I am not being totally honest here.
Small Lie #1: I am not 50.
I am in a my late 50’s and, I guess, that makes me an old monkey. Old but hopefully wise enough for others to find interest in my opinions.
Small Lie #2: I was a software developer in the previous century.
“Previous century”. Now that sounds old. So I am not becoming a software developer but I am re-becoming one because I had stopped developing software in the mid 90’s and spent the following 25 years in management and consulting. Still working in the IT business but not close to software development.
I got into computers in the early 80’s as I was finishing high school, graduated from university with a bachelor in electrical engineering with a computer engineering option (computer engineering was not a full fledge program of its own back then). Started my career as a software engineer developing code on a 16-bit computer with a whopping 128Kb of ROM and 64Kbof RAM which was considered a lot back then (For the younger readers, K means 1,000 as in 128,000 bytes. I know this sounds unconceivable when letters like Gb and Tb are more common).
Then got swallowed into the vortex of corporate ladder climbing, did a MBA to boost my management career, became a consultant in the very niche vertical of utility power grid management systems, made a good living and then… it became less fun.
Small Lie #3: I did not just decide one day to return to software development.
It came to me overtime.
Almost a decade ago, I started a project on the side. Some people call it a side hustle, some call it a hobby. As another hobby (a true hobby this time), I do wine tastings. I was looking for a tool to help organize all my tasting notes and I had the flash that an iPad would be a great tool to take notes, organize them and, why not, share them with other wine lovers like me.
So you can say that I started becoming a software developer (again) ten years ago, in my early 50’s…
Being a former software developer, I knew that I could build this on my own. But oh boy, did the software landscape change in 25 years! The Internet was in its infancy when I stopped developing software. I was facing a tremendous learning curve… again. But nonetheless, I dove into it and learned so much.
Advice #1: Find yourself a project to work on.
It does not have to be something big. It just needs to be something that is useful to you, motivating and that can be the opportunity for learning.
When I started on my project, I had heard of HTML and PHP. So I googled those acronyms and found W3Schools.com (by the way, I am not sponsored by them). There, I learned about HTML and using PHP to generate it on a server, Javascript (and jQuery then AngularJS and finally React) to do stuff locally in the browser and CSS (and Bootstrap) to make it pretty. Because I figured that I would need some sort of database to store my tasting notes, I learned about SQL and discovered MySQL. Because I wanted to have my website accessible anywhere, I needed to have a server sitting on the internet and it led me to discover Amazon Web Services and the entire suite of cloud base computing resources. Because I wanted to use an iPad, I looked into iOS development (Swift, Objective-C and all the iOS kits), then to make more portable to Android, I discovered that one can run Javascript in a WebBrower module in iOS which led me to using Sencha Ext and then React Native.
Necessity is the mother of invention as the proverb goes. For everyting else, Google is your friend.
Advice #2: Get involved in the open source community.
Along the way to develop my application, I obviously stumbled upon the tremendous wealth of open source software, and the side benefit of learning about GitHub repos.
My web application was originally based on the Zend Framework (ZF). I chose that one because I stumbled on that one first. I could have stumbled on Symfony or Laravel but once you start digging and investing time into one framework, it just gets harder and harder to switch to another one. Since I had integrated many community open source ZF modules, when ZF became Laminas, many of these modules needed to migrate to Laminas and many of them not longer had maintainers. Necessity being the mother of invention, I took upon myself to migrate some of these modules and created the LM-Commons organization on GitHub with a few other contributors.
I searched for a lot of answers on StackOverflow and posted a few of my own. As I was getting more experience and knowledge, I started providing answers where I could.
The Open Source community was a great help. It’s only natural and one’s duty to give back to it.
Advice #3: It’s more about the journey than the destination.
I don’t really like that proverb that much.
It could be misinterpreted that the destination does not matter. Without a destination, one does not enter into a journey. My destination, the wine tasting app, is still important and is still my motivation to move forward. However, I have realized that the journey has brought me new expertise, new experience, new knowledge. I have rediscovered that the software development world is really fun and rewarding. At least to me it is.
Developing software is like other arts & crafts. It is a lot more industrialized today than in the 90s but still, it allows me to be creative and problem-solving. Seeing the tangible results of your work is a great reward.
Not reaching the destination is not a failure if you look at how much you have learned along the journey.
Some final thoughts.
Can you turn an old monkey into a software developer? Most definitely, if one is driven by passion and is driven by learning new skills.
Now that I am at the end of my consulting career and before getting to the end of my career period, I feel ready to venture back into the software development industry. I may not be the whiz kid that knows the latest technology, but I have more breadth of experience and, I hope, more wisdom.