DEV Community

Discussion on: How many programming languages should a person know?

Collapse
 
ashutosh049 profile image
ashutosh049 • Edited

First you need to get your hands dirty with any statically-typed languages like java and then you're good to go with dynamically-typed languages like groovy.

For me I would have gone by Java (a biased opinion) and maybe C++ because these would have let you play with the way in which transformation script errors are handled, and how it is different from the way Groovy handles errors. This will also help you interpret errors created by your transformation script.

// Java example
int var;
var = 5;
Enter fullscreen mode Exit fullscreen mode
// Groovy example
var = 5
Enter fullscreen mode Exit fullscreen mode

Java is statically-typed, so it expects its variables to be declared before they can be assigned values. Groovy is dynamically-typed and determines its variables' data types based on their values, so declaring is not required.

Dynamically-typed languages are more flexible and can save you time and space when writing scripts. However, this can lead to issues at runtime.

The point here is if you are good and played enough with dynamically types languages and can determine the pit-falls in early stage you can jump off to some more expert level languages like Golang, as it do not have any error handling and it assumes that you know what you are doing!

To sum it up and to answer your question, choose Java or C++ !

Backend:

  1. Java & Go
  2. Java & Python
  3. C++ & Go
  4. C++ & Python

Full Stack/MEAN/MERN: I do not have relevant skills to comment about this but I can suggest any backend + react would be best choice.

Thread Thread
 
ingosteinke profile image
Ingo Steinke

Why would anyone still use Java in the backend? And why would React be a choice in the frontend? React isn't even a language, but it adds so much proprietary concepts on top of JavaScript, I would definitely not recommend it as a first thing to learn as a web developer.

Java is still a good language to learn, due to its strictness, static typing and class inheritance, but then you can do that in most modern languages, like PHP 7 / 8. Even JavaScript has improved a lot, but it might benefit coding style and understanding to start with TypeScript or at least use proper JSDoc annotations.

I found SQL a valuable learning experience, as it has a very distinct syntax quite different from most other languages used these days, so you have to think differently and express many things in very short command lines.

CSS is another example for thinking differently, because you have to describe a set of rules instead of imperative do-this-then-do-that commands.

Students should be aware of concepts behind the practical examples, not only the concept of specific programming languages, but also general concepts like Design Patterns that are useful in many different languages.