Tuhin Subhra’s Answer
So my suggestion would be, learn one programming language proficiently (C/C++/Java/Python). When there is a need to learn another language, you can pick it up very fast.
All the programming languages were designed considering some challenges which other programming languages can't solve. So, every programming languages have certain pros and cons. So, be a master in one of the language you prefer, and learn others when the need comes.
There is no specific number of languages you should learn. It is best to be well rounded in your developmental skills.
Personally, I have experience in C, C++, C#, Java, HTML, CSS, Linux, MSDOS, Oracle, Teradata, and a few others. There are many languages out there. It is best to get as many as you can while in school and understand each of their principles. The more languages you learn, the easier it will be to pick up the next one that comes around.
So, instead of identifying languages, let's talk about a toolkit. You need to pick up an object based language for sure. This can be C++, Java, or even Object Oriented Python. The important thing is to understand the concepts of an OO language and its benefits. Once you have that, there will be minor differences between the other languages, but that's just syntax that you can Google.
Knowing a markup/data presentation language and how to traverse it like XML or XHTML or JSON will be very useful because it is how information is passed and stored for many online applications.
Some form of SQL is also important because with it comes at least a basic understanding of databases. MS-SQL and Oracle are pretty dominant in enterprise environments, but they don't have the stranglehold they once did. A caution here. Relational databases are still important, but big data and unstructured databases are significant as well.
I'd also include a command line scripting language in the toolkit. This can be something for when you need to orchestrate a bunch of processes together, want to manipulate OS processes, or some quick interaction with the OS or file system. Some interpreted languages have an OO version and can perform double duty here. The nice thing you will discover is that the OO syntax and concepts will be largely identical here. There will just be a few tips and tricks that make it different.
That should cover your bases unless you are going into embedded or legacy systems, or high performance computing task like image or video processing. In those cases you will need assembly language and maybe and old language like COBOL or FORTRAN (for legacy).
Hope this helps!
Great question! When I was working on my bachelor's degree back in the stone age, I wrote programs in 20 different languages, all of which are now obsolete! My thought was that every language you learn makes the next language easier to learn.
This group would give you most of the necessary skills. Just remember that you can always learn another language if you need to. Even though I learned 20 languages in college, I was hired by IBM to code in PL/1 and PL/s, neither of which I had ever seen. IBM figured that since I knew 20 languages, the 21st and 22nd would be easy to pick up! It's all about learning the basics and adapting.
Best of luck!