Brief ideas about language learning. What is worth learning?
Date: 2023-09-02
Summary: Just an small thought about what languages are worth learning and why
tags: #writing
Table of contents
Introduction
With time, I was considering writing a simple article about ideas about language learning, what languages are worth learning, and why? Considering the objectives of this kind of change, if you feel another purpose, as you notice, this blog has heavily considered the data science path as a primary drive to provide value for society, so here are some ideas that are highly regarded to study.
List of languages
The following languages are not necessarily listed in any specific order.
Languages for data science (The statistical languages)
Here we have 3: Julia, Python and R, everyone with strengths and weaknesses significantly impacts different data science projects. My experience gravitated toward the first 2, but R is still a powerful tool, and many data scientists I admire use it as a primary work tool. My favorite now is Julia. It feels like a modern solution and a fresh approach to scientific computing. If Linus Torvalds says that C was the language that fits the hardware, considering that analogy, when you read math and compare it with Julia, it simply makes sense, but it still is not that popular yet and has some improvements to make, still I think it is powerful for optimization and simulation, for other data science task has a decent level but is not as powerful compare with Python for machine learning or pipelines development and R for pure statistics. You should be familiar with these 3 if you are in this industry. Otherwise, Python is OK.
A Low-level language
Here, there are several good options. The first one is C (and C++), which are pretty old but still relevant in the industry, and the other attractive new boys are Rust and lastly I heard a lot about Zig, The important thing about a low-level language is to help you to understand how the stuff in machine level work. In general, these languages will help you to understand how memory works, you will have to deal with languages that don't have garbage collectors and static typing as a central standard. These elements reduce the levels of abstractions that interpreted languages "hide" from you to make your life easier.
I am heavily considering learning C because it's simpler than C++ and Rust. Maybe later, I will try Rust, but I believe C to be the foundation and the one at least you should have some familiarity.
The Web language
This is boring because there are not so many options out there. Most web projects run on Javascript, so this is the one, and then add TypeScript as a superset. Web development is not something that I particularly enjoy. Still, we can only acknowledge that even if you are a data scientist, you will have at least a little exposition to the web. So, learning the basics is entirely worth it. On the other side, if you are a web developer, that is a must, and if you are good at it, you can easily make a safety career for a while.
The Corporation Language
Here, Java is the language to take this position. Corporations still need the language to run big projects intrinsically aligned to the business needs. Those big and bureaucratic banks and old insurance companies that still depend on Oracle technology are some profitable niches everyone can take. I learned the basics of Java in the university and even wrote my thesis with this, considering that Julia already existed at that time, it was a terrible decision to pick up a verbose language with minimal interactivity capacity for that purpose. For everyone who wants to work in tech, if they want to work in a safe niche, this is a good one (despite web development and Javascript). This is an uncool language nowadays, but it is a giant goat for people searching for money here.
The Functional language
The last one can be considered for many people as just for a learning experience rather than apply to jobs, especially for large-scale projects object oriented programming is the norm. However, the functional programming paradigm is something that everyone should consider to learn at least the fundamentals. The reason can be from just basic training to another way of thinking so you can see the problems from another perspective. However, in data science, this is a more important concept than many people tend to believe. Due to their importance in data engineering, the functional paradigm is considered because it's helpful for distributed computing, so in some jobs, you need to crunch data from several servers in the most cost-efficient way possible. That's why Scala is an essential tool for this task. But if you are a purist, probably Haskell is the most precise tool to learn about functional programming.
The Query Language
This is a bit out, but since many people want to learn data science, SQL is a language for which everyone should have some basic familiarity. Many institutions have some basic ERP or run some software that stores information in a database, or if you are working with some business intelligence tool, you will need to deal with this. Any SQL flavor is good to study.
Conclusions
Several languages are worth studying. However, it's essential to consider what languages are the ones that will help you to land the job (in case you want to get a job in tech).
Another blogger I read pointed out something important that changed my perspective about how you learn technologies: the fundamentals and paradigms are agnostic to the tools, so you better spend the time learning the fundamentals rather than just learning syntax.