I’m a generalist and I would 100% recommend it over being a specialist because you get to see the whole picture. You start to notice patterns across different programming paradigms that make you a better developer. You learn techniques to quickly teach yourself and learn about the problem domain which translate into other parts of your life besides computers. I’ve taught myself how to work on cars using deductive logic when I get stuck and software engineering principles to make decisions when I’m afraid I might break something and I’ve improved my personal finances with data science.