I started with Visual Basic (the old one) for some months, after that I moved to Delphi, after noticing it's dead I started working with WPF, then I heard about the birth of WinRt (API that metro style apps use) and that this will make WPF dead, I stooped all this, I'm now interested only by (HTML/CSS/JS/ASP.NET MVC), and I am always thinking if this will still work for the next coming years (HTML/CSS/JS for sure will still work but ASP.NET MVC nobody knows), I really hate the fact that computer science changes so fast, I am regretting all the time I spent (for about 3 years) reading ebooks practicing technologies that I don't use and that I will never use, so do you have any suggestions, comments, advices? Because I start thinking about giving up and looking for some other job that has nothing to do with computers
closed as not a real question by thorsten müller, thiton, gnat, Jim G., Ozz Feb 21 at 12:31
It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, see the FAQ.
Computer science doesn't change fast.
All the things you are describing are specific technologies, which do change fast, but are more like engineering than science.
For me at least computer science speaks more to algorithms and data structures, which change much more slowly and in general are more transferable than specific technologies anyway.
First, the ideas behind these technology changes are often quite old. E.g. we see now functional features spreading in mainstream languages, which come from quite mature languages like LISP, ML and Haskell. And if you really understand a certain concept (e.g. closures/lambdas/higher order functions), it's much easier to grasp a certain implementation of it. Try to accumulate high-level, "meta" knowledge, which can be applied in completely different languages, frameworks etc.
Second, learning itself can be a lot of fun and very rewarding. Maybe you learn the wrong way, maybe you have first learn how to learn. Everybody has a different learning style, and you need to find yours. For me a style featuring cooperation, participation and immersion works best, yours could be different. Try to remember which topics you loved in school, and how you learned them - maybe the same techniques work for you today, too.
Third, you should see change also as opportunity. Even a guru of framework X or language Y has to start over as everybody else when technology Z emerges, and this is your chance to surpass your colleagues. Eventually, if you get tired from programming, this could be your ticket for going up the carrier ladder, and if you are high enough -> no programming.