I’ve been a developer for over 3 decades. I remember
prompt statements in dBASE III, M68k Assembly and those awful Borland tools. Documentation was provided in large printed binders and often left a lot to the imagination.
Things got better in the late 1990s and early 2000s, but it wasn’t until the late 2000s when things really started to heat up. Sun Microsystem’s early 1990s slogan “The network is the computer” became a reality with the rise of cloud computing, object storage and slick frontend/backend stacks.
Developer tools, developer ecosystems, and the developer job market exploded. Gone are the brutal days of dBASE III and M68k Assembly. Tools like Git and Visual Studio Code with their plethora of interoperability are widespread, and the services and frameworks you can use to develop software are incredibly mature and well-documented.
There are whole communities surrounding individual technologies, as well as freely-available tutorials and guides on the Web. We now spend more time focusing the problem we’re trying to solve with software, and less time on how we’re going to get the solution to work. In other words, we can do far more with far less today, and enjoy it at the same time.
I always thought that there’d be a time where the development skills of my youth would wither and die. After all, I’ve seen friends burn out and become managers that barely grasp the technologies their developer teams use. But in my case, teaching has afforded me the ability to choose extracurricular development projects that kept growing my skillset. I’m at the top of my game and still growing.
While the shift to cloud computing and containers/microservices seemed like a natural evolution to me for backend software development, what surprised me the most over the past 3 decades was the rise of UNIX and open source software. I never thought there’d be a day when so many people knew vim, or spent most of their day in a Linux or macOS terminal. I also never thought that there’d be so much permissively-licensed open source code on the Web that allowed us to save massive amounts of development time. But there is, and it’s awesome.
So what should you do if you want to be a developer today?
- Experiment with it online to see if it’s your thing. Go through a few free online tutorials and see what development is all about.
- Take a college or university program that focuses on software development. This will give you the incubation time needed to build key thought processes used for developing software, as well as expose you to the tooling used for particular types of development.
- Question everything, and go down rabbit holes. Employers hire thinkers. Tutorials only show you how to get a minimum viable product (MVP) for a particular technology. You need to apply that basic knowledge to other situations (researching what you need from online documentation and communities where necessary) in order to build transferable development skills. After several of these applications, you’ll also start building skills related to software design.
- Stay caffeinated.
Software development is a great profession and a way to create systems that change the world for the better. The following video from the Linux Professional Institute captures this sentiment perfectly: https://www.youtube.com/watch?v=J4ZYx1zsUjs