In a recent article on TechCrunch, Jon Evans discourages developers from “going all in as a specialist app developer”. He argues that the relentless growth in mobile has ended. He points to the slowing growth of app downloads and the stagnation in the number of apps in the iOS App Store as proof points. Combine this new reality with the growing popularity of cross platform apps (due to rise of React Native), and Jon makes a compelling case that mobile specialists may no longer enjoy the benefits of exponentially growing demand.
But I’d still feel at least slightly uneasy about going all-in as a specialist app developer if I was early in my career. Not because the market’s going to go away … but because, barring some new transcendent technology available only on phones (maybe some AR breakthrough?) the relentless growth and ever-increasing demand of yesteryear is, in mature markets like the US, apparently gone for the foreseeable future. There’s still some growth, but it seems that’s being sopped up by the rise of non-native development.Jon Evans, Wither Native App Developers, TechCrunch 4/14/2019
If this is the reality we now live in, what should this year’s graduating class of software engineers focus on? Should they hang their hat on a different trend? Should they become a generalist? My recommendation is to follow the lead of the best in the industry.
Pursue Craft Like a 10xer
It is widely accepted that the best developers are 10 times more productive than an average developer. These “10xers“, as they are called, are always in high demand. So, what is it that makes a 10xer?
In my experience, the best software developers in the world are passionate about their craft. They have a strong foundation in software engineering and have developed a deep understanding of modern architectures and software design. 10xers love to create and excel at understanding problems. They translate ideas into working software and continually hone their technique. They make their editor sing. And many take great pride in making their keyboard sing. It’s a badge of honor to never take your hands off the keyboard.
This foundation allows a 10xer to excel in any era and with any language. As mobile reaches maturity, 10xers won’t struggle to find their next gig. Language to a craftsman, whether Swift, Android, Python or Java – is simply a tool. The underlying principles of craft are the same – regardless of language or framework.
Undoubtedly, there are craftsman who have taken advantage of the mobile trend and become specialists for the past decade. In fact, these craftsman were likely at the forefront of the trend. Their mastery of craft enabled them to become experts quickly.
There are others, however, who have simply memorized iOS or Android syntax. They have learned to code but lack a true understanding of the principles of software engineering. These “specialists” might have figured out how create apps, but, they will struggle to move on to the next trend. They lack the foundation needed to be an engineer. Their narrow focus now limits their prospects.
So, if you are an aspiring software engineer, take heed of Jon’s advice. Forget “going all in as a specialist app developer”. Instead, go all in on mastering your craft.