Hiikuro said:
I must say I'm rather biased. In retrospect I realized I've spoken out of turn. I've just grown up with C/C++ as my main programming languages. I don't know much about C# to be honest, I've only heard that it is fairly similar to Java. Considering my unpleasant experiences with Java so far (among other things, generics are frustrating in Java), that doesn't put it at a high spot on my list. In addition, C# isn't available for linux (or mac, as far as I know), which marks it down in my book. As for "bad programmers", it is just what my general impression is from programmers I've spoken to, which isn't a terribly reliable measure I know.
Generics have been a feature of C# for a while now, so you can cross that off

But yeah, the
one criticism I have (because the .NET libraries as well as the language itself are both
fantastic for any business/web application, and probably very good for a good deal of game dev too) is that C# isn't anything like cross platform. You
can compile .NET applications on Linux through Mono, but that doesn't really count - you'd be far better off just writing the thing in Java on most Linux distros, and on OSX I can't think of any
really good reasons not to write stuff in Objective-C and use the Cocoa libraries.
And while I could totally take affront at the idea that C#/Java "breed" bad programmers, it's kind of true - it's just so
easy (from a .NET perspective) to program in C#, and with tools like WinForms or ASP.NET WebForms it's just so
easy to pump out applications that are terribly written that all the bad programmers end up using these tools rather than writing in C++ (for instance). ASP MVC and (to a lesser extent) WPF/Silverlight are becoming a bit more prominent though, and they at least
try and encourage a proper coding style through the framework.
Of course, if shitty programmers didn't exist to program shitty applications badly it'd mean we'd have to do those jobs, which would kind of suck.
Hiikuro said:
(probably because mere interest can go such a long way).
This is the most important thing in learning to program. Having an interest and programming stuff you actually want to do go such a long way in helping you to be good at it, and so there is absolutely
no reason not to start as early as possible. Granted some of the best programmers I know only just started learning at University, but they still had a big interest in it and spent a lot of time at home beavering away on projects. The easy trap to fall in to is just doing enough to pass coursework assignments - you'll technically be able to program, you'll be able to pass your degree, and you might even get a job at the end. I find it hard to believe you'd be a great programmer, though, which means the job probably wouldn't fit in with your idea of dream employment.