Какой язык программирования лучше учить?

Какой язык программирования лучше учить?

Я всегда отвечаю что первый язык должен быть C. Начать можно с чего угодно, но рано или поздно придется вернуться и изучить С. Не досконально, а хотя бы поверхностно. На уровне создать двусвязный список. Хешмап и тп. Достаточно понимания базовых структур и принципов. Потому что только Си даст представление о том, что происходит. Вы поймете что такое массив, и почему он такой, что происходит при добавлении элемента в массив, куда уходит память и чем отличается передача по ссылке от передачи по значению - только изучив Си. Идеально - прочитать какую нибудь книгу и сделать все упражнения. Ну или хотя бы пока не наскучит (я не дочитал ни одной книги ни по одному из языков).

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

После си уже можно брать тот язык, в котором вы хотите развиваться. В каждой отрасли есть лидер, машинку проще писать на питоне, андроид на яве, а веб на Go. Можно идти наперекор и писать что угодно на чем угодно, но будет сложнее. Лучше всего выбрать ту область которая наиболее интересна и под нее учить язык, хотя можно пойти и от обратного, но есть риск программировать то - что не интересно.

Я ниже выписал языки с которыми сталкивался в работе, для чего они в основном применяются и в скобочках указал их основной недостаток. Иногда недостаток бывает достоинством. Например многословность явы компенсируется легкостью чтения чужого кода. Строгость гоу - кстати так же. Просто кто то из создателей языков думает об удобстве читателей, а кто то об удобстве писателей. И это важней чем кажется.

Python - (высокоуровневый, медленный) веб/нейросети/машин ленинг
Scala (запутанный, быстрый)- распределенные вычисления, машинка и тп
Java (многословный, быстрый) - андроид, erp системы, реже веб
Kotlin (странный синтаксис, лаконичная ява) - андроид
Go (строгий, быстрый) - веб, утилиты
Perl (запутанный, медленный) - веб, утилиты
PHP (плохо спроектированный, медленный) - веб
javascript (плохо спроектированный, медленный) - веб
C (сложно писать, самый быстрый) - базы данных, сервера
С++ (запутанный, быстрый) - базы данных, сервера
Objective C (многословный, быстрый) - ios, mac os
Swift (немного странный, быстрый) - ios, mac os

Nim (сырой, быстрый), D (высокоуровневый, быстрый), Rust (очень странный, быстрый) - для общего развития больше

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