Originally published on Medium
Should I be an expert or a generalist? This is one of the most common questions I have been hearing and seeing on the Internet for a long time. Certainly, at some point in your career, you will come across it. Three years ago, I asked myself the same question, and one year later, I finally was able to answer it.
At the time, I was a web developer and designer. I had worked as an “IT specialist/consultant” for almost three years. I would say I had a certain level of knowledge in a general way. I knew a little bit about each area: infrastructure, networks, programming, web design, and back-end as well as front-end stuff. Actually, the last terms didn’t exist at the time, or at least they weren't so well-known.
Throughout this post, I will share some thoughts and points of view on this.
We are living in an era of fast and continuous changes. Things turn worse in the software developing field because we are constantly seeing updates and changes everywhere every single month: tools, languages, frameworks, libraries, design patterns, paradigms, approaches, etc. This really causes us fatigue and stress and sometimes makes us feel as if we are staying back on the cutting-edge stack or tools.
This huge growth demands that you make faster decisions. You have to decide what you want to be, either an expert at something or good in different areas. If you make this decision early, you will save time, money, nightmares, and finally, find your right path to get closer to your biggest dreams.
Have you heard this expression? I expect yes. If not, this phrase is a reference to people who know about how to do many things but have not mastered any one of them.
Is this wrong? From my point of view, yes. Please, let me take a coffee with you and discuss some important lessons and points to demonstrate why this is wrong in our career.
No programmer or leader I follow is good in different areas.
They are the best in their field. They have a remarkable career thanks to knowing their field more deeply. They are the best because they spend time honing their skills every single time on one thing.
I don’t know what your financial situation is now as you read this piece. But we all have different financial situations, which might influence how we think and see things we’re working on.
So, the most common and normal thinking is to find a way to survive and bring things to the table or increase your income and living status. This is an understandable desire for anyone and it’s never a bad idea to increase your worth, is it? However, most of us think that the more generalist we are, the more money we will get, which is not true.
You don’t go to a pulmonologist to check your allergy, and you don’t go to a gastroenterologist to check your kidney problem. So each of them is an expert at one part of your body. You aren’t willing to get a prescription from someone who isn’t prepared for checking your illness, are you?
Being a master at something doesn’t mean you will be perfect. There will always be something else to learn, but you’ll dig in to fully grasp it and later share it with your community. We’re not looking for perfection; I believe we are just trying to know deeper what we love and enjoy.
The problem is not the lack of job offers. On the contrary, we are surrounded by a bunch of them surfing on the Internet. The real problem is the lack of the right skills. Most of us are not prepared.
The most important companies are looking for engineers who know the field or role they are applying for in-depth. While it is true that you need to have a general knowledge of related tools or techs, it doesn’t mean you need to be an expert, but at least you should have a strong and deep knowledge of one of the required skills.
If you are an expert, you can easily save time and headaches for beginners, supporting and helping them with the struggles you faced at some point in your career. Because you were one of them as well. You can speed up their process of becoming better developers.
Mastering something makes you help not only beginners but also mid and seasoned developers as well. You can build your own tools and frameworks or enhance the existing ones.
Being a master of something means you could probably help get out of any tough jam your team is facing. As well as the odds of building higher code quality.
Every day, I hear more noise about becoming a T-shaped developer. In general, from my point of view, this is the same approach as Jack of all trades, master of none. I believe recruiters are just finding a shortcut to hiring someone who has general knowledge so they can save money.
Make the choice to become an expert as soon as you have the chance. I know this means spending more time to get hired or get more money, but at some point, both will be worthwhile. Decide to focus on a specific area and next year be an expert.