Power and threat of specialisation
Today I would like to share some of my thoughts about a book that I have recently read. The title is “Zero to One” and it was written by Peter Thiel. It is a very interesting position because it talks about building a big company from a successful entrepreneur and venture capitalist perspective. I have huge respect for the author. The list of his achievements is very long, so I would say his approach has been proven working in the real life.
Although most of the concepts explained in the book make sense to me, both based on the examples given in the book and my own experience, there is one thing that particularly bothers me and that I need to digest and see what it could mean and how would it apply to my own situation. We all think that our situation is unique and general laws do not apply to us, but in reality, they do and sooner we realize that we can just pick up a solution instead of building our own tailored version, sooner we will start benefit from the pool of already available solutions. In software development, I would say thinking about your problem like something very special, that you have to deal with in a way that nobody has ever before, usually leads to a clumsy code super hard to maintain. On the other hand, if you just repeat stuff only, you might not give any value to the world. The unique part should be just the core of your domain, not every single interface like messaging or payment in sports events aggregate app. Anyway, this is a large topic so I won’t get into it deeply in this text and will focus on the topic which is my problems of understanding Zero to One and how it applies to my life.
The thought that really got me thinking was the application of the “Pareto principle” also known as the “80/20 rule” to all aspects of our professional growth. The starting point was that in a Venture Capital company, most of the revenue comes from one investment, which as a result requires the most focus. Going further with the thought this could apply to developing your skills. The world goes toward more and more specialisation. We are good at a particular thing and this is the one that we provide value to society in. All the other skills that are outside of our expertise area we can exchange. It can lead us to think that we should push one skill and invest into it all our attention and barely touch the other areas that are not tightly related to it. The first problem that I recognise here is the definition of our area of expertise. We can say we are specialists in Software Engineering and this is super broad and consolidates a lot of smaller topics that could consume all of your time each. So is being a Software Engineer a good area of expertise? Maybe we should go deeper and specialise only in mobile development, which again consists of Android and iOS, so maybe it is a good idea to become an Android expert, but Android itself is a huge framework itself, maybe we should focus on only visual aspects of the platform and in this is also divided into few different approaches like traditional non-reactive pattern, Data Binding Libraries, Compose… We could dig even deeper and it would be probably hard to find the limit to the area that you can dedicate your whole career to, but maybe it is not the point.
I agree that we should excel at something we do, but being proficient in multiple areas without specialising in one topic also has its benefits. I love broadening my horizons. I believe that touching various topics will give me a better understanding of the whole system that I work in. I aim to build my career by establishing a specific area of expertise and gradually expanding my knowledge and influence. From Android, I prefer to focus on more abstract concepts that are implemented in the platform itself, rather than delving into its core. Architecture is one way to escape a small, closed world and become aware of the more abstract ideas that are universally applicable. Another way I explore is by getting to grips with networking, which is also crucial in every app. The next step would be to expand the area of expertise to lead a team in achieving a bigger goal. A CTO of a company can’t ignore team management even though he grew up in software development. This is one of the reasons I read “Zero to One” instead of reading some Android core implementation. I firmly believe that it is better to truly grow from the area of expertise instead of digging indefinitely and building a wall around it, with only small windows that, via some interfaces, provide us contact to the world around us.
A similar thing could apply to my language curiosity. I enjoy learning new languages, and I don’t mind if I don’t master them as long as I can communicate freely with native speakers. Of course, I put the most effort into English, but if I had a chance to live in Spain or France, I would love to focus on those languages as well.
One of my early teachers once said that we should know everything about something and something about everything. I believe that caution applies to building a professional career. We need to recognise the most significant opportunity and focus on it, but it doesn’t mean that it has to be narrow or that it is fixed for life.