If you wish to learn programming, the first thing you need to ask yourself is what kind of programming are you doing?
Before the Internet was common, BASIC was the language one would typically start programming with. When I was in high school (back in 1982), I learned Applesoft BASIC and 6502 assembly language on an Apple II+ and Apple IIe. When I was in college ( http://www.valpo.edu
), I learned Pascal and Fortran on a Data General MV-8000. My first exposure to UNIX came when my alma mater acquired two Sun 386i workstations running SunOS (now Solaris) and the NeWS graphical interface. (These machines would in 1995 become their first web servers.)
These days, if you are looking to program applications for Linux/UNIX, I recommend starting with C
for the basics, then C++
to learn object oriented programming.
I would also recommend Pascal to start as that language was designed to teach programmers good programming practices such as top down design, modularization and structured programming. On PCLinuxOS, FreePascal is available and is source compatible with Turbo Pascal 7 (and Delphi).
Next, I recommend Java, for creating of Internet applications.
For scripting, I recommend Python and Ruby, as well as the scripting languages that are built in to shells such as bash, csh, tcsh, and ksh. Tcl and Tk (from the creators of Java) are good choices, but are not as widely used as Python or Ruby.
Perl should not be forgotten as it has been around for some time.
There have been some new languages such as C#, Go, Vala, Erlang, and Falcon. The FSF frowns on C# because of its association with Microsoft and their .NET platform (represented by the Mono project).