I’ve consistently been told to have a successful career I needed to be an expert in one subject. If you’re a jack of all trades … you’re a master of none.
I’ve been a full stack developer since before there was a full stack to master. I asked designers about designing and designers asked me about developing, long before the debate about whether designers should code.
I am a generalist and I always will be
I don’t always design, but I could. I don’t always build the front end of a website but I could. I don’t always write the API to power a mobile/native app but I could. I don’t always design the database architecture for an app, but I could. I don’t always deploy code to production, but I could. I don’t always build the backend of a website or web app but I could.
I don’t always have an idea, figure out how that translates into a app or website, design it, build it, deploy it and launch it, but I have.
I’m not the best
When I tell people I’m not the best developer they look at me funny. In an age of constant battle to be number 1, to be the best, I freely admit I’m not.
I’ve worked with many really great developers, and I can say without hesitation they could code circles around me. Given a fully fleshed out spec, they produced some truly beautiful lines of code. However if something was missing in the spec or if something was a little unclear, all bets were off. Fortunately for me, I’ve encountered very few of these Utopian situations.
The norm is very much imperfect. Missing details, constantly changing requirements and shifting deadlines affect our ability to write perfect code.
I may not have a technical specialty, but the one thing I’d like to be the best at is … getting products shipped. Call it a soft skill, but turning an idea into a functioning product that real users can use, is not something many people can do quickly, if at all.
If I had just one skill that I focused on, became a master in, this would not be the case. I could have worked with some big companies, on some interesting projects but that’s just not for me.
I prefer to be more nimble to build things quickly, to build things that may not have been built otherwise. To help people with ideas, that don’t know how to make them.
The technology for me is not the challenge, technology is the solution. As software people, we use technology to solve problems for people.
Becoming a Master of all Trades
Most of what I know is self taught, the wealth of information available at our fingertips is astonishing. In the vast majority of cases the thing you are trying to do, has been done before. People have written about their experience about doing that thing. Read about their experience, learn from their process.
Another skill that is very important to master, is learning how to search. Stuffing your search query with just the right number of key words, to get you to the page you need will save you hours.
It takes a certain attitude to be a master of all trades. No problem you encounter is someone else’s problem. No problem you encounter is unsolvable. You have to be willing to dig in, take the steps (sometimes many) to solve the problems you encounter.
Even though you can’t rely on other people to fix your problems, you can and should have a network of people to help.
I’m very grateful to all the people that helped me along the way. I’ve spent many hours discussing design with some of the best designers in the industry. I wanted to learn what they did, how and why they did it.
Similarly I’ve spent, probably too much, time talking with great technical architects, database architects, ops engineers, front end engineers, ux architects, growth hackers, you name it, I’ve probably talked to an expert in that field, and tried to absorb as much as I can.
Don’t wait for other people, become that Master of all Trades. Ship something of your own.
Get help along the way, as and when you need it, just don’t wait for other people to solve your problem. Become the master of your own destiny.
Even if you decide to come a master of one trade later, having been a master of all trades will put you in a better position, to understand how the decisions you are making will affect other people and the product you are building.