Depends on your definition of a generalist. A good software engineer can jump into any programming languages, read the docs, and surmise how to approach the code. If a generalist to you is the ability to write fundamental code in any language. With, these fundamentals including variables, functions, arrays, etc. If your definition of a generalist is knowing all the languages in and out, well I haven’t seen that unicorn yet.
I consider myself a generalist, but I can honestly say, I wouldn’t be able to tell you every class, library, feature of all of the programming languages off the top of my head. When I run into a problem I need to solve, I’ve used enough languages on different projects that I can look at the documentation and figure out how to solve it in the language I’m working in.
Part of being a good programmer in today’s world is being a good problem solver. Being able to look at a problem and begin to dissect the issue. As well as how to go about solving it is extremely important. I would say problem solvingis the number one most important thing a programmer can possess.
Furthermore, Rey’s original response can be found here on Quora.