I look at the difference between being a deep specialist as a software engineer working on a particular “stack” and a generalist who builds software using a wide variety of tools, from the perspective of someone who has done both.
See All 10 Episodes of "Structure and Interpretation of Computer Programmers"