Real thinking and problem solving tends to contradict "constant ... self-development", which often (not necessarily from you but from many) seems to be a code-phrase for "learning every new fad framework that comes along."
Example: web development is so damned faddish that after almost 4 years of its prominence, I have only now settled on picking one damned framework and learning it (Play 2.0 in Scala). I fully expect my newly-acquired "skill" to become obsolete within about a year.
This is not fundamental problem-solving. Hell, I would say that the over-reliance on "frameworks" and "web-applications" to build all modern software on the "thin client" paradigm is itself a fundamental problem that requires more serious thought and problem-solving than most people seem willing to put in.
Hypothesis: Despite the high cost of doing so, backwards compatibility must sometimes be broken.
I think your criticism is of a matter so small that it can barely be seen. Some self-developmental things to learn that will almost never be obsolete in one year (or ten years:)
- Patterns and ideas in languages that you haven't been exposed to before (e.g. continuations, or pattern matching, or actors, or dependent types, or STM, or...)
- All about time-tested tools and protocols or software or media or files or hardware that you work with or on, of which there is no shortage.
- Interesting data structures and algorithms, and related math.
It all feeds into fundamental problem-solving, you can work in a way such that you are learning it as you go along, and it's more than a lifetime's worth.
With the phenomenal modern "web" frameworks (2005 onwards) available in all "web" languages that are equally as old (mid to late 90's), there are some common qualities emerging, wouldn't you say?
I mean, it is if we're looking to others for validation of what toolset we're and how we're doing it -- both are largely matters of preference.
There are definitely some common qualities by now, but nobody seems to actually treat the common qualities as principles, as things unto themselves. "We want 3 years in Ruby on Rails." "I've done Django for 5." "Nope."
Example: web development is so damned faddish that after almost 4 years of its prominence, I have only now settled on picking one damned framework and learning it (Play 2.0 in Scala). I fully expect my newly-acquired "skill" to become obsolete within about a year.
This is not fundamental problem-solving. Hell, I would say that the over-reliance on "frameworks" and "web-applications" to build all modern software on the "thin client" paradigm is itself a fundamental problem that requires more serious thought and problem-solving than most people seem willing to put in.
Hypothesis: Despite the high cost of doing so, backwards compatibility must sometimes be broken.