Языки программирования бывают самыми разными, и просто с ходу ответить, какой из них лучше остальных и какой вам сразу же стоит учить – нельзя, потому что сам вопрос поставлен некорректно: во-первых, серьезное программирование нередко предполагает использование нескольких языков/фреймворков (расширений для языка); во-вторых, «лучший» язык во многом зависит от того, в какой сфере вы хотите работать; в-третьих, через год все может поменяться, и популярный на данный момент язык начнет «скатываться». Вместо того, чтобы составлять какие-либо ТОПы сомнительной полезности, мы возьмем основные языки программирования для каждой сферы и составим список по значимости.
Мы предполагаем, что раз вы задаетесь вопросом о различии в ЯП – значит, вы знаете о них довольно мало. А раз так, то сначала нужно устроить небольшой ликбез.
Язык программирования – это язык, на котором программист говорит компьютеру о том, что нужно что-то сделать. На первых порах зарождения программирования эту формулировка действовала буквально: программисты на перфокартах дырявили нужные области, по которым компьютер понимал, что нужно взять вот такое вот значение из какой-то области памяти, сложить его со значением из другой области памяти и на ленте бумаги напечатать результат этого сложения.
Сейчас перфокарты, как и прямая работа с «железом», отошли в прошлое, но общий принцип остался тем же: с помощью языка программирования мы описываем некоторые действия, которые компьютер должен совершить для достижения определенного результата.
Языки бывают разными, и на то есть 3 причины: историческая; коммерческая; практическая. Историческая причина разделения языков: «я художник, я так вижу». Все языки программирования, которые существуют сейчас, возникли по той причине, что где-то кого-то когда-то не устраивало качество существующих языков. Линус Торвальдс, разработчик операционной системы Linux, взял язык C в основу операционной системы потому, что его не устраивали другие языки программирования. А разработчики языка C создали его потому, что их не устраивал существовавший на тот момент язык B. Коммерческая причина разделения языков – в том, что крупные компании заинтересованы в развитии «своих» ЯП. Apple решила, что ее программисты должны быть особенными, и вместо устоявшейся на тот момент Java заставила «своих» программистов работать на Swift; Google поощряет разработку на Go и так далее. Практическая причина разделения языков состоит в том, что некоторые языки «заточены» под ту или иную работу: C/C++/Rust незаменимы для разработки операционных систем и высоконагруженных приложений, PHP/Ruby/Python отлично справляются с серверной частью web-разработки, Java вообще старается покрыть все сферы программирования.
Если есть разделение языков, то было бы неплохо ввести какую-нибудь их классификацию. И здесь начинаются большие проблемы, потому что ЯП – тема довольно обширная, и классификаций может быть несколько. Основные:
Именно по последней категоризации мы и будем в дальнейшем рассматривать языки, потому что от нее зависит, какой язык лучше выбрать для изучения: если вы хотите разрабатывать игры, вам лучше начать с такого-то языка (C#), если хотите делать фронтенд – с такого-то (JavaScript).
Web-разработка – понятие очень широкое, потому что оно включает в себя сайты, приложения и серверы. Кроме того, для сайтов и приложений есть разделение на фронтенд (внешний вид сайта/приложения) и бэкенд (внутренняя логика работы). Составим небольшую таблицу:
Фронтенд | Бэкенд | |
Сайты | JavaScript | JavaScript, PHP, Python, Ruby, Go |
Приложения | Тот язык, на котором написан бэкенд | Java, C#, Python, Swift |
Если вы собираетесь создавать внешнюю оболочку для сайтов, ваш однозначный выбор – JavaScript. Это – единственный язык, который нативно поддерживается всеми браузерами. В нагрузку вам желательно знать HTML и CSS – языки, которые рассказывают браузеру, где должны располагаться блоки и как они должны выглядеть.
Если вы хотите создавать внутреннюю логику сайтов, то выбор у вас более большой:
С приложениями все проще – обычно бэкенд и фронтенд написаны на одном языке. Лидер здесь – Java, его постоянно пытается догнать C#. Python не так сильно востребован, потому что имеет проблемы с производительностью. Swift – для разработки мобильных приложений под iOS.
И да, во всех случаях вам нужно будет учить SQL.
Здесь есть 4 варианта:
C# – выбор тех, кто хочет создавать игры на Unity. C++ нужен тем, кто хочет создавать игры на Unreal Engine. Java – для игр на Android, Swift – для игр на iOS. Во всех случаях язык – это не главное (по крайней мере, на первых порах). Игры разрабатываются не с нуля, а на определенном движке – в 99% случаев это Unity или UE.
И у этих движков есть как много функционала, так и много багов – это вам и стоит учить в первую очередь, а язык вы выучите в процессе.
Системное программирование сейчас имеет 2 значения: разработка системных (не-прикладных) приложений и создание системного окружения разработки (CI/CD, Infrastructure as a Code и другие DevOps-практики). В первом случае вам нужны низкоуровневые языки программирования: C, C++, Rust. Во втором случае вам нужны языки для создания скриптов: Bash, Windows PowerShell, Python, Go. Лидируют здесь Python и Bash.
И да, здесь SQL вам тоже понадобится.
Сисадминам обязательно нужно знать языки командных строк: Bash (Linux), Microsoft PowerShell (Windows Server). Поскольку большинство сисадминов «перекатывается» в DevOps, вам желательно знать скриптовый язык: Python, Go. Технически скрипты можно писать и на Bash/PowerShell, но написание сложных скриптов превратится в пытку. Дополнительно системным администраторам желательно знать YAML, в обязательном порядке нужно знать SQL.
Тестирование обычно проводится на том языке, на котором написано приложение. Для автоматизированного тестирования часто применяются Python и Java, хотя любой более-менее крупный язык имеет свои собственные фреймворки для автоматизированного тестирования.
SQL тестировщики должны знать обязательно.
В различных подборках можно встретить откровенно устаревшие или очень узкоспецифичные языки, которые на самом деле учить не стоит. К таким языкам можно отнести:
Язык | Где используется | Насколько сложен |
JavaScript | Фронтенд и бэкенд на сайтах | 3/10 |
PHP | Бэкенд на сайтах | 5/10 |
Python | В основном – серверы и Big Data | 2/10 |
Go | Серверная часть сайтов | 3/10 |
Ruby | Серверная часть сайтов | 6/10 |
HTML/CSS | Фронтенд на сайтах, иногда – в приложениях | 1/10 |
YAML | Системное администрирование | 0/10 |
Java | Практически везде | 5/10 |
C# | Серверная часть сайтов и приложений, разработка игр | 5/10 |
C | Операционные системы, высоконагруженные приложения (в виде вставок кода для оптимизации) | 9/10 |
C++ | Операционные системы, высоконагруженные приложения, игры | 8/10 |
Rust | Операционные системы | 8/10 |
Swift | Разработка под iOS | 5/10 |
Bash | Скрипты для UNIX-систем | 1/10 |
PowerShell | Скрипты для Windows-систем | 1/10 |
SQL | Везде, где нужно хранить данные (кроме разработки игр) | 2/10 |
Школа |
Нетология |
Стоимость |
169 100 руб |
Цена в рассрочку |
4 945 руб/мес |
Длительность курса |
21.5 месяц |
Программа трудоустройства |
Есть |
Формат |
Запись лекций, Онлайн занятия с преподавателем |
Школа |
Skillfactory |
Стоимость |
149 376 руб |
Цена в рассрочку |
4 610 руб/мес |
Длительность курса |
20 месяцев |
Программа трудоустройства |
Есть |
Формат |
Запись лекций, Онлайн занятия с преподавателем |
Школа |
Skillbox |
Стоимость |
96 439 руб |
Цена в рассрочку |
4 384 руб/мес |
Длительность курса |
10 месяцев |
Программа трудоустройства |
Есть |
Формат |
Запись лекций |
Школа |
Нетология |
Стоимость |
81 700 руб |
Цена в рассрочку |
3 585 руб/мес |
Длительность курса |
11.5 месяцев |
Программа трудоустройства |
Есть |
Формат |
Запись лекций, Онлайн занятия с преподавателем |
Школа |
Skillfactory |
Стоимость |
149 376 руб |
Цена в рассрочку |
4 610 руб/мес |
Длительность курса |
20 месяцев |
Программа трудоустройства |
Есть |
Формат |
Запись лекций, Онлайн занятия с преподавателем |
Школа |
Skillbox |
Стоимость |
57 733 руб |
Цена в рассрочку |
4 811 руб/мес |
Длительность курса |
3 месяца |
Программа трудоустройства |
Отсутствует |
Формат |
Запись лекций |
Школа |
Нетология |
Стоимость |
82 700 руб |
Цена в рассрочку |
3 625 руб/мес |
Длительность курса |
7.5 месяцев |
Программа трудоустройства |
Есть |
Формат |
Запись лекций, Онлайн занятия с преподавателем |
Школа |
Skillfactory |
Стоимость |
123 655 руб |
Цена в рассрочку |
3 817 руб/мес |
Длительность курса |
10 месяцев |
Программа трудоустройства |
Есть |
Формат |
Запись лекций, Онлайн занятия с преподавателем |
Школа |
Skillbox |
Стоимость |
154 392 руб |
Цена в рассрочку |
4 980 руб/мес |
Длительность курса |
10 месяцев |
Программа трудоустройства |
Есть |
Формат |
Запись лекций, Онлайн занятия с преподавателем |
Школа |
Skillfactory |
Стоимость |
117 582 руб |
Цена в рассрочку |
3 629 руб/мес |
Длительность курса |
12 месяцев |
Программа трудоустройства |
Есть |
Формат |
Запись лекций, Онлайн занятия с преподавателем |
Школа |
Яндекс Практикум |
Стоимость |
145 000 руб |
Цена в рассрочку |
19 500 руб/мес |
Длительность курса |
8 месяцев |
Программа трудоустройства |
Есть |
Формат |
Запись лекций, Онлайн занятия с преподавателем |
Школа |
Бруноям |
Стоимость |
49 900 руб |
Цена в рассрочку |
4 158 руб/мес |
Длительность курса |
3 месяца |
Программа трудоустройства |
Есть |
Формат |
Запись лекций, Онлайн занятия с преподавателем |
Школа |
Хекслет |
Стоимость |
58 000 руб |
Цена в рассрочку |
5 402 руб/мес |
Длительность курса |
5 месяцев |
Программа трудоустройства |
Есть |
Формат |
Запись лекций, Онлайн занятия с преподавателем |
Школа |
Нетология |
Стоимость |
169 100 руб |
Цена в рассрочку |
4 945 руб/мес |
Длительность курса |
21.5 месяц |
Программа трудоустройства |
Есть |
Формат |
Запись лекций, Онлайн занятия с преподавателем |
Школа |
Skillfactory |
Стоимость |
85 875 руб |
Цена в рассрочку |
2 650 руб/мес |
Длительность курса |
9 месяцев |
Программа трудоустройства |
Есть |
Формат |
Запись лекций, Онлайн занятия с преподавателем |
Школа |
Skillbox |
Стоимость |
132 382 руб |
Цена в рассрочку |
3 893 руб/мес |
Длительность курса |
9 месяцев |
Программа трудоустройства |
Есть |
Формат |
Запись лекций, Онлайн занятия с преподавателем |
Школа |
Нетология |
Стоимость |
99 200 руб |
Цена в рассрочку |
2 900 руб/мес |
Длительность курса |
11.5 месяцев |
Программа трудоустройства |
Есть |
Формат |
Запись лекций, Онлайн занятия с преподавателем |
Школа |
Skillfactory |
Стоимость |
107 847 руб |
Цена в рассрочку |
3 329 руб/мес |
Длительность курса |
9 месяцев |
Программа трудоустройства |
Есть |
Формат |
Запись лекций, Онлайн занятия с преподавателем |
Школа |
Skillbox |
Стоимость |
22 552 руб |
Цена в рассрочку |
3 759 руб/мес |
Длительность курса |
3 месяца |
Программа трудоустройства |
Отсутствует |
Формат |
Запись лекций |
Школа |
Нетология |
Стоимость |
98 600 руб |
Цена в рассрочку |
2 883 руб/мес |
Длительность курса |
8 месяцев |
Программа трудоустройства |
Есть |
Формат |
Запись лекций, Онлайн занятия с преподавателем |
Школа |
Skillfactory |
Стоимость |
131 235 руб |
Цена в рассрочку |
4 050 руб/мес |
Длительность курса |
14 месяцев |
Программа трудоустройства |
Есть |
Формат |
Запись лекций, Онлайн занятия с преподавателем |
Школа |
Skillbox |
Стоимость |
96 439 руб |
Цена в рассрочку |
4 384 руб/мес |
Длительность курса |
10 месяцев |
Программа трудоустройства |
Есть |
Формат |
Запись лекций |
Школа |
Нетология |
Стоимость |
107 500 руб |
Цена в рассрочку |
3 143 руб/мес |
Длительность курса |
13.5 месяцев |
Программа трудоустройства |
Есть |
Формат |
Запись лекций, Онлайн занятия с преподавателем |
Школа |
Skillfactory |
Стоимость |
105 717 руб |
Цена в рассрочку |
3 263 руб/мес |
Длительность курса |
12 месяцев |
Программа трудоустройства |
Есть |
Формат |
Запись лекций, Онлайн занятия с преподавателем |
Школа |
Skillbox |
Стоимость |
156 277 руб |
Цена в рассрочку |
5 041 руб/мес |
Длительность курса |
6 месяцев |
Программа трудоустройства |
Отсутствует |
Формат |
Запись лекций |
Школа |
Нетология |
Стоимость |
153 900 руб |
Цена в рассрочку |
4 500 руб/мес |
Длительность курса |
14 месяцев |
Программа трудоустройства |
Есть |
Формат |
Запись лекций, Онлайн занятия с преподавателем |
Школа |
Skillfactory |
Стоимость |
110 591 руб |
Цена в рассрочку |
3 413 руб/мес |
Длительность курса |
11 месяцев |
Программа трудоустройства |
Есть |
Формат |
Запись лекций, Онлайн занятия с преподавателем |
Школа |
Skillbox |
Стоимость |
111 947 руб |
Цена в рассрочку |
3 611 руб/мес |
Длительность курса |
12 месяцев |
Программа трудоустройства |
Есть |
Формат |
Запись лекций, Онлайн занятия с преподавателем |
Школа |
Нетология |
Стоимость |
118 800 руб |
Цена в рассрочку |
3 472 руб/мес |
Длительность курса |
11.5 месяцев |
Программа трудоустройства |
Есть |
Формат |
Запись лекций, Онлайн занятия с преподавателем |
Школа |
Skillfactory |
Стоимость |
140 686 руб |
Цена в рассрочку |
4 342 руб/мес |
Длительность курса |
13 месяцев |
Программа трудоустройства |
Есть |
Формат |
Запись лекций, Онлайн занятия с преподавателем |
Школа |
Яндекс Практикум |
Стоимость |
143 000 руб |
Цена в рассрочку |
16 500 руб/мес |
Длительность курса |
10 месяцев |
Программа трудоустройства |
Есть |
Формат |
Запись лекций, Онлайн занятия с преподавателем |
Школа |
Нетология |
Стоимость |
43 900 руб |
Цена в рассрочку |
2 566 руб/мес |
Длительность курса |
1 месяц |
Программа трудоустройства |
Отсутствует |
Формат |
Запись лекций, Онлайн занятия с преподавателем |
Школа |
Хекслет |
Стоимость |
124 000 руб |
Цена в рассрочку |
6 356 руб/мес |
Длительность курса |
10 месяцев |
Программа трудоустройства |
Есть |
Формат |
Запись лекций, Онлайн занятия с преподавателем |
Школа |
Level UP |
Стоимость |
42 990 руб |
Цена в рассрочку |
4 299 руб/мес |
Длительность курса |
1.5 месяц |
Программа трудоустройства |
Отсутствует |
Формат |
Запись лекций, Онлайн занятия с преподавателем |
SQL – это структурированный язык запросов, который используется в базах данных. Язык нужен практически везде, но выучить его просто, в худшем случае у вас уйдет неделя.
Python – его выучить проще всего, при этом на нем можно писать очень сложные вещи.
Тезисно: