Why do you need to learn more programming languages

Published on January 08, 2019

Why do you need to learn more programming languages

    image

    From the translator: today we are publishing for you an article by the developer Akshat Giri , who shares his thoughts on why it is worth studying new and new programming languages.

    I work as a programmer for four years. He started with C #, developing games, then switched to Python and machine learning. Then he taught JavaScript and TypeScript for the frontend. The next step was the development of mobile applications, so I took up Ionic, React and React Native. Interested in backend, started working with Go. A little later Dart, Java and PHP were added to the list of my languages ​​and frameworks - all three were required during my work on Facebook.

    I do not want to say that I am an expert in all the languages ​​mentioned. I just have experience with them, more than with other languages ​​and frameworks. Why the choice fell on them? Well, it seemed to me that they offer more than others, so that's why.

    Skillbox recommends: A two-year hands-on course “I am a PRO web developer .

    We remind: for all readers of "Habr" - a discount of 10,000 rubles when writing to any Skillbox course on the promotional code "Habr".



    But why do I advise you to learn more languages? The fact is that you cannot even guess what will be needed in a couple of years. And choosing the right language or framework can save a lot of time when solving a particular task.

    The solution to the first problem


    I will give a simple example. A few months ago, I chose a Bluetooth headset. Stopped at the AirPods. I tried many others, but these seemed to me as comfortable as possible. The problem was that I used them simultaneously with a Windows laptop and an Android phone. And if both gadgets were nearby, the headphones were connected to the phone, but not to the laptop. So you had to turn them off manually and connect again. Everyday.

    This is rather tedious, and I decided to make a button that would solve the problem of connecting headphones to a laptop when required.

    Initially, to solve this problem, I decided to use Python. I thought that I could easily find a library that allows you to manage Bluetooth devices. This turned out to be wrong, there was no good library.

    The next stage is Node.js. I was able to find a JavaScript library that made it possible to control the Bluetooth functions on my computer. Having executed this script on Node.js, I achieved what is needed.
    // App.js
    const device = new bluetooth.DeviceINQ();
    const airpodsAddress = "18:81:0E:B2:6B:A6"
    const airpodsName = "Akshat's Airpods";
    device.findSerialPortChannel(airpodsAddress, function (channel) {
        // make bluetooth connect to remote device
        bluetooth.connect(airpodsAddress, channel, function (err, connection) {
            if (err) return console.error(err);
            console.log('YAY! Airpods Connected');
            // Don't need a communication stream between the two
            // so let's just exit the stream. 
            setTimeout(() => process.exit(0), 5000);
        });
    });

    OK, but now I needed a button on the screen that would launch the execution of the script. In the end, I decided to place it on the Windows taskbar so that it was always available. I made another script that I thought was supposed to help accomplish this task. But no, I had to turn to Golang. He gave the opportunity to create an executable file, which, in turn, executed the script previously created on Node.js.
    / main.go
    package main
    import (
    "fmt"
    "os/exec"
    )
    func main() {
    output, err := exec.Command("npm", "start").CombinedOutput()
    if err != nil {
    fmt.Println(err.Error())
    }
    fmt.Println(string(output))

    Everything worked out. I made a shortcut to the desktop and moved it to the taskbar. Everything is OK, everything works.



    I thought that in C # I would also be able to solve this problem. But I really didn’t want to install Visual Studio and IDE.

    My example demonstrates how different languages ​​help find a hybrid solution to a specific issue with minimal time. There are tons of other examples, but the point, I think, is clear.

    So why else learn other languages?


    To be honest, this is interesting. Plus, it expands your horizon, takes you outside the comfort zone (does not create trouble, but gives impetus, the desire to learn something new).
    Another reason is to go beyond the capabilities of a single language or framework. Object-oriented languages ​​are just fine, but it is also worth exploring functional or procedural programming.

    The first programming language you learn will be the most difficult. The second, most likely, will seem even more difficult. But further study of new products will seem to walk in the park. A slightly different syntax, a couple of new things, that's all. In addition, you can study specialized libraries and frameworks of already mastered languages.

    Another reason that I think may encourage other languages ​​to learn is WASM. Web Assembly will allow you to run the language you need in the browser.

    If you are a JavaScript or Python programmer, it’s worth learning low-level languages. You can start with C ++ or C, but I would advise Golang. It allows you to get all the speed capabilities of C ++ without problems typical for the C family.

    If you work with low-level languages, then try JavaScript or Python. Both are very popular and common. Both can be used in conjunction with low-level languages. You can write C ++ modules for Node.js and Python.

    Share your own experiences in the comments: what languages ​​do you know, what are you planning to learn and why?
    Skillbox recommends: