I think this is all fantastic advice, except this one:<p><i>A language is a language is a language</i><p>Perhaps I am simply not yet experienced enough, but I find which language I am working with makes a great deal of difference.<p>I know that some of it is personal preference and knowledge of the languages, but at the same time some of it seems to be that some languages are better suited for some tasks than others, and yes it at least looks like some languages are all around better than others.<p>Personally, I generally choose Python as my general purpose programming language and prefer it for most projects, and I get a lot more done in than I do in Java.  I use C# for many types of projects on Windows, but I use VB.Net only if forced.  If I ever decided to write an OS as an exercise I would probably start with C and if I needed to do something heavily statistical I would seriously look at learning R.