DEV Community

Cover image for Jack Of All Trades or Master of One?
Katie Adams
Katie Adams

Posted on

Jack Of All Trades or Master of One?

One of these days, I'll write a Dev.to article that isn't just thought dumping onto a page. However, today is not that day!

I pride myself on being a sponge for knowledge. Recently, however, I've been taking a little break from reading around and trying new languages to give my brain a well-earned pitstop. Picture my brain somewhere warm and sunny, with its sandal-clad feet propped up in a deck chair and a glass of ice-cold lemonade getting it's hand slick with condensation. (Do not question how my brain developed limbs and apparently a working digestive system.)

Whilst taking a few days to myself, a question appeared in my head that I've been unable to shake: is all of this extra learning doing me any good?

The more I read about interview practices and techniques, I realise how much I flounder when asked technical questions by people who purport to know a great deal more than me. The thought of going into interviews and being quizzed on my abilities makes me incredibly nervous.

Now some of this can be put down to imposter syndrome, of course, but I must also accept a degree of responsibility . I'm a lot more confident in my programming abilities than I was two years ago but still know that I might not appear the most proficient when quizzed in a time-sensitive situation.

I've also never truly known what I've wanted to do.

For instance, I love video game design and Development - because I love stories and characters and art and music. I want to be part of the process that brought my favourite games before me.

I also love web development. The feeling I get when I've designed a beautiful and responsive site that is also accessible and functional? I imagine it's how a peacock feels when they've just had their feathers done at the local peacock salon.

Software engineering gives me great joy too. Mobile apps, web apps, programs - you name it, I want to know how to make it!

I have something of a childlike wonder for creation, for making things and being able to say 'look, I did this!'

But where does it end? Where do I stop and realise I have to settle for one?

How long before my 'breadth of knowledge' begins to be described as a 'lack of advanced expertise'?

Has anybody ever had the same dilemma? Whether it's about you or a colleague, friend, or family member: I'd love to hear your thoughts. No matter what side of the interview table you were on, how do you handle this type of CV?

Top comments (71)

Collapse
 
georgecoldham profile image
George

Im a firm believer in following your passion(s).

You look at everything everyone else is doing with wonder, you want to be able to do that (and that thing over there, oh and the one you saw yesterday, and that side project you looked at last week, oh and ....).

Over time you will develop a deeper knowledge of a few things you have to work on because of jobs or overwhelmingly strong interest to know about one thing etc. You will find yourself curious about more technical elements, and go deeper down the rabbit hole.

Value the ability to be able to learn quickly much higher than the ability to regurgitate technical information, Its a much more valuable skill. The ability to waffle technically will become easier the more you know about and have used.

If you have to interview, then spend a week learning the technical waffle and interview shit, then hope you really dont need it.

Collapse
 
katieadamsdev profile image
Katie Adams

"If you have to interview, then spend a week learning the technical waffle and interview shit, then hope you really dont need it."
I love this advice so much. In fact, this whole comment is brilliant. Thank you so much. :)

Collapse
 
simbo1905 profile image
Simon Massey • Edited

Interviewing is a skill you can cram for. The worst thing you can do is turn up to a dream job interview having not just been to a few other interviews to find your narrative and get warmed up. When I am looking for new roles I deliberately say yes to the first call to interview simply to practice even if the role looks far less than ideal. One day that might turn up a great role by pure luck but it always has me come out of the first interview thinking ”I am so rusty at this why didn't I say X and Y?”. I always feel more relaxed and better able to articulate my latest skills and experience at the next interview.

Collapse
 
scottishross profile image
Ross Henderson

"A jack of all trades is a master of none, but oftentimes better than a master of one".

I think it's useful to be a "jack of all trades" and have a basic grasp of as many concepts as possible, but you should also specialise areas that interest you.

I am an Oracle APEX Developer. So I will become a master at APEX application building, Oracle DBA and other supporting works. But I have to understand Javascript, CSS, Python and many many other concepts just to find my footing.

Collapse
 
katieadamsdev profile image
Katie Adams

