|
In my opinion, it's the "Jack of all trades" option, for two reasons.
Firstly, technology changes. Specialising in a particular field won't do you much good when the market discovers the next big thing. A generalist can adapt more easily, as they have a wider range of experience to draw on.
Secondly, I don't believe it is possible to be a good programmer if one limits oneself to a small field. A good programmer knows the limitations and strengths of his tools, and utilises them intelligently upon a particular problem. If you specialise in one particular tool, then you cannot easily compare it to other technologies, and you become blind to its limitations, and ignorant of the advantages of other approaches.
That said, the example you picked, web development, isn't exactly a small field or a single technology. The web is just a medium, the interface; the problems you face behind the scenes are extremely varied. Web development is no more a specialisation than desktop application development is.
|