Visual Studio is great for C#. I'm currently studying C# (done C and a bit of C++) for mobile apps and xbox/pc games.
Language itself is almost irrelevant (while staying in the same programming paradigm, e.g. do not try Erlang or Lisp, you'll break your brain).
I am using C++ for cross-platform computer vision library (including windows, linux, android and bada platforms), so it's not a 100% rule that if you pick C++ you'll be doing nothing but server-side coding, and if you pick Java you'll do only web and mobile apps.
The important thing is an attitude to acknowledge that you do not know a lot of things, and desire to learn constantly.
As for the language - Java is probably the most friendly, because you do not need to worry about proper memory clean-up all that often, and standard library is superior to that of C++, so you probably will not have to learn all the data structures and sorting algorithms at the start.
I started with Java a year or so ago havent picked it up in a few months and about 2 weeks ago I decided to take a look into C++ myself I found like 3 or 4 ebooks on it and jumped right in after getting visual express setup. Made it thru the first few lessons with noticing syntaxx differences rather than concept differences. The book I grabbed was "Accelerated C++" was looking around and found a lot of recommendations for it. I have it paired with "C++ Primer" but havent opened it yet.
CPU:i5 [email protected] GPU:Gigabyte GTX760 WF3 Mobo:Asrock Z87E-ITX RAM:8Gb GSkill Ares@1600MhzCase:Atomic Orange Bit Fenix Profigy Cooling: Corsair H100i HDD:1Tb WD Cav Black SSD: Samsung 830 128Gb PSU:Seasonic M2II620 KB:Razer Black Widow Mouse:Razer Naga 2014
I get emails for development job adverts a few times a week. Most commonly, it'll be Java or C++, but i've seen a few C# openings. There's a lot of general .net adverts, without specifying a language in the opening. C# is popular in all areas, from the armchair developers to the large companies. It's easy to get hold of components, and stackoverflow is an absolute haven regardless of your level of knowledge (provided you don't ask questions that are too broad).
Java is a great alternative. I'm not too keen on it personally, too many bad memories of early-millennium java applications (grey, slow, and clunky interfaces) have put me off, even if it's far from that these days. The language itself has a few concepts different from what i'm used to, but that's just me, and shouldn't indicate it's bad (far from it, it's a great language). I'd actually recommend Java and C# on equal levels for the majority of people that pass through the forums asking for advice on programming.
As Timmeh7 says, memory management isn't a real concern for Java or C#. This is good or bad depending on how you look at it. If you never learn to free objects you create when learning the language, then the ideals of a native/non-interpreted language such as C++ or Delphi will be entirely different. If you stick with those languages though, then you don't need to learn it. It's a concept, not a rule. It's one of the basic concepts though, and a crucial one at that. However, it's only crucial if you ever plan to switch languages.
Coder, Gamer - Thoughtcloud | Node.js Monkey | Supporter of error 418 (I'm a teapot)
Knows: Delphi, PHP, WQL/SQL, Python, JS + jQuery, HTML + CSS, Ruby, Node.js (+ Express & Socket.io)
PC: 750D / 16GB / 256GB + 750GB / GTX780 / 4670K / Z87X-UD4H | Laptop: 8GB / 120GB + 480GB / GTX765M / 4700MQ
4670k @ 4.5GHz - MSI Z87 G45 - Silverstone AR03 - Gigabyte Windforce GTX 770 OC - Antec 620W High Current Gamer
8GB Crucial Ballistix 1600MHz - Samsung 840 250GB - 1TB WD Blue - ASUS VG248QE @ 144Hz - Fractal Design Define R4 - Windows 8.1 64-Bit - Razer Death Adder 2013Cooler Master QuickFire Rapid MX Cherry Red Switches - Steelseries QCK+ - Steelseries Siberia v2
If you're completely blank about programming you should watch the entire series on Java programming here -> http://www.youtube.com/view_play_lis...A56BC7F4A1F852
Most of the stuff told here is useful for C++ also as Java is more or less C++(+).
You could also watch http://www.youtube.com/view_play_lis...6E58F856038C69 - which is more c++ only but also dives into other languages.
Lastly you can look at http://www.youtube.com/view_play_lis...558D49CA734A02 - which includes C, Assembly, C++, Concurrent Programming, Scheme, and Python.
The videos are a bit old but the concepts in the videos still stand and they are very informative.
Last edited by Gandilf; 2012-12-30 at 02:01 PM.