Languages you should learn to become a game programmer
Gaming programmers help write and code the software for video games. Game programmer will typically be part of a collaborative creative team that includes game designers and artists. As a gaming programmer, you might design core game features, oversee game testing and conduct design reviews. You could also work in production, artistic concept, and game play. With people looking to get into game development one main questions come up over and over. There are literally thousands of programming languages out there. It's worth saying that only a very small subset are used frequently.
So how does a fresh new game programmer know where to start?
There are two main types of programming you should focus - Systems programming, and Web programming. Both are important, although what you end up doing will mostly be down to the focus of the studio and their in-development titles.
1. System Programming -
Systems programming means programming for a stand-alone application, such as a video game run on your machine. The two most common languages for game designers to learn are C++ and Java, although other languages are popular C, C# for Unity, Assembly.
2. Web Programming -
C++ is a language with a relatively high entry barrier, but the reward is greater because it allows more direct control over the hardware and graphical processes. It is an object-oriented language, meaning it uses internal structures to better organize code into reusable blocks. It is by far the most commonly used language for writing game engines, and some engines only accept information written in C++. If you only choose one language to learn, this would be it, because most other object-oriented languages stem from C++.
Java runs on everything, from printers and microwaves to complex video game systems. It is a very dynamic language with lots of applications, making it seem like a good choice to learn. Java is closely related to C++, so learning the two alongside each other would not be difficult.
All things being equal, this is the language I go to. Generally, this is the non-C++ language most people will recommend and for good reason. C# is a modern derivative of C++, in that it was based on C++. Excellent standard libraries. Probably the best on any platform I've ever used. So things like working over the network, manipulating strings, loading files, etc. are by far easier than C++.
If you as a beginner pick assembly in this day and age, you did something wrong, extremely wrong! Choosing assembly as your first language makes C++ look like a wonderful choice! That said, this is about as close to the metal as you can reasonably get. In this age of i7 quad core processors though, getting close to that metal is a pretty stupid thing to do.
Which language you choose to learn will depend a lot on where your interest in game development lies - web-based or PC-/console-based. PC and console based languages will include object-oriented languages, as well as simpler scripting languages, whereas web development will focus solely on technologies built for the web.