It depends on what you want to do. If you want to stay on the bleeding edge of things, building awesome products and generally having a good time, then sure, always keep learning and switching toolsets and all that. But there are niches (e.g. driver development, reverse-engineering, compiler dev (just taking some niches I personally work in and know well)) where your toolset may not change substantially for a decade or more. This isn't necessarily the most fun work in the world, but that's why it remains highly paying, and will for a very long time to come. You don't see many people coming out of college and saying "you know what? I want to write kernel drivers for webcams!", versus "I'm going to build the next Facebook!"