I'd not heard this full version of the phrase before: I love it! Also, your experience is something I like a lot. I've just gotta figure out where my specialities/passions lie... 😅

Collapse
 
picocreator profile image
Eugene Cheah • Edited

I have something of a childlike wonder for creation, for making things and being able to say 'look, I did this!'

An admirable mark of a great engineer! I cant speak for all employers, but my co founder and I have a soft spot for engineers who have such moments.

But where does it end? Where do I stop and realize I have to settle for one?

On the employer side, no you do not. Just keep growing! At what excites you!

Discuss with yourself and your team leader if you should focus on one area first (and go back to others later), or keep going along learning everything. There is no right answer.

For any company, there will be a large variety of work that comes down the pipeline, just to point to uilicious.com, internally our devs do ...

  • social marketing (yes our devs do take part in events),
  • lots of boring CRUD (how many times is it now?),
  • hard math / infra (our internal test engine does some crazy stuff)

And because different companies will have very different compositions of workload, there is never a right or wrong answer to this ... for even the most random of skills (like how origami, ended up being used in solar powered satellites )


The MMORPG gaming analogy I sometimes use is that everyone is equipped with skills across different elemental types, they can go learn broadly new elemental skills from a huge skill tree. Or to min-max and focus onto one skill path.

With all of us forming a team for guild raids, that faces random monsters and obstacles on a quest to save the world (or kingdom, timeline, etc).

As the "team leader" organizing the team, I then have to recruit party members to align accordingly to the challenges. And as per most RPG games there isnt 1 single answer.

For most startups : I can have the team consist mostly of generalist (a little of everything here and there), but when the level 99 fire element monster comes which none of them can damage, we call upon our level 99 ice mage (who cant do anything else, or a temp part timer for this quest only!). Who would not survive with the generalist protecting the glass canon.

Or I can have a team who is maxed out in 1 element each, and swapping roles when needed.

Or some complex mix inbetween the 2

Unfortunately, just like in some RPG's games, this can also mean that certain team members can end up as "dead weight" not because they are bad (their maxed on 1 element), but the company has entered into a new region, and they have bad compatibility with the given challenges. One way to avoid the above is to discuss with your team leader or company, and see if the alignment make sense for you (do not force yourself, you own your own development)

And that's alright, because they will then be able to find another team who they can help better.

Collapse
 
katieadamsdev profile image
Katie Adams

I'm 100% here for that MMORPG analogy holy moly! It feels like everything just clicked into place in my brain - that makes so much sense :O THANK YOU. Gods above I cannot tell you how much I'm going to call upon that when I'm doing team building and project management work in the future. :D

Collapse
 
picocreator profile image
Eugene Cheah

Plugging in my comments to another question "Flipping the coin: Should developers design?", on why being a jack of all trade is "ok"

In almost any job I know of on earth. It helps a lot to somewhat know the work of the person directly in-front and behind any process queue. With diminishing rate of returns further down the chain.

So for a hypothetical fancy restaurant example.

Doorman > Waiter > Senior Chef (cook) > Junior Chef (prepare ingredients)

  • doorman/waiter benefits from knowing each other jobs, as it will help them coordinate the flow of human traffic (smoker section, VIP?) in and out of the restaurant to their appropriate tables.

  • Waiter/Senior Chef benefits from knowing each other jobs, as it will help them manage and communicate the demands of the consumers as the orders comes in (especially as ingredients starts running low)

  • Senior Chef / Junior Chef needs to know each other roles, as it will help in similar fashion ensure the flow of chopped fish/veg/meat/etc.

However for example, its really not needed for the junior chef to know the doorman job, as it will hardly improve each others performance. (in most cases, there will be exceptions)


So back the programming + design? Strictly speaking nope its not required, just like the restaurent example.

However with thousands of corporate and government website being built without a designer (due to budget constraints, and that its not meant to wow or sell to users, who instead must use the system, rather then choose to do so)

As you have experienced, while technically functional (if given a manual). It would have been so much more better, if the developer had some simple (not fancy) understanding of design.

