I work for a very large computer company and deal with customers from big customers as a central part of my job. I discuss their software development practices and their runtime environments routinely. Here are my views on your problem...
Should I learn lots of languages or not? Will a prospective employer want lower-level skills in lots of languages or higher-level skills in one language? Well, obviously they'll want skills in whatever language they typically use in development, so the trick is going to be choosing the correct small range of languages to learn (possibly one really central one). If you want to study computer programming languages, you will need to study a range. If you thoroughly understand one language, picking up others will be no trouble anyway.
Do I need to learn programming through a formal education process or can I pick it up myself? While it is probably true that most developers learn the languages they use through trial and error, it is also true that most developers create crappy code. You need to understand how to use programming languages properly and a well-structured education will help with this. A really good grounding in general object-oriented software design principles is probably equally valuable here, though.
So which language should I go for? Well, the customers I deal with (banks, petrochemical, manufacturing, public sector...) predominantly use non-Microsoft environments for their servers; mainframe, Linux, HP-UX, AIX and Solaris are all popular, although there are obviously a few MS servers in the mix as well. C# only really runs on Windows (certainly using runtimes which large corporations might choose), so that is going to limit your options. COBOL is widespread and a great choice if you want to spend your life repairing ancient code. FORTRAN isn't used much in business, if at all. Assembly language is far too hard to maintain. Java (JavaEE specifically) runs on all useful platforms and provides a range of options to cover all eventualities. I'd go for Java, but you might have other interests.
Should I be learning programming at all? This is an interesting question. If you're living in a rich country, such as the US or somewhere in Western Europe, you may well find that all the programming jobs you might have wanted to apply for are now available elsewhere - in India or possibly Eastern Europe. You might be better off focussing on design and architecture than real source-level development.
The iPhone is the way, the truth, and the life. No one can call the Father except through the holy handset.
So... you do still have to use the latex suit and mask while using Ubuntu or not? I find it the whole outfit a little sweaty.
Should I learn lots of languages or not? Will a prospective employer want lower-level skills in lots of languages or higher-level skills in one language? Well, obviously they'll want skills in whatever language they typically use in development, so the trick is going to be choosing the correct small range of languages to learn (possibly one really central one). If you want to study computer programming languages, you will need to study a range. If you thoroughly understand one language, picking up others will be no trouble anyway.
Do I need to learn programming through a formal education process or can I pick it up myself? While it is probably true that most developers learn the languages they use through trial and error, it is also true that most developers create crappy code. You need to understand how to use programming languages properly and a well-structured education will help with this. A really good grounding in general object-oriented software design principles is probably equally valuable here, though.
So which language should I go for? Well, the customers I deal with (banks, petrochemical, manufacturing, public sector...) predominantly use non-Microsoft environments for their servers; mainframe, Linux, HP-UX, AIX and Solaris are all popular, although there are obviously a few MS servers in the mix as well. C# only really runs on Windows (certainly using runtimes which large corporations might choose), so that is going to limit your options. COBOL is widespread and a great choice if you want to spend your life repairing ancient code. FORTRAN isn't used much in business, if at all. Assembly language is far too hard to maintain. Java (JavaEE specifically) runs on all useful platforms and provides a range of options to cover all eventualities. I'd go for Java, but you might have other interests.
Should I be learning programming at all? This is an interesting question. If you're living in a rich country, such as the US or somewhere in Western Europe, you may well find that all the programming jobs you might have wanted to apply for are now available elsewhere - in India or possibly Eastern Europe. You might be better off focussing on design and architecture than real source-level development.