Ask HN: Do you regret being a generalist?
I'm a fairly young SWE in my early twenties, and I've tried a bit of everything.
Fullstack web dev, a bit of cyber security, a bit of AI, mobile apps, all kind of automation/bots/mass scraping, growth hacking, small games, low level C...
And I'm starting to wonder if I should specialize.
I've always been interested by AI, but since it's such a large/complex field, I never really took the time to dedicate myself to it completely because I'm always interested by 10 things at the same time.
I have absolutely zero doubts about my employability, but I'm afraid to regret it long term if I don't specialize in an interesting field.
Do you regret being a generalist? Have you been one in the past and then changed? In that case what do you prefer? Do you regret it?
230 comments
[ 2.7 ms ] story [ 240 ms ] threadI sometimes think a narrower, deep specialization might have yielded a bigger paycheck, but overall I think I’m happier being able to explore broader fields and concepts.
As a final note I’ll say that you’ve got plenty of time to generalize and then decide to specialize. Bring in your early twenties is far more time than it feels like right now.
Mid thirties and being a generalist means that not only am I employable, my breadth of experience allows me to bring together things from places others would be unaware of.
I occasionally wish i was more of a specialist, but usually chalk it up to the sort of all pervading impostor syndrome that goes on in software development circles.
If someone wants to put me in a position based on my current skills where I end up becoming an expert and they pay for that time, then it will happen. Otherwise I'll just keep learning enough to be useful in dozens of smaller ways. From the browser's JS engine event handling at the bottom of Flux/Redux to how Kubernetes works and how to do useful stuff with it, to 3D printer firmware and how my drill press works.
Mispronounced in Latin: "emm an' emm years"
https://australian.museum/learn/science/human-evolution/homo...
When we all have smartphones with access to WolframAlpha, do we need to know how to solve equations ourselves, or is it sufficient to just know how to phrase the problem so the software can answer it? Even excluding vegetarians and vegans, who even has access to hogs to butcher them — and given food delivery options, how many need to bother even if they can?
> Please excuse my lack of depth; I'm a generalist, not a specialist.
> Why bother learning all that biochemistry stuff --- or how to design a building, or conn a boat, or balance accounts, or solve equations, or comfort the dying --- when you can get other people to do all that for you in exchange for a blow job?
(to me, it seems to be more a blow job specialist's view than that of an actual generalist, but ...)
> plan an invasion
Why would one need this ? [hahahaha]
You'll see! :) (seriously though, even if you are not planning any invasions in the foreseeable future, you need to think like an attacker to successfully defend against attackers).
You need to be able to invade and not do it to be good.
This more "not invading AND you can't" rather than "because." Seems like a reasonable thing to me.
"I decline to shoot anyone with a gun and I can't." That seems like a position taken by some large number of pretty reasonable people in a many contexts that seem, at the very least, justifiable.
Should be on every todo list.
It requires some lateral thinking to figure out how can your dynasty conquer the entire British island, subduing the Scots, the Norwegian, the Saxons while being at war with France and you're just a lowly Irish duke with a crippled heir.
https://www.goodreads.com/quotes/12051-a-human-being-should-...
Great advice there.
An average human to have an average life must know how to cook food, do arithmetic, read a book, write a letter, use a computer, learn a trade. Even living a primitive life, a human to survive needs to know and do more than any other animal. This is why we have our own enormous and very energy-intensive brains and not a shared hive mind. Being average is what we excel at as a species.
BTW that's not the worst way Heinlein misled half of my nerd generation, but that's a topic for a different day and certainly a better venue.
The Pareto principle (80/20 rule) also implies that you only need to read a handful of books on a single subject to know more about it than most people. The knowledge gains become marginal unless you focus most of your time on it. So the things that you find interesting that aren't your main thing, just "learn the ropes" and move on back to your area of expertise. That's the most efficient traversal of the Sum of Human Knowledge: Familiarize yourself with the lay of the land, then focus most of your energy on some place that hasn't been mapped yet.
This is a complex topic!
It's easier than that! Just reading (in full) the Wikipedia article about something you probably makes you more knowledgeable than 90% of the general population. Reading a whole book about it -- maybe 99%.
On the flipside, before I moved to my current company, I did struggle with promotions at times because I wasn’t seen as a specialist in any one area. The overall value that I saw in being a generalist and that others used to their advantage wasn’t rewarded the same way as it was for peers who were focused on just one thing.
So I don’t regret it and I do think there is real value in being a generalist. But be prepared to have to work harder to show that value to others.
My manager knows that if there's some new project brewing or some specific thing that needs someone to look at, he'll likely ask me to take a look. I enjoy being that "jolly" player in the team when it comes to this stuff, however there are a lot of downsides to it. I've doubted myself a lot (and still do) with impostor syndrome when I see my coworkers do super amazing very technically detailed stuff that I just simply cannot understand. See them whip out extremely specific nuggets of knowledge and very technical reports on stuff that flies waaaay over my head. They are absolute geniuses whereas I feel like I'm just here to "fill a gap" and not much more (I know that's not REALLY it but... the voice at the back of my head tells me otherwise). I've had times in my career where I asked myself "what did I do the last few months?" and the answer was "I have no idea" because I'd be flipflopping around writing a few line changes here and there, not having a codebase that I'd specifically "own" myself, etc. It can be emotionally tough at times.
Still, I enjoy it.
I can program anything, bring me your dead and I will raise it.
Specializing, that's called a job. Work is work and they have a stack you gotta use, better or worse.
No one can take the hacker out of the hacker though.
My resume in terms of languages basically goes back in time, where I'm "expert" of what I use every day, but what I haven't used for a while I just put "good".
How do you sell yourself as a specialist to a company with a stack? Simple, "I don't know X but I'm keen to learn. I'm sure I can scale up to it". If they pass on you, it wasn't meant to be. As a job, your job is to return higher value than your cost. If you do that within a team, you're a net positive. Whether it's by teaching what you know as an expert, of coming up and scaling up to help wherever you can.
Either way, there are very few stacks that are permanent enough that you could be an expert in the matter for decades. Things simply move too fast.
So get behind any shiny new stack that you fancy and become a subject expert, it might pay the bills in 5 years. If not, you probably learnt transferable skills. At the end of the day, no matter the language, stack, team, we're just all trying to get the computer to do X.
Also a lot can be done with things that are on the heap but act as local variables.
[1] You probably don't actually need a shared_ptr and if you do then it won't stop you from creating memory leaks.
Actually, I like to think that I focus primarily on the "transferable skills" part, with languages being secondary. Many patterns, algorithms and data structures are quite general from language to language, while they can be quite specific to a problem domain.
Once you know 10-20 languages, learning another is usually tivial, even though learning most libraries, style guides, etc requries some more effort. Properly learning the ideas are harder, but also more rewarding.
Many devs will use structures like HashMaps based on heuristics or cookbook approach. But when you're able to see the similarities and differences between HashMaps within microservices in k8s, hash joins in a RDBMS or broadcast cash joins in Spark, and you understand the strengths, weaknesses and compromizes of each, you have a type of understanding that almost certainly will be useful in whatever langauge is popular 20-30 years from now.
Follow your passion for technology it almost cannot go wrong if you learn by being passionate and work in tech.
What I do regret is not being better at marketing and sales. It has been difficult to find work at times because I don't fit neatly into an employable box.
It reminds me of a quote where an expert is someone who knows more and more about less and less. That seems true for specialists and generalists.
Generalists can connect dots between unrelated that specialists might not.
Generalists can build and connect many layers.
The chasing of shiny objects slows down once you start seeing how little is actually new.
Serving the solving of problems that make a positive impact for users is important to know what generalists can do that’s very unique. This helps inform what you might want to go deep in vs broad.
For me it was the realization that most software tends to answer one question in many ways: Where is everything at? It became the connector to people and what they were after.
Also during the pandemic, it seemed generalists were able to learn how to learn and contribute some very unique solutions.
The subsequent change in society will require not just specialists who focus on one thing or way.
Generalists roll with the change at both as big picture and in details.
You need both and I don’t think the specialist is better than the generalist, or vice versa.
I’m a 0 to 10 engineer, 10 to 50 is rough, 50 to 90 is boring and 90 to 100 is like watching paint dry for me. If you want to be valuable for the startups that need 0 to 50, you need to wear some different hats.
You also need to know yourself. Figure out what you love in this and do that, you’ll never be burned out or bored. When I’m in the right place, I can happily code all night, do 2 Months of work in a day. When I hate my job, I struggle to create anything, it all feels like work.
I know what you mean, but I'd be cautious making such statements. The other way to read this is that when you're in the right place you do one day of work in a day, and when you're in the wrong place, you do 1/40 of a day's work in a day...
but they did not think enough, so a vast ammount of their "work" was waste anyway and discussing it also wasted other ppls time.
My generation (definitely older given the replies :~) ) was sold straight onto the specialization dope. I think that smack is what's screwed the planet.
I recognized the (very, top schools) hard sell for bunkum at a very tender age. The flip side is that you don't actually become a expert much before middle age. That's also how it should be, but my second and third decades of my career were very lonely. If I would beg any sympathy for my generation's reprehensible stewardship, this might be it if I could ask without being self serving. As stands, over to you lot. Look back hard at the events in history just now being declassified. For the first time in the information era newly released history is not only relevant but crucial, because the generation born fifty and sixty years ago still living, and able to talk with you, was isolated almost entirely if not hermetically, from the rest of mankind and are, albeit well concealed by superficial wealth, personal or circumstantial to society, shitting ourselves when not freaking out angrily.
Personally I think the freaking out behaviour has been copied by the headless right rather than is actually endemic, but understanding social mimicry in traumatic stress is just another example of how much you have to figure out and filter out, similarly to plotting a course to high professional status just as any independent thinking, and the state of many professions today is that attaining independent thought is a de facto domain expert qualification.
Traumatic mimicry could be easily applied to the reinventing the DBMS from discovery of ACID (early MySQL, 00's; MongoDB, 10's) , the Russian Dolls rewriting of Windows display layers, and potentially almost any project recently enabled by putatively inexpensive compute.
Of course I'm hinting that philosophy and other non technology understanding can make being a generalist both much easier and more pleasurable, but this is a personal journey, find your reasoning where you can but remember that you're a generalist.
Yes, in that that you have to sell yourself carefully. "I solve any problem" is not generally reassuring, because it is always an approximation, and because a specialist might see the pitfalls of a particular approach earlier. Given time you will become a specialist in whatever tool, but that needs to be built into projects or your professional development budget.
I also think generalists get pushed into management at a higher frequency. Not something I am personally interested in, but I get asked yearly at least at every role I have been at.
I've been looking for others to talk about it with, so I'd be happy to discuss further.
1) I believe that not having a clear competency will make it harder for people to place you. Your experience is a lot more legible if you're the "React guy", "C guy", "AI guy", etc.
2) Trying a bit of everything is very different from being good at everything. Is "a bit of x" useful? From what I've seen, no. It's not a unique differentiator, it's easily replicable and it doesn't provide much value. Being good at a few different things seems like a different ballgame though.
3) If you are a very broad generalist it will close a lot of doors for particular work. If you are highly specialized it will close a lot of doors for particular work as well. AI/ML for instance, seems like the kind of field that will be closed to you unless you specialize in it. On the other hand, building full products is something that seems more inaccessible to specialists.