We've all heard the Shakespeare quote: "a jack of all trades is a master of none."
I heard it myself early in my career, and others have heard it. It is commonly used to diminish or belittle someone who doesn't have a strong specialty or niche. But context matters; the full quote is:
"a jack of all trades is a master of none, but oftentimes better than a master of one."
When I hire engineers, they will typically tell me they are a front-end or back-end dev during the interview process. My response is: "Everyone at The Zig is expected to be a full-stack developer." The truth is, I don't think full-stack devs exist. Full-stack devs are the 'Santa Clause' of technology. They aren't real, but they come with a whole lot of promises bearing gifts of deep expertise in every stack. See why I don't think this flavor of unicorn doesn't exist? The definition is fuzzy, inconsistent, and widely abused and ultimately means nothing in any practical sense.
So why do I say it to incoming devs? To set the expectation, they will need to learn things beyond their comfort zone.
Early in your career, you can 10x your value by simply developing an understanding of everything upstream and downstream from where your responsibilities lie.
In today's landscape, generalists are incredibly valuable as companies tighten their belts. Here are three reasons why to embrace being a jack of all trades:
Companies are facing a lot of pressure to do more with less - you're an asset when you're a Swiss army knife
It gives your career optionality because you're versatile.
Finally, you become a master of learning.
Some of the greatest minds in technology today consider themselves generalists
The ability to stitch together knowledge from a diverse set of experiences is, in itself, new knowledge. Embrace being a jack-of-all-trades and become a master of learning.
P.S. IMO, this is the fastest way to get over imposter syndrome.
Crazy, right?