Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login

You are not a highly skilled generalist. That implies you are a master of everything. You are not because no one is. Being a master of a few things with experience with many things makes you a useful specialist. The proverbial T shaped person. This is a good thing.

Highlight the things you are actually very good at, put the rest as experience. It looks like you've written a lot of Perl, so you're highlight that. Highlight Linux package management. Despite what you think, these are specializations.



sort by: page size:

Are you a tech generalist, or a failed specialist? Are you a Renaissance man, or a dilettante?

It's easy to identify as a generalist. How do you know if you're a good one? How can a hiring manager figure out if you're a good one?

You're being hired to do specific work, unless you're coming through a recent-grad or other entry-level pipeline. You will be evaluated on specific technical competencies, because that's harder to fake. You need to show your ability to master at least one stack, language, framework, system, or technical area.

Your specialized skills demonstrate prior mastery and an ability to do the kind of work they need you for. Your generalist skills will show through in the quality of your work and ability to influence broadly.

So no, nobody's hiring someone who specializes in being a generalist. But, they are promoting them.


Hello. I am this person. I am a generalist, I am not the best in any one area, but I have a broad range of skills across many domains. If I don't know how to solve a new problem, perhaps in a new domain, I will leverage the broad knowledge and learning skills to find out how to solve the problem. I won't be as fast as a specialist and there will be a greater risk of failure, but there is a good chance I will get the job done. I am not arrogant, I don't think I'm a genius, I don't think I am infallible. It's just that I am a generalist who likes to know a little about a lot, it's the way my brain works.

I think there's something to be said for being a specialized generalist.

Being a true jack of all trades can mean you're mediocre at everything, it's better IMO to specialize on certain skills within different fields - ideally ones that synergize.


Generalists may always have a job in software, but specialists often have the interesting jobs. Everyone starts out as a generalist. Like you, I am always interested in vastly more things than I have time to properly grok.

Whether or not to be a generalist is a question of ambition and also where you are in your career. Life outcomes for generalists cluster around the median, outcomes for specialists have much higher variance. The idea of "t-shaped skills"[0] is valid and often excellent generic advice for optimizing career outcomes but it is not the right advice for everyone. I made a very intentional decision to ignore my polymath instincts and focus on just a few strategic areas when I was ~30 and it made a very noticeable difference in terms of the opportunities available to me.

It is difficult to know what you want to specialize in without generalizing first. True mastery of a domain typically requires considerable amounts of personal interest and focus, so it needs to be something you enjoy or you are unlikely to be competitive against those who do enjoy it.

An alternative, if a single specialization feels too limiting, is skill stacking i.e. specializing in two or three skills. This has more potential but requires more work. There may be only a few people in the world that can operate at the intersection of those specializations -- it can be very rewarding depending on what those specializations are. Complementary specializations can be synergistic.

Don't discount specialization happening accidentally by virtue of how your career evolves. I have a useful deep specialization that I never intended which is strictly an artifact of a truly random path dependency, not personal interest. Nonetheless, it is immensely valuable to me now because it complements other specializations I have so I maintain it.

Don't worry about it. If something is worth going deep in, you won't need anyone to tell you.

[0] https://en.wikipedia.org/wiki/T-shaped_skills


Is the whole full stack generalist / specialist dichotomy a correct one?

I'm bootstrapping and I can do a lot by myself: setting up Linux from scratch, installing & configuring the DB, the proxies, the webapp server, the firewall, write administration scripts, set up the SSH tunnels, do the coding, do the HTML+CSS... Full stack "generalist" way. (Heck, I can even build the server myself if needed).

But at the same time I'm definitely a "specialist" in some fields. For example I've been holding my SJCP (now Oracle) Java cert since the last century and I've been coding in Java since more than 10 years and I know some Java frameworks inside out.

Sure I'm not a DBA nor a Unix sysadmin specialist but I'm both a generalist in that I can still do it if needed and yet I'm a specialist in certain programming domains.

I mean: aren't all generalists still specialists in some particular domain?

Maybe too that HN is representative in that a lot of the entrepreneurs in IT will tend to be "full stack"?

As a side note, sometimes it sucks to be "full stack" because people ask you to do things you'd rather not do, because you're the one in the company (startup) knowing that area the best. It doesn't make you very good at it, but by knowing it more than the next guys, you get to do it.

As a second side note, when working for bigger structure, I've noticed that the DBA, for example, or the Unix sysadmin, do really like it when they realize they're talking with someone who understands what they're doing. Heck, I've helped Unix sysadmin troubleshoot Java webapp server issues because they weren't that familiar with Java ; )


Excellent point. And, conversely, how do I demonstrate, on my resume, that I'm proficient as a generalist without listing the things that specialist-oriented readers here suggest that I omit?

Sure, it's possible to do a lot of things with a computer as a generalist, but as soon as you really need to start digging in and getting to details, you need the specialists. Those that know all of the nooks and crannies of the technology you're using. There are always going to be general concepts that apply across different technologies, but that doesn't mean that you can just have a bunch of generalists that produce.

Just one example without even leaving the software development world: If I'm a Ruby developer (I'm not) would you hire me to work on your trading system built in C++?


This is interesting. The whole having to specialize thing has been scaring me a bit lately as I really do like the fact I can be jumping back and forth between the paths when working. I have been told that I should find something to specialize in as most of the companies require you to be specialized and there is no place for generalists anymore, which sounds weird to me. So are you a specialist in anything? It seems you have close to a 20-years career so I was either lied/misguided or you have expertise in one of those domains?

