Of course, the exceptions prove the rule. In my experience the higher up the software 'stack' you go the more true your statements become. However, there are certain areas where more experience and specialization become critical. Yes, a good programmer eventually learns what they need but that difference can be 1 month when you're learning RoR before you're effective on every project thrown at you and 6 months before you're effective working on things like device drivers, kernels and my favorite pit of scum and villainy - webkit. In my experience what you find is you need a balance of generalists and specialists. The generalists learn to grasp the overall problem and can move from piece to piece and stitch the whole thing together but the specialists keep those pieces solid and give the generalists someone to rely on when they need that critical single piece of knowledge.
Exceptions...
Date: 2011-11-03 11:57 pm (UTC)In my experience what you find is you need a balance of generalists and specialists. The generalists learn to grasp the overall problem and can move from piece to piece and stitch the whole thing together but the specialists keep those pieces solid and give the generalists someone to rely on when they need that critical single piece of knowledge.