So yea, it helps a lot =)

My goto for developers, is to point to material design guide, and ask they try to learn as much as they can from there.

Also one of the key points of "devops" is to bridge this chain, by letting each specialise individual educate across the team (eg. security, educating developers) to help improve the overall product. To help smoothen such flows


Anyway for dev here is the "typical chain"

  • UX
  • UI
  • API for UI
  • Data Services API
  • Database / Infra services (eg. network file servers)
  • Infra Networking & security
Collapse
 
mikeysanchez profile image
Mikey Sanchez

Hey Katie, great article. Your stream of consciousness style is refreshing.

I, too, struggle with this same "problem". As a fellow jack myself I've been absolutely humiliated in interviews by self righteous specialists.

If I ever figure out a way to get around this issue by somehow demonstrating my insatiable learning appetite and ability to soak up and apply new concepts and tech stacks, you'll be the first to know!

Collapse
 
katieadamsdev profile image
Katie Adams

Haha, this was such a fun comment to read, Mikey. Dev.to articles have at least taught me that any self-righteous specialist who declines me a job at a company where I know I'd shine is probably not a company I want to work for. Especially seeing how many and brilliant developers clearly have such an open-minded, encouraging attitude! It's something that needs to spread like a sickness in the programming community.

Collapse
 
jessekphillips profile image
Jesse Phillips

James Bach made claim that everyone is a generalist in their field of expertise.

You may be a developer but you know web, game, media... Programming. You may be a web developer but you know angular, typescript, react, websockets... You may be an angular developer but you know...

Thus if you are a jack of all trades in Software development, you may not be a jack of all trades in the rest of your life.

Also knowning more things does not mean you know less about one thing, people have different capacities and knowledge overlaps allowing a generalist to know more about something they've never seen than one who has worked with that one thing.

As for interviews, try to show you are competent in learning new thing. Show interest in questions you don't know.

Collapse
 
katieadamsdev profile image
Katie Adams

The idea of putting my skills into a kind of... tree is one I'd not thought about - and I'm loving it! It's also giving me some very interesting ideas for the skills section of my CV. :3 It's also a good reminder that you're right: everybody learns differently.

The interview technique is very unique. What do you think is a good way to actually demonstrate a desire to learn during an interview that isn't just saying 'I'm a fast/good/passionate learner?'

Collapse
 
jessekphillips profile image
Jesse Phillips

That is a hard one to answer, which is where I think being curious during the interview is a good approach, you're unlikely to know every technology so if asked if you know some inquiry what it is and how it is used at the company.

You're likely worked with technology and formed opinions, give your opinions, including the bad.

Collapse
 
perigk profile image
Periklis Gkolias

This is a false dilemma IMHO.

You can be both and actually is what most companies look, at least from software engineers, at least from my experience.

The newest trend is being a pi-shaped engineer. The name comes from the Greek letter π which has two "feet" that go deep. irisclasson.com/2013/07/08/stupid-...

So you have adequate knowledge in many fields. But you specialize in a couple. By learning to specialize and learning to generalize you REALLY learn how to learn.

Correct me if I am wrong, but I have never seen a company looking for someone a) who is not great at anything b) is a one trick pony.

As you can see, I am assuming that you are targeting regular employee status, if you are planning to become a consultant, master of one usually pays better.

To conclude:

  • If you want to work for the web, knowing server side programming AND client side programming AND devops will totally not hurt. Feel free to pick two and become great on those while you have decent knowledge on the other.
  • If you like game programming, you can always do it as a hobby, even you work for a different "sector"
  • If you like mobile programming, the same goes as with web. Server side will help you understand how the things you consume are built. Or even wrote both parts. Client side will help more, on how to design proper interfaces (along with UX principles). Devops dont sound that helpful but who said that devops principles cant be applied to mobile? Eg continuous integration.

Hope it helps.

P.S: We are all imposters, you can find tons of articles in here that will give you insight. Having impostor syndrome can be good sometimes.

Collapse
 
ssimontis profile image
Scott Simontis

