Good suggestions all-around... I didn't think many people learned something unless forced. Keep in mind you might spend all this time learning something like Matlab, then come to find in a new lab that either A) you didn't even learn what you needed to thus needing to learn more or B) the lab uses something like Superlab, ePrime etc etc...
Also, depending on your orientation, different fundamental operating system languages will be of a necessity. Before I could recommend to anyone a language I would have to recommend the person learn Unix, be familiar with handling the shell, etc... particularly if you were to work with fMRI, PET etc, you will be hard pressed to find a lab that does not use an in house program running on a Unix-based platform...
IFF you have that knowledge, THEN I would say move on to the fundamentals... do you know what arrays are? Can you setup a database from a shell, etc etc... believe it or not a lot of these things are very important to programmers before dealing with whatever language they want to use.
THEN, move on to the "easier" languages, especially languages that have GUIs to help you design, people on here have suggested good languages to start... Visual basic (technically now Visual Studio something something) is OK but personally is utterly useless unless you also will be using EPrime (since EPrime uses EBasic, a variation of Visual Basic)... if for some strange reason you program with a non-Unix platform, then I would say C++, but Imhard pressed to figure out why you would ever, ever need to use that in psychology. I find also that Java and Python, albeit more fun languages, are far less likely to ever be used in a psych or psych-related lab... utter waste of time in many cases.
My personal preference here is to agree with Matlab, but IF you learn Matlab, you also need to familiarize yourself with coding-based math programs i.e., R, SAS, LISREL,Maple etc etc because all of these will be far more valuable in the mean time.
Word of advice, don't set out to do something that might never be used, learn the basics that will be necessary in any lab, psych or not.
AJ
I'm not sure what will come in handy in a lab, but once you learn a language it becomes much easier to learn other ones.
I know several languages since my undergraduate degree was computer science. I'm not sure what would be useful in a research lab though. I certainly think that learning an object oriented language is conceptually useful, as it teaches you to operationalize what you are trying to program into discrete variables, a skill that is very useful in research.
Java is fairly self-contained and can be used on several operating systems. Lisp is a recursive language, but is very popular for artificial intelligence (along with Prolog). C++ is pervasive (along with its Microsoft derivative C#).
I would say Java is the most versatile, because you can run the program on any system and the graphical user interface is already a part of the programming package. If you wanted to create a suite of software that carries out some type of proprietary IQ testing, or perhaps some type of proprietary personality testing, then you could easily do so with Java and then set it up to run on any operating system. Some of the languages being discussed are purely scripting languages that run within a parent program with limited functionality, thus they will not allow you that level of product development.