What do you guys recommend as a beginner language?
What are your goals? Do you want to learn enough to create interactive web pages or do you want to become
good at programming?
If you are serious about programming, then you should try to learn not just one, but different types of programming languages. You could learn more about your own culture by visiting other cultures.
I would suggest:
Ruby,
Erlang and
C, because they are different.
Ruby is very cute, completely object-oriented, modern and friendly.
Erlang is a "functional" language. It is pretty hot right now and quite a lot different and I think that more programming in the future is going to be like in Erlang.
C is the grand-daddy of programming languages - tedious to write in, but learning C will teach you more about how computers work, and that is a good thing. It has also influenced more successive languages than any other (C++, Java, C# are just a few) and those languages have kept many of C's original idiosyncrasies.
Java is like the common lowest denominator of programming languages - it is used a whole lot in industry, but it is not very interesting and there are better alternatives for learning. Once you have got object-oriented concepts from Ruby or Python and some C, you will be able to pick up Java easily but you will find it limiting. C# is like a more modern Java, with features from Python and Ruby thrown in, but you will also feel that it is a Microsoft product.
If you are going to have a career in programming, or if you are going to do a lot of web programming, then knowing SQL is important. I have done quite a bit of web programming in PHP but it is basically a simplified C++ with the C standard library. Avoid Perl unless you enjoy punishing yourself.
My own path was Basic followed by assembly language on processors that were nice to program on (6502, Motorola 68000) followed by C/C++. I learned Java, Python and Ruby not far after they came out.
In college, I was subjected to many different languages, but most of them I have not touched since: Pascal, Scheme, Prolog and Smalltalk are a few.
To become
professionally good in a language, it is not about knowing the
language itself so much as it is about knowing the (de facto or official) standard library that is associated with it.