Pull to refresh
0
Skillbox
Образовательная платформа Skillbox

Почему вам нужно учить больше языков программирования

Reading time4 min
Views11K
image

От переводчика: сегодня публикуем для вас статью разработчика Акшата Гири, который делится своими соображениями, почему стоит изучать все новые и новые языки программирования.

Я работаю программистом четыре года. Начал с С#, разрабатывая игры, затем перешел на Python и машинное обучение. Потом учил JavaScript и TypeScript для фронтенда. Следующим этапом стала разработка мобильных приложений, так что я занялся Ionic, React и React Native. Заинтересовался бэкендом, начал работать с Go. Чуть позже к списку моих языков и фреймворков добавились Dart, Java и PHP — все три потребовались во время моей работы в Facebook.

Я не хочу сказать, что являюсь экспертом во всех упомянутых языках. У меня просто есть опыт работы с ними, больший, чем с другими языками и фреймворками. Почему выбор пал на них? Ну, мне показалось, что они предлагают больше, чем прочие, поэтому так.

Skillbox рекомендует: Двухлетний практический курс «Я — веб-разработчик PRO».

Напоминаем: для всех читателей «Хабра» — скидка 10 000 рублей при записи на любой курс Skillbox по промокоду «Хабр».



Но почему я советую вам учить больше языков? Дело в том, что вы даже предположить не сможете, что потребуется через пару лет. А выбор правильного языка или фреймворка может сэкономить массу времени при решении определенной задачи.

Решение первой проблемы


Приведу простой пример. Несколько месяцев назад я выбирал Bluetooth-наушники. Остановился на AirPods. Я опробовал множество других, но эти показались мне максимально удобными. Проблема была в том, что я использовал их одновременно с Windows-ноутбуком и Android-телефоном. И если оба гаджета находились рядом, то наушники подключались к телефону, но не к ноутбуку. Поэтому приходилось отключать их вручную и подключать снова. Каждый день.

Это довольно утомительно, и я решил сделать кнопку, которая позволила бы решить проблему подключения наушников к ноутбуку, когда это требуется.

Изначально для решения этой задачи я решил использовать Python. Я считал, что без труда смогу найти библиотеку, позволяющую управлять Bluetooth-устройствами. Это оказалось не так, хорошей библиотеки не нашлось.

Следующий этап — Node.js. Я смог найти JavaScript-библиотеку, которая дала возможность контролировать функции Bluetooth на моем компьютере. Выполнив этот скрипт на Node.js, я добился того, что нужно.
// 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);
        
    });
});

ОК, но теперь мне понадобилась кнопка на экране, которая запускала бы выполнение скрипта. В итоге я решил разместить ее на панели задач Windows, чтобы та всегда была доступна. Я сделал еще один скрипт, который, как мне казалось, должен был помочь выполнить эту задачу. Но нет, пришлось обратиться к Golang. Он дал возможность создать исполняемый файл, который, в свою очередь, выполнял ранее созданный на 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))

Все получилось. Я сделал ярлык для десктопа и переместил его на панель задач. Все OK, все работает.



Мне подумалось, что на C# я бы тоже смог решить эту задачу. Но очень не хотелось устанавливать Visual Studio и IDE.

Мой пример демонстрирует, как разные языки помогают найти гибридное решение определенного вопроса с минимальными затратами времени. Есть тонны других примеров, но суть, думаю, ясна.

Так зачем еще учить другие языки?


Если честно, то это интересно. Плюс это расширяет ваш горизонт, выводит за пределы зоны комфорта (не создает неприятности, а дает толчок, стремление изучать что-то новое).
Еще одна причина — выйти за пределы возможностей одного языка или фреймворка. Объектно-ориентированные языки — просто прекрасно, но стоит также изучить функциональное или процедурное программирование.

Первый язык программирования, который вы изучаете, будет самым сложным. Второй, скорее всего, покажется еще сложнее. Но дальше изучение новинок будет казаться прогулкой в парке. Немного иной синтаксис, пара новых вещей, и все. Кроме того, вы сможете изучать специализированные библиотеки и фреймворки уже освоенных языков.

Еще одна причина, которая, как мне кажется, может побудить изучать другие языки, — WASM. Web Assembly даст возможность запускать язык, который вам нужен, в браузере.

Если вы — JavaScript- или Python-программист, стоит освоить низкоуровневые языки. Вы можете начать с С++ или С, но я бы советовал Golang. Он позволяет получить все скоростные возможности С++ без проблем, характерных для семейства С.

Если вы работаете с низкоуровневыми языками, то попробуйте JavaScript или Python. Оба весьма востребованы и распространены. Оба можно использовать в связке с низкоуровневыми языками. Можно писать модули С++ для Node.js и Python.

Поделитесь собственным опытом в комментариях: какие языки вы знаете, какие планируете изучить и почему?
Skillbox рекомендует:

Tags:
Hubs:
-1
Comments35

Articles

Change theme settings

Information

Website
skillbox.ru
Registered
Founded
Employees
501–1,000 employees
Location
Россия