For most of the applications you'd be developing (so long as you avoid UI dependence issues) you can use your .NET code on Windows or *nix systems. .NET is a good choice to start with as there's more example code than you could wish for and the Mono project (Linux version of the CLR) is very well supported and maintained. If you're looking to avoid Microsoft-esque things, I would start with Python or Ruby, which are both incredible general purpose languages with very active communities. I would highly recommend avoiding PHP if you're seriously looking to learn to program, as it is a terribly designed language that will give you awful coding habits. However, if you're just looking to throw something together quickly it does have its upsides.