I think software developers would be wise to be a little more flexible. The field is new enough that ideas change all the time. The worst projects I've worked on we're stilted by "we'll bring in a new tech if we need it (but we can always work around needing it)".
Conversely, the second worst projects I've worked on suffer from ADD: "Look, a shiney, new tech. We must embrace it!"
My philosophy is to continually learn new stuff for its own sake (I've focused on languages in the past, but I think it's time to switch to algorithms). I may never use something I've learned, but my tool chest is much more broad (and that Erlang tinkering is coming in handy now!).
I don't think I'm a better developer that a highly-focused compiler writer that knows YACC inside and out. We have different skills for different needs. But I still think the compiler writer would benefit from broadened education.
Conversely, the second worst projects I've worked on suffer from ADD: "Look, a shiney, new tech. We must embrace it!"
My philosophy is to continually learn new stuff for its own sake (I've focused on languages in the past, but I think it's time to switch to algorithms). I may never use something I've learned, but my tool chest is much more broad (and that Erlang tinkering is coming in handy now!).
I don't think I'm a better developer that a highly-focused compiler writer that knows YACC inside and out. We have different skills for different needs. But I still think the compiler writer would benefit from broadened education.