Какой язык программирования учить первым?
Это, наверное, самый популярный вопрос от начинающих. Человек хочет выбрать курс или самоучитель для самообразования, но все они привязаны к конкретному языку программирования. А языков этих много разных понапридумывали, и на вид они очень разные, и непонятно, с какого лучше начинать. И хочется выбрать наилучший и самый полезный язык.
Однако если разобраться, то этот вопрос - достаточно бессмысленный сам по себе.
Представьте, вы приходите в магазин инструментов и спрашиваете у продавца: "Какой инструмент лучше?". Что лучше, пила или молоток? А может быть, дрель или электролобзик? Сама постановка вопроса не имеет смысла, и вместо ответа вы получите лишь встречный вопрос: "А для чего вам инструмент, что вам надо сделать?". Полезность инструмента определяется задачами, которые вам предстоит решать.

В программировании точно так же. Как было сказано в прошлой главе, программирование - это решение прикладных задач с помощью написания программ. Какие задачи вы хотите решать? Это и определит выбор ЯП и прочих технологий.
Да, все современные ЯП являются универсальными, и любую прикладную задачу можно решить на любом языке, если постараться. Однако исторически сложилось так, что в определенных областях ИТ более популярны определенные ЯП. Именно в этих областях написаны лучшие библиотеки и фреймворки для них, больше всего документации в интернете и вакансий на рынке труда. И наоборот, пытаясь решить задачу, не типичную для данного ЯП, вы скорее всего будете испытывать некоторые страдания: готовых решений будет мало, они будут плохо документированы, нередко - заброшены, помощи и подсказки в интернете вы не найдете и многое придется осваивать методом проб и ошибок.
Поэтому прежде чем выбрать ЯП, стоит сперва попробовать выбрать область, в которой вы хотите работать.
Приведем краткий перечень основных областей и популярных в них ЯП.
Разработка игр на ПК
С++ С#
Мобильная разработка на Android, приложения и игры
Java Kotlin
Мобильная разработка на iOS
Swift Objective-C
Встроенные системы: микроконтроллеры, промышленное оборудование
С С++
Научные вычисления, Data Science, машинное обучение
Python
Веб-разработка, фронтенд: веб-страницы, одностраничные приложения
JavaScript
Веб-разработка, бэкенд: веб-серверы обрабатывающие запросы пользователей
Java C# Python
Администрирование, автоматизация, DevOps
Python
Разработка операционных систем
С
Подумайте, что вас могло бы заинтересовать. Вы любитель мобильных гаджетов, у вас куча приложений на смартфоне, и все равно постоянно чего-то не хватает? Попробуйте Java или Swift (в зависимости от производителя вашего смартфона). Вам нравится что-то паять и собирать, и вы хотите заняться ИТ с железнячным уклоном? Тогда С. Ваше воображение поражают возможности современных девайсов по распознаванию лиц, голоса и чего угодно, и вам интересно как оно работает? Попробуйте Python.
В интернете можно найти разные картинки на эту тему, с алгоритмами выбора языка в зависимости от ваших предпочтений. Например, такую:

Такие изображения могут подсказать вам какие-то идеи или помочь определиться, но не стоит так уж серьезно к ним относиться (особенно к шуточным пунктам типа "если любите машины с АКПП то Java, а с МКПП то С).
Надо понимать, что база (от инженерного мышления до понимания основ программирования и алгоритмов) в любом случае будет одинакова. И потом при необходимости вы сможете легко изучить дополнительные языки. Ваш первый язык должен дать вам стартовую мотивацию для продолжения обучения, которую проще получить, если вы будете сразу заниматься чем-то интересным лично для вас. Сделанное своими руками что-то практически полезное лично вам - будь то Anrdoid-приложение, простая игра или веб-приложение со списком покупок - даст вам мощный приток веры в себя и заряд мотивации продолжать обучение.
Иногда для начала обучения советуют языки типа Pascal или Basic, как очень простые и хорошо подходящие для обучения. Но я лично не вижу в этом смысла (хотя и сам в школе начинал именно с них): вакансий на этих языках сейчас уже очень мало, так что изучив программирование на Pascal, для трудоустройства вам все равно потом придется переучиваться на что-то более востребованное на рынке труда. Так лучше сразу тогда с него и начать.
Если у вас нет никаких конкретных предпочтений по сфере занятий - тогда могу лично посоветовать Java. Это один из самых популярных ЯП (стабильно в топ-3 по рейтингу TIOBE), по которому вы всегда легко найдете и учебные пособия, и вакансии на рынке труда. Подробнее о том, почему Java - хороший выбор первого языка - написано в главе Почему Java?
Last updated