Scripting languages are typically way easier to pick up than full-on programming languages, so if you're starting off I'd recommend Python. The syntax is clean, the dynamic typing makes it easy, and the garbage collection saves you from the horrors of memory leaks (for the most part). Ruby isn't too bad of a language, either. It's less ugly than Perl or PHP and
Why's Poignant Guide is like the most awesome tutorial ever. Never used Ruby on Rails.
Cross-platform, although good, is not everything. Seeing as MOST people run Windows, C# is fairly solid. It improves upon Java, by making things slightly less verbose and adding nifty new features. Java is fairly ick in my opinion, unless you're
really worried about supporting other platforms.
C++ is a fairly solid choice, but it might be a little too powerful and catastrophic for a first language. There are lots of gotchas. SDL might be a good library to experiment with for a silly little game project.
I'd really recommend your friend get a Computer Science degree to increase his chances of getting a job in his field of interest, but also stress a fair importance on constantly experimenting with various code projects along the way to learn how to develop things quickly and effectively. I mean, if you don't do anything outside of school work, how can you really be that good of a coder? He's gonna probably want to make a portfolio of some independent projects, to make himself stand out as well.
Jam it back in, in the dark.