I’ve been perusing Software Engineering social media quite a bit lately. It seems like every day someone posts a topic asking if they should become a software engineer.
Response are usually laden with “do you like puzzles?” type of responses as a means to filter out a person’s intellectual capacity before they pursue the trade. Don’t forget the guy who always issues a stern warning that the Software Engineering industry is being ‘oversaturated’, and that the ability to acquire a well paying job is reserved for the select few.
Despite the barriers, some press on, and I’m glad they do. As someone who has been in the tech industry for nearly a decade, I can honestly say right now is in my opinion, the best time in history to become a software engineer. And in this article, I want to tell you why.
Engineers are Multiplying Factors
Back in the days of cobol programming and mainframe computing, it took a vast number of highly trained engineers to produce what seems like today as trivial software.
This reminds me of a quote from Mark Zuckerburg in a talk he gave while guest lecturing Harvard University’s popular Introduction to Computer Science course CS 50. He mentioned at the time (2005), that engineers had an unbelievable amount of leverage to build large scale systems that could reach the world.
Think about it, 30 or 40 years ago it would take an entire team, consisting of sometimes hundreds of software engineers, infrastructure engineers, devops, security consultants and many more professionals to build out an application that Zuckerburg and his Roommate build in a few months. Two people can build a service that is used by thousands, and eventually billions.
Thing’s have continued to accelerate since Zuckerburg’s era with new Cloud Service providers like AWS making this process even easier. Engineers in today’s world can build an application in a few weeks or months and deploy to the cloud, ready to be consumed all over the world. Using established tools to build and provision resources for global deployments is something we all take for granted.
When in human history has such a marvel ever been possible?
The amount of time required to build and deploy these applications is a fraction of what it was just 30 or 40 years ago. We are simply living in a different time governed by different rules.
These rules mean that sometimes a developer can be valued differently than classical professions in society. The ratio of productive value that a developer can produce greatly exceeds a profession like a general practitioner. This is because a developer can build products that support and enable millions of users. Whereas doctors require to work with one patient at a time – but still provide tremendous value to them.
Tools, tools, and more tools!
The world we live in now, its kind of special. Software Engineers of today have access to so many more tools, debuggers, stack overflow, google, and many more tools that make our lives easier.
I’m not that old (33 in August), but I still remember the time of having to actually read JavaDoc in order to understand some String methods. This is largely unheard of today; developers (including myself) have answers at their fingertips through the vast repository of the internet. The end result is a much more productive engineer.
Today, we have access to thousands of tools that improve our quality of life, offer better developer experiences, make accessing information easier, and many many other benefits.
When you compare this to 50 years ago when developers were still writing code on paper or punch cards, you get the idea of how far we come.
What I’m trying to say here is that we have tools available today that directly benefit our productive capacity. They make us faster at solving problems, more efficiency in discovering alternatives, and overall more self sufficient to pick up a new piece of technology and learn about it rather quickly. When in human history has this ever been possible at the speed it is happening today?
I think the main driving point here is that a single, talented software engineer is such a powerful resource because they can drive vast amounts of output across the company and world. This principle reflects itself in some of the high paying salaries you find of workers at Silicon Valley Startups and large tech corporations.
For me, I find this to be a very exciting time in the technology industry. The work I do is rewarding and filled with pleasure knowing that the systems I build and the decisions I make have an impact on others around the world. How many people get to say the same of their day job?