I am similar; I learn anything that interests me. I ended up becoming a full-stack developer. Full-stack in the sense of front-end, back-end, databases, web servers, CI/CD processes, analytics, marketing, etc.

I hear a lot of people talk about how you are holding yourself back if you don't specialize in something, but that has not necessarily been my experience. Maybe I could find jobs a lot easier if I was easily marketable as a generic developer, but I think the job search process moves too fast already so I like having more time to find the perfect opportunity for me.

I make sure to apply my knowledge to address my fears of wasted time. I use org mode in Emacs to document things I learn, and I try to find projects that let me use thw knowledge. For example, I have two servers that act as a homelab so I can learn system administration and DevOps, so I save all my scripts I use for operations and document problems I encounter when doing HW updates or network configuration so I don't make the same mistakes later on.

It has helped me find really cool niche opportunities. I am trying to get into freelancing, but I was contacted about a developer security specialist role which sounds like it might be really cool!

If you're happy, nothing else matters. "Best" practices and general advice that gets echoed is very impersonal; only you can be a light unto yourself.

Collapse
 
katieadamsdev profile image
Katie Adams

I like your thoughts on the job search process. It's nice to be in a position where I'm privileged enough to be able to step back and look for the opportunities that really interest me.

And I can seriously relate to the fear of wasted time. When I'm not working, I'm project-hunting, or practicing my skills. My other half thinks I'm mad!!!

That developer security specialist role sounds excellent! Especially since they contacted you about it. Amazing! I really hope things work out for you - either with the application or the freelancing! :D

'"Best" practices and general advice that gets echoed is very impersonal; only you can be a light unto yourself.' ~ hi yes hello I'd like this on a teacup coaster please XD

Collapse
 
txai profile image
Txai

I have the exact same """problem""", and the answer for me is in the phrase itself: "Jack of all trades, master of none. Still better than master of one". Working in a field where everything changes really fast, I think that the ability of keep new things on the radar, and learning fast and on demand is a crucial one.
As a bonus, the more you see new things, the more you can come up with new solutions and new ways to approach problems.
I would advocate to only learn something deeply when you are really using it to solve some sort of problem (be it creating an algorithm, creating an mobile app, web app or whatever), cuz that will help to polish the final solution

Collapse
 
katieadamsdev profile image
Katie Adams

Your approach really makes a lot of sense and considers the ""problem"" in a way I hadn't considered before. :) I think it's why being self-employed appeals to me so much. I can learn or as little as is required to make a really good product.

Collapse
 
sergix profile image
Peyton McGinnis

I face the same thought quite often.

There is nothing wrong with having a wealth of knowledge concerning topics you love and enjoy and desiring to learn more about those topics. Especially in your case where you enjoy designing software, websites, games, art, and whatever else you might like creating, having all those skills stretches you. Even if the skills might not have too much depth, having a diversity of them is definitely helpful.

Now, if you truly want to get a job in software, whatever the field may be, then you must decide on that field. It sounds obvious, and it is, but once you figure out what you are most passionate about then spend more time developing that passion. Think to yourself, "if I could only do one of these, which would I want most?"

Again, it's fantastic that you have so many interests, and never stop being passionate about every single one of them. But if you want to be successful in one area, then you need to decide which area that is. Once you have a goal, then stick to it.

Collapse
 
mervinsv profile image
Mervin • Edited

Want to create some web applications for fun? We can do it.

Cause I really need someone or something which can inspire me to create software projects again.

Right now, I am looking and trying some other things which I know that it is not what I really love to do.

Creating applications just for a hobby and no one appreciates or using it (OR you cannot earn money from it) makes me wonder if I am in the right direction.

But yeah! Keep pushing and learning. Good luck with your journey. Have fun!

Collapse
 
katieadamsdev profile image
Katie Adams

Oof, the money-making side of things is a point I keep forgetting about - especially every time I consider setting up my own business. You need a lot of confidence and self-motivation for that sort of thing because, as you say, it can be quite a thankless occupation.

Same to you with your journey!