I’ve been thinking of trying to apply the concept of “moats” from investing to knowledge acquisition.
A business moat is a competitive advantage that protects a company from its competitors, helping it maintain market share and profitability over time.
Suppose, as a developer, I want to learn skills that are like a moat.
- They are in high demand and well compensated
- They have, by nature, limited competition
- Both (1) and (2) persist over time
So for (1) the skill needs to be in high demand by employers who are willing and able to pay well. For example, AI researchers are currently in high demand by big tech firms. They are paid extremely well, presumably because those tech firms can afford to pay well for them and because those tech firms have a strong incentive to pay well for them – since those skills produce profit or some other desirable outcome(s).
For (2) the skill needs to have limited competition. If there is too much competition, then the pay will be driven down and/or there will be fewer available jobs in the field. It seems that skills that are difficult and/or time consuming to master should be less competitive. By their nature, fewer people will be able and/or willing to master those skills.
For (3) the skill needs to have persistent high demand and low competition. Demand needs to persist longer than some specific framework’s or library’s “hype cycle”. I’m looking for skills that help me maintain my employability and maximise my income over a period of years or even decades. It’s no good spending years to master, say, AI research, if by the end of my studies, millions of other competitors will have already done the same thing, and now the job market is flooded with AI researchers.
Maybe some will argue that this is impossible and that the very nature of software development is that it is completely mercurial and constantly changing. But it seems to me that it shouldn’t necessarily be the case. Doctors, lawyers and engineers don’t appear to have to constantly re-learn their entire corpus of knowledge. There is a core knowledge set that they acquire early on, through rigorous training, and later learning is just smaller refinements or additions to that core. Shouldn’t it be similar for developers? Our field has existed since the 50s or even earlier. Many of the core concepts such as algorithms and data structures don’t appear to have changed radically since that time.
Focussing on the “moat” aspect, I am looking for some skills that are profitable enough to be worth mastering, but difficult and complex enough to master that they naturally limit the competition.
For example, basic HTML/CSS is a very broadly applicable and useful skill. But it’s also very easy to learn and master. Thus, there is already much competition in that space. So just learning basic HTML/CSS won’t boost my employability much, because so many other people can do it easily that I will have many competitors, so there are fewer job openings and those jobs pay less.
In the opposite extreme, the deep internals of Windows NT would be difficult to learn and master, and thus have very little competition. But it would also have very limited applicability, so it would not help my employability much. Probably only a tiny handful of employers would need that skill, and could not afford to pay much.
At the extreme intersection of applicability/usefulness and difficulty might be, say, AI research right now. Very powerful, very well compensated and very difficult to master (requiring years of post-grad study and doctoral research). But that skill might have limited persistence. Yes, it’s hot right now, but will be it still be hot 10 years from now? If I begin studying AI right now, how do I know it will still be useful by the time I finish studying it? Given it might take years or even decades to really master it, surely I want some likelihood of a payoff. Otherwise I’m kind of gambling with my career, am I not?
So I am looking for some skill(s) which are at the intersection of applicable/useful, difficult/anti-competitive and persistent/durable.
Sorry for the long post and thanks if you read this far.
Also do you have any broad critiques of my thinking? Am I too pessimistic? Am I too optimistic? Am I focussing wrongly, maybe too narrowly?
Keen to get your thoughts!
