Don't get too caught up with the latest buzzwords. Do read a lot of books, and a lot of code, and do write small projects.
Pick one language, I'd suggest C++ or C#, to get very good at. As time passes buy every good book on that subject area, and really master the language and common idioms. Alternate time learning about that language with learning about more general things (operating systems, Win32 internals, Linux kernel, whatever you're interested in).
Consider the fact that you'll potentially be doing this for a very long time, and don't expect that you'll be an expert in anything in a year or two. It will take time. Hard work does pay off though.
My other suggestion is to read at least one soft-skill book for every two hard-skill books you learn, even if the soft-skill book is somewhat related to programming (e.g. a book on productivity for programmers). Examples would include books on time management, influencing others, communication skills, etc. Over time these skills pay off at least as much as the core programming skills, if not more.
I cannot conceive that anybody will require multiplications at the rate of 40,000 or even 4,000 per hour ... -- F. H. Wales (1936)