I agree with what seems to be a consesus of the importance of C; however, I would recommend becoming familiar with C++ as well. Much of the syntax and philosophies behind C++ are carried on in other languages and a firm grasp of C/C++ will make it easier to understand them (for example, java, perl, and php to varying degrees are all fairly similar to C++).

I would recommend at least becoming passibly familiar with java (it can be real beneficial if you are for example developing products for both unix and windows in that you can have basically one source tree).

Assembly is something that after you are comfortable with a language, say C, that it might be worthwhile to be somewhat aquainted with; however, I would recommend against spending too much time on it. Most of the modern compilers are far better at reducing instructions and being fairly creative in assembly and it would be somewhat difficult to improve upon what they do, not to mention god awfully time consuming to beat them. It would be a very rare occasion to have to do something in assembly, not to mention, it is going to be different for every processor thatt you run across and once you start talking about different manufacturers (intel v. sun), you can get mind numbing differences. I would recommend becoming familiar with the basic concepts of assembly and the basic operation of it, but would recommend against trying to learn one specific processors code, at least until you have a strong grasp on some of the more visible languages.

Neb