Nope.

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.


Being a generalist isn't always an easy sell, but we can be uniquely valuable in a small shop that lacks an army of specialists. Just since last year I've been called on to document several protocols for partners, design and back-test a Bayesian estimator, troubleshoot a balky load balancer using only a tcpdump (it was reusing port numbers too aggressively), sleaze together some last-minute map/reduce analytics feeding Excel graphs, and track down regressions caused by bad svn merges. Nobody sane would put all of that in one job description (nominally I maintain a soft realtime Java app server), yet someone had to do it, and there I was. As a specialist I'd worry about only getting asymptotically better at solving one problem which could become irrelevant.

Actually it's the stuff I'm supposed to know how to do where I feel like a fraud, because I compare the imaginary progress of an idealized version of myself to what I've actually accomplished. When I'm handling one of these tasks from left field, everyone knows I'm winging it, and that makes success sweeter.


Two things. First I'm not a developer. Second thing is I'm a generalist in every sense. And so I'm going to offer my opinion: generalists get things done no matter what the circumstances are. I'm not going to say anything bad about people who specialize because there is definitely room for that.

But it sounds to me like being a generalist is working well for you so I change it? You've certainly heard the phrase "a jack of all trades isbetter than none" but the rest of that says "but often better than a master of one".

If anybody ever questions why you don't specialize in one particular facet of your craft, you might remind them that being multi-dimensional in your skill set has often led you to solutions the specialist might not come up with. The amount of cross-pollination between specialties can often lead to better results in the long run.


My advice would be to embrace your generalist nature.

There are certainly roles fit for specialists, but generalists with rare blends of difficult and useful skills are a lot more valuable in most situations. Specialization in any one area tends to have rapidly diminishing returns.

I think any above average developer can make themselves more valuable at a much faster rate by becoming decent at complementary disciplines like design, user experience, conversion optimization, writing, etc. than by continuing to hone their development skills.

Even within development, becoming decent at every level of the stack, from dev ops and databases to front end, is usually going to add a lot more value than becoming slightly stronger at your specialty.


There is value in specialization. You denigrate the OP with your condescending "too busy doing whizbang gollygee Important Work" and mischaracterize him as using words like "silly and useless", but the OP never said that. All he said is that he's focused on one part of the work and doesn't know that much about the others.

I've been considering these choices a lot. In my own career, I've made a conscious choice to pursue lots of different things that I found interesting, but I've become a generalist, pretty good at lots of different things but lacking the deep domain knowledge in any one of them that a specialist gains. You seem to be arguing that specialists should not exist, everyone should go for broad rather than deep. I think there's a place for both, and becoming a specialist often requires the discipline to stay focused and not pursue every interest and curiosity that rears it's distracting head.

I think there's value in a programmer knowing the whole stack, from language APIs to hardware implementations, and being able to understand the consequences of every line of code. But time is finite and someone at the beginning of their careers must make choices on where to build their expertise.


From what you wrote I feel my fairly milquetoast opinion is now contrarian. I always thought being a generalist is actually harder than being a specialist. In many specialties there's the luxury of being able to encapsulate lower order knowledge that would be table stakes to a generalist and they're still perceived as competent so long as their specialty remains relevant and informed. For a generalist to appear competent they must not only dabble in all things frontend, backend, systems, and data stores but also know how all of these things can possibly connect or overlap.

It always seemed odd to me that someone specializes in a language like Java or Javascript. That, to me, is neither a specialist or a generalist; I'm not actually sure what to call it.


Somewhat opposing view here. I'm not a generalist and haven't spent much time trying to be one, outside of some freelance work where I just said "sure, I can definitely build that" to whatever the ask was.

Specialisation lets you spend time looking into computer science research instead of into solving today's business or tech stack problem. I don't know how to handle dependencies in npm or the details of what changes across python releases. I have read a lot of papers and spend a lot of time experimenting.

I remember being concerned around one of the job moves that I was becoming very specialised and may struggle to find work outside of my area. That's definitely a hazard but I figure I'll deal with that by retiring.


You need to look into the book 'Range: Why Generalists Triumph in a Specialized World' as it might boost your spirit a bit and also give you some ideas.

You can do any 'job'. If you have communication skills you are particularly well-suited to be a leader coordinating a team of specialists, connecting them and finding value in the overlap of their specialities.

Most of the people are too narrow now in my opinion. It is your great advantage that you can see a bigger picture than an overspecialized PHP Developer for example.


I see it less as "being a generalist" and more as "being a specialist at learning new things".

This reminds me of me when I finished the MBA, thought I was trained in "business", and tried to find a job as a "businessman". Oh, the folly of youth! It doesn't actually work that way in life. All businesses do specific things. All technology projects use specific technologies. If you want to make yourself a "generalist" that either means specializing in something that's used in a lot of different jobs (like PHP or Python), or specializing in more than one thing.

The key paradigm shift you need to make is this. You are probably viewing any kind of specific knowledge as a hindrance, a chain that will limit your freedom to do other things. In fact, though, it is the collection of such knowledge (as much as you can get) that eventually makes you multi-skilled hence free.


Best results come from teams of generalists working as specialists.

What if my "thing they are best at and enjoy the most" is just creating new functionality, no matter what language I use? There's no place for me on a team of pure specialists.

next

Legal | privacy