@matrix
Oh, is that so? Sorry for the long-winded comment then. Honestly, OOP dominates most other programming roles in the IT industry, so on that note, C# or Java might actually be the way to go. However, that is all assuming you want to get a role in the IT industry that involves programming in the first place...
@mcgee
@Nelagara
In terms of C++, it allows programmers the freedom to mess around with low level stuff such as bitwise operations, masking, along with high level concepts like classes, structs, functions, etc.
I don't specifically know much about Lua, but the Compiled + Scripting language combo in engines is quite common. It allows gameplay programmers to focus on code that specifically affects how the game plays without having to worry about allocating / deallocating memory, performance / security issues with improper use of functions (see printf vs. sprintf for example), and much more. It's not used everywhere, but it is quite common in bigger companies especially. Since the departments are so segregated, there isn't going to be much communication or cross-over skills between the guy who programs physics and the dude that imports and programs how animations play in the game, so it's very important that they can both co-exist without people strangling each other for messing up the main code base.
@matrix @mcgee
@Nelagara
Compiled languages need to be turned into a binary that contains the instructions for the processor, while scripting languages are usually interpreted which means the processor has to first figure out on the fly what the block of text means and then executed it. That introduces a significant speed penalty.
@Bunn0241 @mcgee
@matrix
There is absolutely nothing a professor can teach you about C# or Unity that the documentation or the internet doesn't already do 15x better, as someone else stated in the replies already.
Either way, if you're just starting out with programming, don't get caught in the whole OOP stuff. Even though it's pushed on beginners a lot, OOP is simply another paradigm you can use to sort through and organise your higher-level code, much like procedural or functional programming, that's all.
Learn all the C and C++ (I recommend C, but use C++ if you wanna stick to industry standards) you can, don't get scared to mess around with lower level code (anything from straight assembly to bit manipulation through masks & such). If you're in a uni CS course, you probably know quite a bit more about computers and lower level stuff than you might give yourself credit for anyways, so try stuff out.
BTW, don't waste your time with seriously learning C# or game engines like I did. Most players in the game industry use in-house bespoke engines made specifically for their titles, or they customise a pre-built engine like Unreal until it basically becomes one (using C++, no less). If you wanna make games, there's no better time than now, so make some small projects, like Tic Tac Toe, then Tetris, then PacMan, so you can experience the software development workflow and problem solving for yourself. Having that kind of experience and skill already puts you head & shoulders above your classmates and quite a fair bit of your competition.
@mcgee