image created by Margaux Peltat for the Chilled Cow YouTube channel
Time for #DEVDiscuss — right here on DEV 😎
Should Developers Specialize or Generalize?
Void⚡ ・ Jan 24 '23
#career
#beginners
#webdev
#codenewbie
Inspired by @codewithvoid's Top 7 post, tonight’s topic is...should you specialize or generalize as a developer? 🤔
Questions:
- Have you chosen to specialize or generalize as a developer?
- What are the pros and cons of your approach?
- What are the pros and cons of the other approach?
- Any triumphs, fails, or other stories you'd like to share on this topic?
Latest comments (18)
When I first started as a Laravel developer, I used to worry "Now that I have chosen web development technology, can I specialize even more? Will overspecialization be a good option?”
When it comes to the debate of specialization vs generalization, I believe you should maintain your open-mindedness. Technology is ever evolving, so when the finest new technology is released, what is currently popular may be forgotten and replaced.
If you specialize in one area and become a true expert in it, it's a good path to a successful and lucrative career, and you'll gain both professional and personal satisfaction from it.
Specializing in one area can make you easily bored, so if this happens you might want to consider branching out and learning some generalized skills in the tech sector.
Therefore, my advice to you: push yourself beyond your comfort zone. By pushing the boundaries and leveling up your skills, you’ll keep yourself motivated in your career.
From my experience I've started with specializing a popular topic instead of generalizing. As I was told by my close circles as be a Go to person on a topic will help you grow initially.
And same also from the book The Dip - by Seth Godin.
Then as my career progressed, I started going generalizing.
After initial steps on the career development a T Shaped approach would be perfect. Later you can go as Pie Shaped (Specializing in 2) and then Comb Shaped (Specializing many)
Its a really depends what you want for you carrer or what you like to do in your job. My example I really like to code with JS, I tried java, python, go but any of these make me happy like JS in my work. So i'm focusing in specialize in JS. I think to be a specialize is more easy beacause you have a definied route to follow. When you are a generalize dev you have so many options, this can be confuse in some point.
If I remember my 30+ years development carrier, then I told, time to time I specialize for something, but focus was changed really much, so this give me a general developer knowledge. I started with Basic and goes to direction of Z80 assembly to another path, some time work as graphic designer and later flash developer and lot of other things. Currently my react frontend skill transform to nextjs fullstack. Last month spend of playing with AI - how can I insert into my workflow.
I guess we have to become generalists to become good specialists.
We have to understand the landscape very well to understand how and why its assembled this way, what problems it's causing, understand where the whole thing is going, and what problems will become more pressing.
I've been a developer in financial services, scientific measuring device manufacturing, phone apps, web dev, and medical device manufacturing, each time I had to learn new technology, but also used technology I already knew.
I guess that makes me a generailst?
It's great being able to learn about new fields. In my current field is where I want to stay.
I don't know what it would be like to be a specialist. Would I have to only work in one field? Or would I only know one type of technology, like, would I be going from React job to React job?
I guess I'm in the middle of my career, so wanting to settle down now makes sense. On the other hand if everything goes belly up, I know I can manoeuvre into most spaces. I'll never get to be a data scientist/machine learning dev, but I think that's about the only place I wouldn't be able to prove my skills transfer to. Maybe front end, too, as my aesthetic skills are not good, although my basic understanding of UX is OK.
If you're hiring a generalist, I suppose that you've got to consider that maybe it'll be a month before they're proficient with your tech stack if they haven't used it before, but if they have then they'll be up and running as fast as any specialist.
What is a "generalist"? Can someone describe it in details?
Why not both? I figure the T-styled person approach is actually viable outside of the HR department.
It's also called 'Generalised Specialist'
en.wikipedia.org/wiki/T-shaped_skills
The skill and career journey I've adopted so far is the diamond approach:
As a beginner, it's okay to specialize on one thing before moving to others. But specialization should have its limits.
I started myself in late-2013 as a (HTML and CSS) web developer, learned more about the DOM, and responsive design, before generalizing myself to use more and more web libraries and frameworks.
Getting yourself in either generalization's or specialization's comfort zone is risky, because:
This diamond approach is indeed a repeating pattern. After re-specializing yourself from generalization, you'll need to re-generalize again before specializing on another one.
This is great because one day, you'll become a generalist who also specializing on each fields. Or in other words, a multiple-T-shaped developer, or even a comb-shaped one. You can learn new, emerging things very quickly due to your past, specialized experiences. And you'll be different to those who just either want to stick with one or two languages/frameworks or just want to learn as many things as possible.
The best thing is not to plan to do either. Never pigeonhole yourself, just do whatever you find interesting.