I always think of programmers as construction workers in an air-conditioned office environment. I associate computer languages to construction tools. The languages will continue to change over time so you need to be aware of the new developments. In construction, there are also new tools coming out to make construction faster and more stable. If you will stay as a programmer and continuously learn all the new technologies coming out, it will take tremendous effort and time. I don't think that you will even be able to master all these technologies because there are just too many and there will always be something new at the end of the road. The important thing I believe is to at least be able to know the concepts, and invest more time on becoming an architect, consultant or project manager. Let the younger people do the programming for you with your proper guidance. There is a bigger challenge in software or product development than simply programming. You may consider the challenges of programming more interesting, but can you see yourself 20+ years from now still doing programming even if you consider yourself a hardcore guru by then? Try this.. let's say your dad is a programmer, can you imagine your dad still doing programming and going home late at night and working on weekends because he hasn't fixed the bug? Again, just like a construction workers, programmers are builders following the orders above. You better aim high so that one day you will be the one giving the orders.