Re: what language should I learn ?
It really depends on the kind of programming you want to be doing. If all you're interested in is AJAX and web programming then don't waste your time with Assembly, C, C++, and other relatively low-level languages. Instead focus your efforts on languages that are used on the web: Javascript, PHP, Python, C#, Java, Perl, Ruby, and suchlike.
If you're more interested in doing OS/Kernel/Driver development, or working with embedded systems where there may not even be an operating system in place then C or C++ is the way to go. For embedded systems a good knowledge of the assembly language instructions for the CPU you're working with is also a very good idea. (Common embedded CPUs I've run into are the AtMega128, Motorolla 68k, and ARM.)
If you're just starting off as a programmer and have no idea what you want to do (i.e. you want to test the waters and you'll figure out what you're interested in as you go) then I'd suggest either Java, C# (if you're using Windows -- Visual Studio is a wonderful IDE, and one of the few Microsoft programs I can honestly say I enjoy using), or Python.
Python is arguably one of the easiest languages to pick up. The tutorials are clear and numerous, the syntax is easy, and the code is designed to be legible by a human. I've heard it described as "executable pseudo-code."
Java gets used a lot in introductory university courses. It offers enough flexibility that you can do some pretty low-level stuff. Not as low as C or Assembly, granted, but still pretty low. But unlike C it also scales up very easily to very large, complex applications.
If you're interested in learning Java from the beginning I suggest you look at this wiki: COMP1010 Wiki Textbook. It's the online textbook used by the University of Manitoba for their introductory computer science course. You may find it helpful.
(Note for anyone else who checks out the textbook: it doesn't cover objects, polymorphism, or any of that jazz. That's covered in COMP1020, the second introductory course. 1010 is pretty much procedural programming in Java. And unfortunately I don't think there's a 1010 textbook wiki (yet).)
Last edited by ve4cib; February 26th, 2011 at 10:27 AM.
GCS/O d+(-@) s: a-->? C(++) UL P+ L+++@ E@
W++$ N++ !o K++ w(++) !O M(-) !V PS+(++)
PE-() Y+ PGP++ t++(+++@)* 5++ X++@ R+++@
tv+ b++(+++) DI++ D+ G+ e++>++++ h- r y?
Bookmarks