DEV Community


Discussion on: Jack Of All Trades or Master of One?

davidmm1707 profile image
David MM๐Ÿ

Jack Of All Trades or Master of One? <--- It is easy, be both.

Well, maybe it is not as easy.

When I started programming, I saw what local business asked for a developer. The requirements were pretty high.

I had to learn Java, Spring, Javascript, Angular and docker for just a junior position with no experience.

Not only that. One business was looking for an Android developer, other a C# backend programmer, a React + Node.Js developer, etc. So, in order to have more chances, I had to learn EVERYTHING, right?

That's what I did.

I bought an Udemy course on Android development, and then I knew how to create android apps! Another course on Angular, and now I can create Angular web apps! All in the same month!

I learnt a lot!!

Did I?

Months later when I tried to create, for example, an Android app, I froze looking at the screen.

On the other hand, you have ultra specialization in one thing and one thing only.

You focus on, let's say, being a Node.JS backend developer and your choices become are smaller. Or not.

By focusing on one thing, you become GOOD at it. You may say "I love being a Front-end developer" and learn Vue, Angular and React in one year.

But you'll be a 4-months Vue developer, a 4-months React developer and a 4-months Angular developer, not a 1-year developer. And you'll be stuck on the basics, nothing more.

By focusing on one thing, you do advanced things. And employers want specialization.

Let's say you need life-or-death heart surgery. Would you like a 5-year experience surgeon, of a doctor that has dabbled as a surgeon, but also as a paediatrician, ophthalmologist, and more, in 5 years?

So I'll say that being a Master of one is better and a Jack-of-all-trades.

But I said you can be both.

A concept I got introduced a while ago was the T-Shaped developer:

Broad knowledge in many fields, deep knowledge in one.

For example, your passion is backend, you can focus on that. Learn a bit of front-end (basic HTML, CSS and Javascript. Maybe a framework), a bit of testing (Unit tests), a bit of DevOps (how to host your website and configurate it, Continuos Integration...).

This way you'll be an expert of one thing, but that doesn't blind you from learning the basics of other.

Think about a masterchef on japanese cuisine that can make you tacos, pizza or a hamburger if you need.

I liked the T-Shaped concept so much I'm doing that focusing on back-end, but that doesn't excludes me from learning Vue or learning testing and CI (even mobile dev with Flutter).

If you want to learn more about being a T-Shaped developer, I wrote a post about it: