*sigh* Had you bothered to check any of the links, you'd have found the first is a link to article discussing the best beginner languages. ...
-Ehtyar
I apologize in advance for this tangent, especially it being a flame. But I think Ehtyar is just being a jerk, and I feel compelled to defend myself.
Let's look at those 5 links, shall we?
- The topic's name is "The Best Introductory Language"
- The topic's name is "Which language should I learn first?"
- This topic's question starts on the right track, one aspect of it was "Prinicipally, the first choice I have to make is what language/IDE to use", and replies focused on this aspect.
- The topic's name is "How to choose programming language?"
- The topic's name is "What language is the best for a new programmer to start with?"
Thus, the whole list is really about choosing a programming language. The broader development questions are only addressed in the third link, and there just a bit (although there were a few good responses thrown in, such as
this one from Mouser). Ehtyar, did you bother to look at them?
...And your contribution to his question is...?
-Ehtyar
Ehtyar, did you even bother to read *my* post? Look at my last paragraph:
...to learn software development you must obviously learn a particular language. But there's so much to learn beyond the language itself. You should also be looking for an understanding of data structures and algorithms (e.g., how does one sort a list?; what's a linked list for and how do I create one?), design patterns (common solutions to the problems that recur frequently; I recommend the book of the same name by Gamma et al), understanding how operating systems work, and so forth.
-CWuestefeld
I point out that there's much more to it than just language; I think this is an important insight on its own, but I didn't stop there. I also identify three specific areas of study other than programming languages (data structures and algorithms, design patterns, and OS theory), and gave a recommendation for what I feel is the best source for one of them.
I would definitely consider... learning some PHP/XHTML/javascript. They each represent some very important programming paradigms, and will bode well for you in the freelance arena.-Ehtyar
Actually, PHP teaches some fairly horrible programming paradigms, although it's true that they are still marketable skills. For more on this,
see here:
Understand that as a long time VB developer, I am completely sympathetic to the derision you'll suffer when programming in a wildly popular programming language that isn't considered "professional". I've written both VB and PHP code, and in my opinion the comparison is grossly unfair to Visual Basic. Does PHP suck? Of course it sucks. Did you read any of the links in Tim's blog entry? It's a galactic supernova of incomprehensibly colossal, mind-bendingly awful suck. If you sit down to program in PHP and have even an ounce of programming talent in your entire body, there's no possible way to draw any other conclusion. It's inescapable.
But I'm also here to tell you that doesn't matter.
...
Some of the largest sites on the internet -- sites you probably interact with on a daily basis -- are written in PHP. If PHP sucks so profoundly, why is it powering so much of the internet?
...
While PHP wouldn't be my choice, and if pressed, I might argue that it should never be the choice for any rational human being sitting in front of a computer, I can't argue with the results.
You've probably heard that sufficiently incompetent coders can write FORTRAN in any language. It's true. But the converse is also true: sufficiently talented coders can write great applications in terrible languages, too. It's a painful lesson, but an important one.