This'll sound like a cop out but it really depends. Are you going into academia? If so it takes years of specialization to get good enough to make a meaningful contribution in the form of innovative and good quality research.
Are you planning on going into startups? In which case jack of all trades does very nicely!
The key is to be very good at some things but to also keep your eyes open and learn things outside your comfort zone - you never know where your new found knowledge can take you and often times it can make you better at whatever you chose to specialize in.
So senior architects who write APIs - for fucks sake (showing my background here!) - write the prototype client library - it will improve your API design skills.
Backend devs should write a front end or two or at least do some pair programming with the front end guys.
Bottom line - be very good at some things - but be open to learning new things and getting out of your comfort zone.
Are you planning on going into startups? In which case jack of all trades does very nicely!
The key is to be very good at some things but to also keep your eyes open and learn things outside your comfort zone - you never know where your new found knowledge can take you and often times it can make you better at whatever you chose to specialize in.
So senior architects who write APIs - for fucks sake (showing my background here!) - write the prototype client library - it will improve your API design skills.
Backend devs should write a front end or two or at least do some pair programming with the front end guys.
Bottom line - be very good at some things - but be open to learning new things and getting out of your comfort zone.