What software languages should students try to learn outside what they learn at university


#1

I’m a second year software engineering student at the University of Auckland and this year was my first real exposure to coding. The only programming language we used this year was Java. I was wondering what programming languages I should try learning, or what should I try do this summer to build up some fundamentals required in the software development industry. Any advice would be appreciated.

Thank you!


#2

As a javascript developer, I would recommend javascript. It is the language of browser and also being used more and more widely in web server.
Unlike other languages, you don’t need to install any compiler or studio to start developing javascript, just the browser. It is easy to see your code making effect.
The only basis is that you might need to learn some html and css first. But they are also good to know.


#3

I asked this question to a friend here at Duke and this was his answer,

"The answer to your question depends largely on what field you want to pursue within computer science.

Enterprise jobs working on the backend will typically require extensive fluency with databases and some of the more heavy duty object oriented languages. In that situation, SQL (or something like MongoDB if you would like to pursue a more new-age NoSQL solution) on top of Java and C# should be wonderful introductions. Higher level object oriented languages can teach you many of the necessary skills you will need to know when it comes to architecting the general flow of large applications and supplementary resources like Git will introduce you to the code-sharing concepts that are fundamental to large design teams.

For a front-end web developer, JavaScript is, of course, mandatory, but is a great tool for any developer to learn simply because it is one of the few ways left to explore functional programming. The design schemes are sufficiently different from object oriented languages (though the situation has been changing as of late) that it really requires programmers to begin to think in a light about how to design and architect a project.

C and C++ are essential to any low-level design work such as coding in drivers or working in areas where memory cannot be taken for granted.

Finally, python is a perennial favorite due to the sheer flexibility and extensive documentation it wields while still being much more concise than competitors like java.

In terms of just learning the concepts behind computer science, any language will do. Most are analogues of C and inevitably have similar syntax and are simple to learn once a basic understanding of the fundamentals of computer science are learned by mastering any one language.

Above all, it is more important to grasp things like how to avoid spaghetti code and making your code efficient than it is to learn every single language. As mentioned before, tools like SQL and Git can greatly compliment your learning experience as they allow you to work with real data and solutions from other developers respectively."

This is quite in-depth but I hope it helps you out!


#4

Language popularity come and go. What is popular now may not be used in 10 years time. The goal of learning popular languages right now should be secondary to learning fundamentals so you can pick up other languages of similar type in the future.

So this is my personal list:

Dynamic type:

  • javascript: The language of the web.
  • Python: Really useful for quickly hacking something together, and used a lot in academic organizations.

Static type:

  • Java: This is the most popular language in corporates.
  • C#: The Microsoft alternative to java, also popular in corporates. I personally prefer c# to java, its syntax, core libraries and tooling is much better in my opinion.

Scripting langauges:

  • Powershell and dos for Windows: If you work with windows machines and microsoft stack, you will at one point or another need to write scripts to glue things together.
  • Bash: The alternative if you are on Mac, linux and unix world.

Database:

  • Some variant of SQL, any will do.

If you learn at-least one language of each type, it will make it a lot easier for you to transition to others as industry trends shift and move.