In General, my own opinion, software is better than hardware; Java is not so hot, but it's still a better option; as a guy in MS side, SQL, ASP/VB, COM/DCOM (using C++), and the all new .NET and C# are must to know.
But you should remember, no one could give you a direction without knowing your backgroud on education and working. The best way is to strengthen your current skills and experiences.
Good Luck