Hacker News new | ask | show | jobs
by another-dave 1388 days ago
In a perfect world, you'll always hire great generalists who can turn their hand at anything and have enough time to onboard them. In reality though, you're going to have different 'holes' in your team shape at various times that will drive who's a potential fit as a hire.

And conversely, you're going to find different candidates in your search — if your codebase is primarily in Java, would you really turn down a strong Java dev, holding out for someone just as good but who's also willing to work on UI code and learn Haskell (even if you've no plans to use it)?

A good chef can probably train to become competent in any station in the kitchen and can train to become competent in any cuisine. But if your head pastry chef in a classic French restaurant leaves suddenly, you're unlikely to replace her with someone who's spent the last 10 years making sushi but says "I have never made mille feuille before but it looks like a good fit here so I will learn it".

1 comments

A generalist would be someone who is fluent in C, Python, Java, JavaScript and probably Haskell/Clojure/Scala. This would mean that they have been exposed to static and dynamic typing, manual and GC memory management, class-based and prototype-based OOP, and all the important functional programming concepts.
“Fluent” is a strong word. Developers are rarely “fluent” in one language let alone 5.

“Had exposure to” IMO is more accurate here. You don’t need someone who has mastered each and every language in and out. IMO you don’t even need someone to have experienced all of them to be called a generalist.

It’s more about the way they frame a problem and come up with the solution and their ability to pick up key concepts quickly. The specific experience is key to long-term success but that can be taught to someone that is open and eager to learn.

I guess it depends on what you mean by generalist who's fluent in all of those things — is it someone who has broad rather than deep experience, someone who has both broad _and_ deep experience, or someone who's willing to pick up whatever needs to be done and learn where they have gaps.

I think you're describing #2 and the article is describing #3.