functional programming
...
pretty popular in academia
...
Good to learn, though, I advise you to pick one up if you can.
While I totally agree that it's well worth any software engineer learning a functional language
specifically because of the breaking-your-head part (like any Lego model, after you drop it and rebuild it the first time it's generally put together in a much better way, you've found out where the weak points are and reinforced them), but it's worth mentioning that functional languages are - generally speaking -
totally worthless on your CV. I sincerely doubt that my current boss has ever even
heard of Haskell (or SML, the one I learned at university), and if he had he'd not consider it relevant to my job at all.
Personally, I think that Functional Programming was the single most useful course I took at uni, and if I was running a profitable software company and could afford to be selective I'd be very tempted to task new hires with learning and solving some relatively-hard problems in a functional language before I let them through their probationary period, but realistically nobody in the business world cares at all, they're considered toys.
I'm asking about OOP since it's what I'm being taught in my degree. It shouldn't start to fade right after I had to start putting time into it xD But since it'll gradually fade, if it is fading, I have no worries
I'll add my voice to the choir of "what, OOP is dying? First I heard of it". If anything, OOP has been gaining more ground, recently, as far as I can see. I would tend to consider anyone who calls OOP 'a fad' in the same way I would consider someone who maintains it's worth coding everything in assembler instead of C++ for performance gains.
As it goes, I work in business software; of course it's entirely plausible that the situation in the games industry or science is different, but I get the distinct impression that business software is a far larger job market, so you're more likely to find a position in business.
all I really wanted to know was whether it would be worth it to invest time in libraries like OpenGL or DirectX if I want to show experience.
(The other side of the coin that I don't think I remember seeing in the thread so far is simply that learning
any library at the very least shows flexibility, interest in your craft and learning ability, all of which are important in a programming job regardless of whether you'll actually be using DirectX or OpenGL.)
and also C#
As it goes, if you know Java you probably shouldn't have any trouble learning C# in a day or two, API aside. We don't have to declare which exceptions our methods might throw and some of our methods
aren't virtual, but the two langages are pretty similar in a lot of ways. Whether you like it or not probably depends on whether you think Java is a nice, sound, engineering-oriented language or a horribly-long-winded over-prescriptive language. (Personally, I wouldn't be surprised if the Java compiler started requiring that open-braces were on the same line as the function declaration and not the line below, so I quite like C# in comparison. ;-)