Right up my alley: 7 years as a commercial software developer, 6.5 of it in programming language design and implementation.
Best langauges to start with:
- Pascal (or Modula II). Learn the basics of block structure programming, and get you thinking in sequential algorithms.
-Smalltalk: If you're going to start out doing object oriented programming (like Java), might as well go the distance. Smalltalk is all about the objects.
-Scheme: Note: only go this route if you're strongly mathematically inclined. Scheme (a variant of LISP) will get you thinking about problem solutions in ways other languanges wont.
These three are all great learner languages, but are awfull production languages. If you only want to learn 1 language, and you want to be able to put it to work, go with Java. You'll ge the most bang for your buck there. Absolutely do NOT go with C++. Dont get me wrong...it's a very usefull language, but it's a b***h to learn. Java is quite similar but has paved over some of the rough spots. "ANSI" C is marginally better, but really it should be Java.
Perl is a weird language, but you can do some cool stuff with it. Get the O'Reilly book if you're going to learn Perl. It's pretty good.
Oh, and boasting about assembly code is like showing off your snake bite scars. People do it to look tough.
Assembly is only needed for small pieces of things that need to be super-efficient (device drivers mostly). It is the worst language to try to learn, and definitely NOT a good place to start