Guide to a $150,000 + programming career...
1. Pick a language, Java or C#.
2. Get familiar, learn the stack of that language. KNOW the stack of that language. KNOW how each technology complement each other. Be ready to adapt because these technologies can change OFTEN. Build projects that uses each technology of a stack.
Every language has a stack of technologies used to build applications. Stacks consist of a database backend (usually SQL), the business tier (usually written in Java or C#), and the UI (usually the web application or desktop gui).
C# .NET stack
C#
ASP.NET MVC (web applications) or a XAML-based MVVM systems (WPF for desktop applications)
HTML5, JavaScript, CSS (knowledge of these technologies for someone using ASP.NET MVC)
(ORM technologies) Entity Framework or NHibernate (or similar)
SQL and LINQ
Java stack
Java
Java EE web frameworks (such as Spring MVC framework which is most popular) for web applications
HTML5, JavaScript, CSS (knowledge of these technologies for someone using Java EE)
(ORM technologies) JPA/Hibernate/JDBC (or similar)
SQL
Also, keep in mind that sole desktop apps are becoming a thing of the past with web apps now running the show so I wouldn't really focus my time with learning desktop technologies.