As a software developer, how to overcome "Jack of all trades, master of none" problem?

Hi everybody,

Thanks for reading this. I think I have a big problem. I like this world and I have been related with programming since I was 15 years. But today with all new technologies I can't choose one. I mean, I know Python, Ruby, JavaScript, C#, Java, etc. "I know" is relative of course as I made simple things with them. But I can't avoid to be interested by new technologies and at the end I know a bit about everything, but I'm master of nothing.

It happens me with most things, front-end, backend or mobile development, which programming language use, which technology use in the server, learn about data science.

In summary, I don't know how to find what I really would like to do and it's killing me because I'm not progressing. The only advantage this gives me is I can be flexible and learn new things easily.

Any suggestions?

Start a personal dev blog on your domain for free and grow your readership.

3.4K+ developers have started their personal blogs on Hashnode in the last one month.

Write in Markdown · Publish articles on custom domain · Gain readership on day zero · Automatic GitHub backup and more

Theresa's photo

I know how you feel. I worked as a consultant for a while and people would be like: hey, don't you want to do front end for my project? And I would be like: sure, what do you need? And it seemed like every new job was a different framework or set of tools... And so I stumbled along from project to project feeling like (perhaps read the article on imposter syndrome ) I didn't know anything; that I was a newbie all the time... Even though I was doing cutting edge stuff. And worst of all: I completely undercharged and underestimated my skills and abilities. But truth is, I could see a strain of development. I could see myself improving; and I started to see which areas I enjoyed and wanted to work in by my experiences. I identified a common thread throughout and understood: this is what I would like to specialise in. This is what I want to be good at. And I started to focus on those things. I am not recommending that this is a good way to do things, but I always find work as a javascript dev and I am really enjoying my current assignment 😊

j's photo

Depends on what you're aiming in your future.

Being a jack of all traits works splendid for me and I enjoy to understand multiple language and systems.

I would recommend for you to try to get in a company where you like what they're doing and inside you can still decide what to do or just jump around who cares if you good at it.

Don't let the public opinion reduce your curiosity to know a lot of things.

For me learning concepts is more important than learning to use a specific language.

Hipkiss's photo

Agreed, I imagine a lot of FS Devs are in this position.

Hipkiss's photo

@ivyk Further to this I would also suggest that jack of all trades is better as tech/frameworks/languages constantly change and evolve - some will become deprecated and others will be created to suit the needs at that time

David Fekke's photo

Iván I also know how you feel. I think the best suggestion I can give is related to your interests and popularity. The town I live in, it seems that 80% of the jobs are .NET. I used to be a ColdFusion developer, but the company I worked at started to downsize. So I learned C#. I actually love the language now. But it was a big step making the professional transition.

I am now an iOS, Android and Node.js developer. I got real interested in mobile development when the iPhone came out in 2007. So I taught myself Objective-C. I am now learning Swift. It became enough of a passion for me to where I sought out a job doing iOS development fulltime, even though it is not a common discipline in the part of Florida where I work.

I think you will find in the course of your career that you will have to learn new languages and frameworks.

Be flexible and learn things.

Iván Portilla's photo

I really appreciate your suggestion @davidfekke , what you say is curious because in 2014 i made a 20483 certification in C# but i haven't practice since then. Right now i'm in love with Linux i don't even use Windows but i could take advantange of .NET Core to practice C# in Linux.

Also i think i will never stop learning, but clearly i'm doing something wrong, i should pick up some technology, use as my main and learn others like now.

Joe Clark's photo

I'm the same way, yes, since I was 15. I'm nearly 45. My view is: technologies change. It's hard to be a master in any single technology lasting for longer than a few years. Better to be a master in a specific industry than a specific technology. I was thrust into healthcare IT early in my career. Not my favorite, but I'm no longer lost in this very-hard-to-navigate industry. I can not only talk tech, but I can talk show with non-tech people, including physicians and medical directors, CEOs of large insurance plans, etc., without looking like a fool. The key is to find the industry you're passionate about, then apply your technical skills there. Just my opinion.

Colin Liu's photo

as a newbie. I just avoid to learn everything. but specialize in one thing.

Moses M's photo

It completely depends on your own interest rather than the work experiences and assignments that you've working on. Try to understand what is most attracting you in person. Start working on your interested technology/domain whenever you had a time. Finally you"ll became a master one day. But keep in mind that everything is dependent on each other.