Какой язык програмирования учить после JavaScript?
Я довольно долго занимаюсь программированием на JavaScript, включая и серверную часть, какой язык программирования вы бы посоветовали изучать следующим?
- Вопрос задан более трёх лет назад
- 3869 просмотров
Комментировать
Решения вопроса 0
Ответы на вопрос 4
Например python.
Очень красивый синтаксис, нету километровых функций, методов.
Есть PyCharm Community чтобы не отходя от кассы опробовать python.
Ответ написан более трёх лет назад
Комментировать
Нравится 1 Комментировать
Sergey Romanov @Serhioromano
Web Developer
Странно это звучит. Программирую давно и какой язык учить. Анализируюя сам впорос, могу сказть что не важно что вы думаете о стаже своего программирования, на ява скрипт вы программируете не достаточно долго.
Потому что если бы это было, так, такого вопроса не возникло бы. Было бы понятно, что зная яваскрип, сегодня вы можете програмировать мобильные приложения, настольные, веб сайты, . И было бы понятно, что это будующее программирования на следующее десятилетие. И что лучшее решение это углубится в новые технологии программирования как node.js, angular.js, win.js, . и сотни других.
Ответ написан более трёх лет назад
Комментировать
Нравится 1 Комментировать
Java на нем сейчас андроид и ios приложения пишут.
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать

Действительно, если js действительно освоен, то что-либо сиподобное после него врядли будет страшно)
Как вариант, диверсификация на что-то функциональное. go, erlang, haskell всякие там
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Ваш ответ на вопрос
Войдите, чтобы написать ответ

- JavaScript
Как вставить содержимое в iframe без src?
- 1 подписчик
- 3 часа назад
- 41 просмотр

- JavaScript
Как обработать массив переменной длины?
- 1 подписчик
- 4 часа назад
- 58 просмотров

- JavaScript
- +2 ещё
Из-за слайдера не открывается всплывающая форма?
- 1 подписчик
- 4 часа назад
- 25 просмотров
Рейтинг языков программирования 2023. JavaScript/TypeScript завоевывают мир, Python вошел в топ-3
Рейтинг языков программирования показал, что JavaScript и TypeScript уже контролируют треть рынка. Java пятый год подряд теряет популярность. Python после нескольких лет негативной динамики в этом году набирает обороты.
Представляем результаты ежегодного опроса, данные и скрипты обработки можно найти на GitHub.
В конце статьи будет локальный опрос пользователей Хабр.
Релевантные материалы:
- Лучшие школы программирования в 2023 (голосование)
- Лучшие языки программирования для изучения в 2023 году | Голосование
- Рейтинг языков программирования 2022
Коммерческое использование
В этом году самым популярным языком остается JavaScript — 19% разработчиков пишут на нем коммерческие проекты. Далее — Java (14%) и Python (13%). Последний впервые среди самых популярных. С минимальным отрывом за Python идут C# и TypeScript.
Какой язык используете в работе?

Первое что бросается в глаза — стремительный рост популярности TypeScript. При этом это не только миграция JavaScript проектов, так как JavaScript тоже стали использовать чаще. Экосистема занимает новые ниши. Как мы увидим позже, TypeScript все больше становится языком выбора для новых проектов как на Back-end, так и в Full Stack разработке. Кроме того, резко выросла популярность Python, который занял третье место после трехлетнего спада. Возможно, это связано со второй волной интереса к анализу данных.
Какой язык используете в работе? (2012–2023 гг.)

Сферы использования
Интересно, что на бэкенде выросла доля как TypeScript, так и JavaScript (хотя основным языком все еще остается Java), TypeScript уже используют чаще, чем JavaScript. Доля PHP сокращается, но язык все еще входит в тройку самых популярных, вероятно, Python заменит его в следующем году.
Во фронтенде все довольно ожидаемо, однако становится заметной доля фронтендов на C# (Blazor) и Dart (Flutter Web). Видно, что переход с JavaScript на TypeScript все-таки происходит.
Основной сегмент фуллстек-разработки еще на C# с ASP.NET, но сектор JavaScript/TypeScript суммарно уже больше. Распределение далее в целом показывает те же тенденции, что и в бэкенде.
В сфере анализа данных Python остается вне конкуренции. Удивляет рост доли R и отсутствие заметной доли языка Julia.
Сфера мобильной разработки приносит нам некоторые неожиданности, такие как одновременный рост доли Kotlin и сокращение доли Swift, что отражает соотношение разработки на Android и iOS. Еще интересно, что Flutter теперь используют чаще, чем React Native, в сегменте мультиплатформенных мобильных приложений.
В области DevOps основным языком, как и раньше, является Python. Ну и Embedded-разработка довольно консервативна. Как и раньше, большинство проектов написаны на C и C++, но видно, что с ростом мощности встроенных систем появилось место и для Python. Еще небольшой сегмент Embedded-разработки на Java — микрокарты — сейчас почти исчез.
Рейтинг языков программирования по сферам использования
Back-end

Front-end

Full Stack

Data processing

Mobile

DevOps

Embedded

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

Рейтинги личных предпочтений
Среди предпочтений разработчиков видим те же тенденции, что и в основном блоке. Разве что переход от JavaScript к TypeScript является более заметным.
Интересная ситуация в Embedded-специализации: там большинство людей думает, что новый проект лучше начинать на C++, также третьим наиболее подходящим языком является Rust.
Если бы вы сейчас начинали коммерческий проект и у вас была свобода выбора, какой бы язык выбрали?

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

На этот раз самым любимым языком оказался Swift. В зоне риска ожидаемо находятся языки программирования прошлого века. Время, когда о расцвете Pascal будут вспоминать как о «золотые времена», еще не наступило.
Какой следующий язык выберут те, кто сейчас пишет на Erlang? Из трех заявок — две на Go и одна на Elixir. Для языков программирования баз данных наиболее частой альтернативой является Python.
Самым парадоксальным кажется выбор следующего языка пользователями PHP — это Go, хотя ниша разработки на Go заметно другая.
Какой бы язык вы выбрали для следующего проекта по специализациям
Back-end

Front-end

Full Stack

Mobile

Embedded

Изучение новых языков
Около трети респондентов планирует изучить еще один язык программирования в этом году. Как и ранее, рекордсменом является Go, затем — Python и Rust.
Какие языки программирования вы собираетесь изучать в следующем году?

Большинство планирует изучить следующий язык самостоятельно или с помощью коллег. Обратиться к профессиональным преподавателям в дополнение к самостоятельному изучению есть в планах примерно у 24% респондентов, а 6% в первую очередь будут искать курсы и профессиональных преподавателей.
Какие языки вы собираетесь изучать в следующем году (2018-2023 гг.)?

Сейчас у большинства новичков первым языком программирования является JavaScript, но также заметно растет роль Python. С одной стороны, возможно, это отражение того, что Python больше подходит для обучения, чем JavaScript, с другой стороны — данные показывают, что большинство из тех, для кого JavaScript был первым языком программирования, сейчас работает в экосистеме JavaScript/TypeScript, а для кого Python — на Python. Так что, возможно, это просто разделение траекторий обучения.
Первый язык новичков

Дополнительные языки программирования
Конечно, все работают с базами данных. Картина ниже немного отличается от прошлогодней из-за изменения методологии — теперь мы объединили все языки БД в DB.
Все остальное отражает общие тенденции.
Какие языки вы используете как дополнительные

В опенсорс-проектах участвуют примерно 30% участников опроса (это меньше, чем в прошлом году).
Какие языки программирования используете в open source проектах

Интересно выделить те языки, доля которых в опенсорс-проектах больше, чем в коммерческих. Если мы отсортируем языки по такому критерию, то увидим последовательность: Haskell, Objective-C, Rust, R, C и Closure.
Финальная таблица
Язык | Используете в работе, % | Изменения | Используете в работе | Используете как дополнительные | Используете в своих проектах | Индекс предпочтения

- Рейтинг языков программирования 2022
- Лучшие школы программирования в 2023 (голосование)
Если вы хотите добавить язык программирования к голосованию на Хабр, пишите в комменте или в личку.
Будущее программирования: языки, зарплата и перспективы в 2024 году
Почему программисты не боятся искусственного интеллекта? Потому что им достаточно сказать заказчику: «Объясните компьютеру, что именно вы хотите». Так шутили еще недавно, но теперь такие шутки становятся не такими веселыми, как раньше. Искусственный интеллект, воплощенный в ChatGPT, продолжает совершенствоваться, в то время как IT-сообщество делится на скептиков и энтузиастов. Одни верят, что программистам не нужно меняться, другие думают, что новые языки и подходы в разработке окончательно похоронят ручной кодинг. На недавней дискуссии Artezio мы собрали влиятельных разработчиков и попросили предсказать, как будет меняться программирование в будущем, какие языки обещают быть на волне успеха и как оставаться в тренде.

Посмотреть полную версию дискуссии можно на Youtube-канале Artezio. Подпишись и сможешь принять участие в жарких дискуссиях.
«Мы наблюдаем тенденцию использования языков нового поколения»
Будущее программной разработки сложно представить без новых языков программирования. Об этом говорят многие разработчики, которые делят языки на старые и новые.
Петр Туголуков, корпоративный архитектор Xsolla: «Сейчас мы наблюдаем тенденцию к использованию все большего количества языков нового поколения. Множество компаний различного масштаба переходят на новые Python, Go, Kotlin, а в сфере мобильной разработки — на Swift. Языки C++, C, PHP, Java можно отнести к предыдущему поколению.
В нашей компании также используются приложения на PHP и Go. Мы стремимся разрабатывать новые продукты на Go из-за его эффективности, низкого порога входа и развитой экосистемы, включающей множество пакетов для решения широкого круга задач, что подтверждается огромным количеством репозиториев на GitHub. Предполагаю, что эта тенденция сохранится и в 2024 году.
Нельзя игнорировать влияние всемогущего JavaScript, который используется как на сервисной, так и на клиентской стороне, профессии разработчиков на JavaScript становятся всё более востребованными. Есть и исключения, связанные с разработкой устройств специфического назначения (Интернет вещей, игровые платформы), где использование Go и JavaScript возможно только при особом подходе».

Аналогичная ситуация складывается и в игровой индустрии. Однако, по словам Андрея Карсакова, руководителя разработки Nau Engine, традиционные языки (C++, C#), продолжают оставаться де-факто стандартами в этой области.
«Мы наблюдаем значительный интерес к Python в сфере разработки инструментов для GameDev. Всё больше вспомогательных инструментов создаётся на Python, и у многих игровых движков теперь есть Python API. Кроме того, некоторые энтузиасты в GameDev углубляются в уникальные языки программирования для создания игровых движков, например, Rust, который использовался группой разработчиков для создания игрового движка (Bevy).
Как правило, мы склоняемся к использованию C++, который является установленным стандартом и позволяет гибко работать с различными платформами. Однако мы осознаем тенденцию к появлению множества новых и интересных языков, активно используемых в продакшене. Именно поэтому мы планируем создать систему, позволяющую энтузиастам легко интегрировать языки программирования по их выбору. Это критически важно для удобства разработчиков, ведь мы создаём инструмент именно для них. Мы хотим предоставить разработчикам свободу в выборе языка, а не ограничивать их использованием традиционных, “олдскульных” (C++). Поэтому, хотя наша база и состоит из C++, мы программный интерфейс нашего продукта будет доступен для более широкого спектра языков, в том числе и для новых», — сказал руководитель разработки российского игрового движка Nau Engine.

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

По словам Александра Тырышкина, Head of WMS AliExpress CIS, сейчас увеличивается интерес к JavaScript.
«Мы также рефакторим старые монолиты, но используем Java и Kotlin, придерживаясь современных стандартов микросервисной архитектуры и принципов DDD. Мне кажется, вопрос о тенденциях в программировании тесно связан с новостным контекстом. Например, Илон Маск может влиять на тенденции, подчеркивая значимость искусственного интеллекта, что приводит к повышенному интересу к определенным языкам программирования. Несмотря на мою преданность Java и Spring Framework, я должен признать, что сейчас тенденции склоняются в пользу JavaScript из-за его значительного влияния на множество фреймворков. JavaScript оказывается востребованным во фронтенде и мобильной разработке, например, в Flutter. AI, Python, JavaScript — тренды сегодняшнего дня», — отмечает он.

Антон Мартынов, архитектор SimbirSoft, считает, что TypeScript играет значительную роль в современной разработке, функционируя как уже устоявшийся инструмент.
«В области мобильных приложений активно используются такие технологии, как Android с Kotlin, iOS с Swift, и в последнее время всё большую популярность набирает Flutter. Если мы говорим о разработке для рынков, где преобладают веб-решения, то здесь, безусловно, лидирует PHP. За ним следует Python, который благодаря своим многочисленным фреймворкам постепенно уступает место Go. Наша статистика показывает, что PHP занимает первое место, затем идёт Python, а уже после — Go. Это обусловлено тем, что чем раньше язык начинал своё развитие, тем больше готовых решений, которые можно эффективно применять, он накопил.
Похожая ситуация наблюдается и в области разработки корпоративных порталов, где важную роль играют готовые фреймворки и CRM-системы, написанные в основном на PHP, хотя существуют и классические решения на .NET и Java. В задачах, связанных с автоматизацией бизнес-процессов и учётом ресурсов, всё чаще применяется Go, так как он хорошо подходит для микросервисной архитектуры и позволяет достигать высокой производительности в определённых областях. Тем не менее, Java и .NET по-прежнему остаются популярными в этом секторе.
Что касается перспектив развития, мы видим, что существует значительный спрос на переход на новые платформы или миграцию с устаревших монолитных систем на микросервисную архитектуру. По нашей статистике, при таком переходе половина приходится на Java, около 30% — на Go, и оставшиеся 20% — на .NET. В то же время количество случаев миграции с .NET на другие языки увеличивается, что отражает тенденции в области программирования. «Динозавры» Java и PHP со временем будут вытеснены новыми языками.
Что касается веб-разработки, здесь изменений особо не наблюдается, JavaScript остаётся вне конкуренции, поддерживаемый тремя ключевыми фреймворками: Angular, Vue и React. В последнее время Angular немного теряет позиции, в то время как React и Vue постепенно приближаются друг к другу по уровню популярности, хотя React все же остаётся немного впереди», — отмечает эксперт.

В мире мобильной разработки преобладают три основных языка: Kotlin и Swift для соответствующих платформ, а также Dart как кроссплатформенный язык, который уже нашёл применение во многих проектах. Об этом говорит Максим Сидоров, тимлид команды системных сервисов SberDevices.
«Следует отметить, что Kotlin, будучи сравнительно молодым языком, амбициозно осваивает новые ниши, и я уверен, с появлением мультиплатформенного Compose Kotlin активно войдёт на платформу iOS и, возможно, станет доминирующим языком. Я согласен с тем, что мы оцениваем текущую ситуацию, исходя из графиков и отчётов о распространённости языков. Но важно также смотреть на несколько лет вперёд. В последнее время наблюдается появление таких интересных молодых языков, как Kotlin, Dart, Rust и Go, которые занимают около 1% на рынке согласно отчётам. Однако, по моему мнению, именно они представляют будущее программирования, и Java и PHP со временем будут вытеснены этими новыми языками с более продуманным дизайном, богатым выбором функций и интересной архитектурой.
А вот Алексей Шарыпов, Lead Backend Developer Playrix, считает, что выбор языка для бэкенда часто не критичен, хотя для программирования устройств и фронтенда, где лидирует JavaScript, это имеет значение. Основная характеристика – это стоимость и скорость разработки. Компании выбирают Python, потому что разработчиков легче найти и они доступнее, в отличие от разработчиков Go.
«Для текущего и следующего года тренд, как мне кажется, идет в сторону упрощения. Python привлекателен своей простотой и сниженной стоимостью разработки, что важно, в то время как количество проектов не растет так быстро. Компании выбирают технологии, которые дешевле в имплементации и поддержке. Крупные компании, вроде Amazon и AliExpress, используют свой собственный стек, поскольку уже вложились в развитие и обучение своих разработчиков. Но стартапы или компании, меняющие проекты, предпочтут более доступные языки.

Python сейчас популярен среди студентов из-за низкого порога входа, и в ближайшие пару лет рынок, скорее всего, наполнится разработчиками, предпочитающими этот язык. Что касается Go, его стоимость разработки в два раза выше, чем у Python, поэтому многие, особенно небольшие компании, стараются его избегать. Но крупные компании продолжают работать с Go, несмотря на стоимость», — отмечает он.
«Важен не язык, а парадигма, которую вы применяете при написании логики»
Существует мнение, что при выборе языка, особенно в игровой индустрии, ключевым является не конкретный язык программирования, а принципы и методы (парадигмы), применяемые для решения задач.
«Важен не столько язык программирования, на котором вы пишете, сколько парадигма, которую вы применяете при написании игровой логики: объектно-ориентированный и ориентированный на данные. Основная сложность заключается не столько в выборе языка, сколько в том, чтобы не усложнять инструменты разработки больше чем необходимо, и предоставлять языки, чей синтаксис знаком большинству. В игровой разработке это обычно C# или C++, в зависимости от того, какой базовый инструментарий был у разработчиков изначально», — рассказывает Андрей Карсаков.
«Далее важность приобретают хорошо оформленная документация и чётко описанный API игрового движка. Затем разработчики применяют уже отточенные навыки для изучения и использования функций движка. В целом, процесс разработки игр довольно стандартизирован в индустрии, изменения могут касаться лишь названий функций, методов, классов, но основные технологии и подходы остаются понятными и доступными. Мы хотим, чтобы любой разработчик, имеющий опыт в игровой разработке, мог без труда приступить к работе с нами, ознакомившись с документацией. Отдельно стоит заметить, что знание языка программирования в контексте конкретного игрового движка не всегда перекладывается на широкие знания этого языка в целом. Например, разработчика на C# в Unity сложно считать разработчиком на .NET, поскольку это совсем разные сферы применения языка», — говорит Андрей Карсаков.

По мнению эксперта, тот, кто умеет писать скрипты на C++ в Unreal Engine, не обязательно сможет сразу же приступить к скриптованию на C++ в Nau Engine, именно из-за разных инструментов, хоть и использующих один язык. Но если разработчик обладает глубоким пониманием основ программирования и математики, т. е. хорошей базовой подготовкой, и писал на чистом С++ или другом языке, то переход с одного языка на другой, особенно между C-подобными языками, обычно не представляет трудности.
«Однако, если речь идет о разработчике, который обучался работать только в Unity или Unreal и изучал C++ исключительно в контексте конкретных функций и синтаксиса, используемых в этих движках, переход может быть более сложным. Такому разработчику, возможно, потребуется больше времени для адаптации к новому движку по сравнению с тем, кто обладает более широкими и фундаментальными знаниями в программировании, а не ограниченным использованием языка в рамках одного инструмента или фреймворка», — резюмирует руководитель разработки Nau Engine.
«Владение одним языком не означает лёгкости перехода между разными сферами его применения»
Но есть проблема, с которой часто сталкиваются менеджеры в IТ-компаниях. Она касается использования одного языка программирования в таких разных областях, как фронтенд и бэкенд.
Петр Туголуков, корпоративный архитектор Xsolla, отмечает, что владение одним языком не означает лёгкости перехода между разными сферами его применения. Например, бэкенд-разработчику проще сменить язык программирования с PHP на Go, поскольку сфера задач схожа, и концепции middleware, сервера и базы данных остаются общими.

«Однако переход фронтенд-разработчика в бэкенд или наоборот, даже при знании JavaScript, может быть сложным. Это частая ошибка, приводящая к непредвиденным задержкам и проблемам в разработке. Фронтендер, пытаясь работать над бэкендом, может столкнуться с недостаточной производительностью, так как он не имеет опыта в этой сфере. Аналогичная ситуация возникает и в игровой разработке. Знание работы с игровыми движками позволяет разработчику легче перейти с C++ на C#, если у него достаточный опыт. Но даже знание C# не обеспечит легкого перехода из разработки игр на Unity к бэкенд-разработке. Такой переход потребует, фактически, нового обучения, так как, несмотря на общие циклы и условные операторы, специфика задач совершенно иная», — отметил Петр Туголуков.
«Возвращаясь к более серьезной разработке, необходимо понимать, что разработчик, занимавшийся бэкендами в компании вроде Яндекса, не сможет просто так перейти к работе в игровом движке. Даже если язык программирования один и тот же, архитектура движка и клиентские концепции отличаются от тех, с которыми он сталкивался на бэкенде, где важны другие аспекты (работа с памятью, оперативка), о которых бэкенд-разработчики обычно не думают. И если рассматривать Dart и Flutter, которые могут работать повсеместно, знание языка, используемого для бэкенда, не позволит автоматически перейти к разработке на десктопе, где есть свои специфические концепции, например, реестр в Windows, с которым бэкенд-разработчики обычно не сталкиваются», — добавил он.
По словам Петра, знание программного языка само по себе не достаточно для работы с этими областями. Нельзя однозначно сказать, что работа в одной сфере проще, чем в другой — ни в бэкенде, ни в мобильной разработке. Возьмите, к примеру, задачу создания распределенного приложения, сложного, аналогичного тому, что используют банки, — это может оказаться чрезвычайно трудным. Можно разрабатывать сложные архитектуры как на уровне команд, так и в играх, или десктопных приложениях. Попробуйте создать чат для фронтенда крупного классифайд-сайта — это очень непростая задача.
«Знание одного языка программирования не гарантирует, что вы сможете легко переключиться на разработку в другой области. Необходимо обладать соответствующими архитектурными знаниями. Язык может немного облегчить переход, но чтобы совершить его мгновенно, просто щелкнув пальцами — нет, я в этом совсем не уверен», — резюмировал корпоративный архитектор Xsolla.
«Уникальные навыки могут быть дорогими»
Вопрос о зарплатах всегда волнует, и люди действительно стремятся туда, где можно заработать больше. Говоря об ИТ, люди очень часто связывают работу в этой области с огромными зарплатами.
«Если вы специализируетесь на чём-то узком, вашу работу могут хорошо оплатить, но только когда такие навыки потребуются. Например, разработчики на Эликсире не всегда находят множество вакансий с высокой оплатой. Поэтому при выборе языка для изучения следует смотреть на рынок, анализировать исследования и реальные вакансии. Уникальные навыки могут быть дорогими, но не всегда востребованными, как в случае с разработчиками Cobol в США. Я рекомендую обратить внимание на такие более популярные и востребованные языки, как Swift и Kotlin для мобильной разработки, C++ и C# для игровых движков, Flutter для десктопа, а также Go, Python, Java, C# для бэкенда и, конечно, JavaScript для фронтенда. Знание одной области позволяет легко перейти к другому языку в этой же сфере. На личном опыте, для начала работы с Go после C++ мне хватило одной ночи в поезде и книги. Главное — выбрать сферу, в которой вы хотите развиваться», — говорит Петр Туголуков.
По словам Ильи Стешкова, основа разработки — это мышление программиста. Язык программирования является лишь инструментом для решения задач.
«Важна база, а выбор конкретного языка, как высказались многие эксперты сегодня, не столь важен. Выбор зависит от личных предпочтений и сферы, в которой вы хотите работать. Если стремитесь заработать, например, 400 тысяч, вы можете пойти в банки, или если хотите заниматься разработкой игр, то вам подойдут API движки.
Сначала нужно получить общее понимание решения задач, а затем уже можно выбирать специализацию и язык. При этом, даже если выбор сферы ограничен, например, фронтендом, в других областях лучше следовать сердцу, а не только рациональным расчетам. Выбранный вами инструмент будет вашим спутником на долгие годы, помогая решать задачи и достигать финансовых целей. Лично я, проработав некоторое время с PHP и поняв, что что-то меня не устраивает, перешел на Go, и это оказалось несложным», — сказал он.

«Психотип влияет на общие способности»
Андрей Карсаков считает, что переходя от одного языка программирования к другому, мы сталкиваемся с вариациями в удобстве использования, сложности конструкций и т. д. Но важно учитывать и психотип разработчика.
«Психотип может повлиять на то, насколько успешным вы окажетесь в программировании. Если у вас есть усидчивость и желание неустанно учиться новому, то программирование в любом его виде подойдет вам, так как оно требует постоянного обучения. И не стоит думать, что после изучения первого языка вы обречены оставаться с ним на всю жизнь. В большинстве случаев это не так», — уверен он.
«Да, усидчивость и склонность к экстраверсии или интроверсии имеют значение. Экстраверты обычно предпочитают взаимодействовать с людьми, а не с кодом. Среди разработчиков существует разделение. Есть те, кто любит визуальный результат своей работы, например, фронтенд, десктоп или мобильные приложения, где можно нажать кнопку и немедленно увидеть то, что сделано. И есть те, кого больше привлекает внутренняя сложность, кто предпочитает бэкенд. Это различие достаточно очевидно, особенно при найме новых сотрудников и работе со стажерами. Будущим специалистам следует задать себе вопрос, что им больше нравится — работать с API без пользовательского интерфейса или с самим интерфейсом. В зависимости от ответа можно определить свой путь в разработке, будь то фронтенд, десктоп или мобильные приложения», — добавил Петр Туголуков.
«Связь между выбором языка и уровнем зарплаты некорректна»
Максим Сидоров считает, что связывать выбор языка программирования с доходами не совсем корректно.
«Важны ваше увлечение и интерес к программированию. Если вам интересна ваша работа, вы, используя любой язык, например, PHP, R или C++, сможете заработать много. Главное, чтобы вы были вовлечены в программирование, тогда успех придет сам собой. Если говорить о начале карьеры, Python и JavaScript могут быть хорошим стартом для быстрого входа в профессию, и от них легче переходить к другим языкам. В целом, изучение всех языков доступно. Я, к примеру, учил C# и Java всего по две недели, имея опыт с другими языками», — сказал он.
«Я не спорю, что сейчас требуется много специалистов с разными языками, возможно, больше, чем традиционных программистов на C++. Важно отметить, что если вы изучаете программирование исключительно ради заработка, это может быть не лучшим подходом, с точки зрения менеджмента и воздействия на вас и продукты, которые вы создаете. В любой ремесленной профессии (программирование – это тоже ремесленное занятие, несмотря на его творческую сторону) ключевым является ваш энтузиазм в решении задач, независимо от языка», — говорит Андрей Карсаков.
«Повышение зарплаты может улучшить работу сотрудника, но только на первые недели. Затем всё возвращается к обычному уровню. Однако если специалист действительно ценный и хочет зарабатывать больше рыночного уровня, придётся ему платить выше рыночных ставок, иначе он может уйти в другую компанию. Зарплата тесно связана не столько с тем, насколько человек горит на работе, сколько с тем, какую пользу он приносит проекту, компании, команде и какой уникальный вклад может внести. Если он выделяется среди 80% разработчиков, то и будет зарабатывать больше. В России действительно лишь 3-5% разработчиков получают зарплаты 400K+, большинство имеют доход ниже. Чтобы претендовать на высокие зарплаты, нужно достичь уровня эксперта. Но независимо от вашего стремления зарабатывать, в начале карьеры вам вряд ли удастся получать большие суммы. Неизвестны случаи, когда новички сразу зарабатывали много. Нужно сначала что-то доказать», — добавил Алексей Шарыпов.

«В 2024 JS будет актуален»
Говоря о том, какие языки стоит изучать в 2024 году, эксперты составили свой собственный список актуальных инструментов.
«С точки зрения заработка и личного развития, я бы порекомендовал обратить внимание на JavaScript. Он нужен везде, в том числе в Ecom, FinTech и других бизнес-секторах для разработки фронтенда, вместе с TypeScript. В бэкенде я люблю Go и рекомендовал бы его, но сначала стоит посмотреть, что используют крупные компании (банки, VK, OZON, Вита). Если они используют Go, скорее всего, будут использовать его и в дальнейшем», — сказал Петр Туголуков.
«Если говорить о фронте, то да, JavaScript действительно актуален, я согласен с Петром. В случае бэкенда самый доступный язык для старта — это Python. Go — тоже отличный язык, но он может быть немного сложнее, и не ясно, каково будет его будущее. Python сейчас очень востребован и, судя по всему, так и останется, так что с ним проблем не предвидится», — говорит Алексей Шарыпов.

«По фронту нового не скажу — JS. Если ваше сердце лежит к бэкенду, следует изучать то, что активно используется в крупных компаниях, ведь они вряд ли откажутся от выбранного инструмента в ближайшие годы. Я бы также посоветовал Go. Спрос на квалифицированных специалистов высок, а порог вхождения, на мой взгляд, не так уж высок по сравнению с Python», — отмечает Илья Стешков.
Максим Сидоров считает, что учить нужно однозначно Python, так как он применим не только в бэкенде, но и в науке, в нейросетях.
«Он популярен на рынке и имеет широкий спектр применения. В бэкенде стоит обратить внимание на Java и C Sharp, если нет страха перед привязкой к платформам. Для мобильной разработки — Kotlin, который, как мне кажется, скоро захватит все платформы. Kotlin также привлекателен тем, что активно используется в различных сферах и может компилироваться в другие языки», — говорит эксперт.
«По фронту — JavaScript, и стоит посмотреть на такие фреймворки, как React или Vue, чтобы лучше понимать современные требования. По бэкенду — Python и Go. Если рассматривать более традиционные языки, то Java и C Sharp, но ожидаю постепенное замещение их Python и Go, или возможно появится что-то новое», — отметил Антон Мартынов.
«Стоит определить сферу интересов. Можно сосредоточиться на мобильной разработке, изучая Flutter и Kotlin, учитывая, что мобильная разработка востребована повсеместно и имеет меньше сервисов, связанных с AI, что является преимуществом для начинающих», — добавил Александр Тырышкин.
Андрей Карсаков советует, что если вы выбираете свой первый язык программирования и планируете заниматься программированием на долгосрочной основе, лучше всего предпочесть си-подобный мультипарадигменный язык, который позволит вам функционально экспериментировать и познакомиться с объектно-ориентированным программированием и др.
«Если вы хотите разрабатывать игры, то, несомненно, C++. Большинство проприетарных движков написаны на C++. Если же ваш путь лежит в скриптинг, то обычно используется C# или скриптовые языки вроде Lua или Python. Что касается бэкенд-разработки в геймдеве, то она не сильно отличается от общеизвестных бэкенд-технологий», — резюмировал эксперт.
Вместо вывода — комментарии
Мы заинтересованы в вашем мнении о теме, которую мы обсудили во время дискуссии. Для нас важно узнать, какие языки программирования вы видите актуальными в 2024 году и что думаете про наступление AI. Поделитесь своим мнением в комментариях под видео.
Автор самого интересного комментария будет награжден трехмесячной подпиской на Литрес, которая дает доступ к аудиокнигам, текстовым версиям книг, подкастам и лекциям.
Не забудьте подписаться на наш канал — впереди новые обсуждения и выступления экспертов. Кстати, если вы хотите выступить экспертом на наших дискуссиях, напишите нам.
С чего начать изучение JavaScript и как это делать эффективно

JavaScript (JS) — это многофункциональный язык программирования. В основном разработчики используют этот язык в вебе. По данным рейтинга W3Techs на ноябрь 2023 года, на JavaScript работает 98% всех сайтов.
JS, наравне с HTML и CSS, используется в создании веб-страниц. С его помощью фронтенд-разработчики придают веб-страницам интерактивность: добавляют различные слайдеры, плашки, кнопки, анимации и тем самым делают сайты удобнее для пользователей.
В бэкенд-разработке программисты с помощью JavaScript создают серверные приложения на базе программной платформы Node.js. Данные об активности пользователя на сайте, файлы, которыми он делится, отправляемые запросы — все это делается на JavaScript.
Кроме того, JavaScript используют в этих областях программирования:
- Мобильная разработка
- Разработка игр
- DevOps
- Машинное обучение
- Базы данных
Профессия «Фронтенд-разработчик»
- Изучите востребованные JavaScript и TypeScript
- Научитесь создавать пользовательские интерфейсы сайтов и приложений
- Освойте самый популярный фреймворк JavaScript — React
- Познакомьтесь с языками веб-разработки HTML и CSS
С чего начать изучать JavaScript
JavaScript — самый популярный язык среди разработчиков в 2022 году по версии исследования GitHub , база знаний у него очень большая. Важно в ней не теряться. Давайте разберемся, как начать изучать JavaScript с нуля и не запутаться в обилии информации.
Составьте план обучения
Для начала определитесь, когда вы будете заниматься и как долго. Осознание четких временных границ поможет вам не перерабатывать до усталости и выгорания, но дисциплинирует.
Изучите основы языка
- Лексика, синтаксис и семантика — то, без чего вы не освоите ни один язык программирования. На этом этапе вы должны понять, в какой последовательности давать компьютеру инструкции, как выводить информацию на экран и писать простейшие программы на языке JavaScript.
- Типы данных: что такое числа, строки, в чем разница между null и undefined.
- Операторы. Здесь нужно узнать, какие бывают операции и чем они отличаются от операторов, как складывать, вычитать, умножать и делить числа на JS, и в каком приоритете это выполняет программа.
- Переменные: что это такое, зачем они нужны, как изменять переменные и именовать их, как использовать.
- Функции: зачем их используют разработчики, какие бывают функции, что такое их сигнатура, что такое чистая функция и какие у нее особенности.
- Условные конструкции: как строить условия, как выполняется код в зависимости от условия и как строятся сложные условные конструкции.
- Методы, объекты и свойства: в чем особенность каждого понятия, что такое объекты и структуры данных.
- Циклы: для чего они нужны, как их задавать.
Описанные выше темы можно изучать по учебным пособиям, а еще можно воспользоваться бесплатными курсами в Хекслете. Вот некоторые из них:
- «Основы JavaScript» — познакомитесь с экосистемой JavaScript, ключевыми возможностями языка, а также узнаете о чистых функциях и именовании.
- «Основы современной верстки» — базовые представления о HTML-разметке страниц и CSS — каскадных таблицах стилей.
В дополнение изучите документацию MDN JS . Это хороший вспомогательный инструмент, который поможет вам разобраться с основами. Для многих разработчиков документация MDN — как настольная книга.
Изучите HTML и CSS
Так как чаще всего разработчики используют JavaScript для работы с элементами веб-сайтов, вам нужно освоить HTML и CSS. Знание этих инструментов значительно облегчит вам дальнейшую работу с кодом на JS.
Лучше всего изучать HTML и CSS параллельно с основами JS. Но здесь важно не переусердствовать и не запутаться в обилии информации. Если вы чувствуете, что в голове появляется «каша» из разных понятий, отложите изучение HTML и CSS и дайте знаниям время для усвоения. Занимайтесь в удобном для вас режиме.
Читайте также:
Установите и настройте редактор кода
Кодить на JavaScript можно и в простом «Блокноте». Но программисты практически не пользуются им в повседневной практике — возможности этого редактора очень ограничены. Для полноценной работы на JavaScript лучше выбирать редакторы с более широким функционалом.
Вот примеры нескольких редакторов кода с настраиваемым интерфейсом, подсветкой синтаксиса и удобной навигацией:
- Visual Studio Code — редактор со встроенным дебаггером, Git-командами для работы с системой управления версий GitHub.
- Sublime Text — редактор с горячими клавишами, автосохранением, автодополнением.
- WebStorm — редактор, который обеспечивает автодополнение, навигацию по коду, рефакторинг и отладку. Он платный, но очень популярный среди разработчиков.
О том, как настроить редакторы кода на JS, можно почитать в гайдах Хекслета.
Читайте также:
Пробуйте кодить
Установив редактор, как можно больше практикуйтесь. Начинайте с малого, не пытайтесь сразу применить все полученные знания и составлять сложные программы самостоятельно.
Зайдите на GitHub и найдите там открытый код на языке JS. Выберите из него самый привлекательный для вас фрагмент, скопируйте его и откройте у себя в редакторе. Изучите код, проанализируйте, почему он написан именно в таком порядке, за что отвечает каждая строка. Это хорошая практика, которая вырабатывает насмотренность и структурирует знания.
Найдите в интернете каталог плагинов для JavaScript. Выберите что-то простое, вроде слайдеров, плашек, каруселей и попытайтесь улучшить их код у себя в редакторе. Хорошее упражнение, которое научит вас, как писать JavaScript-код за счет использования сложных языковых конструкций.
Углубите свои знания
По мере вашего развития в программировании вам нужно будет познакомиться с этими понятиями языка JavaScript:
- Асинхронность и событийная модель — одна из «фишек» этого языка программирования. Кто-то ее любит, кто-то ненавидит, но у начинающих разработчиков эта концепция неизменно вызывает сложности. Чтобы стать программистом на JavaScript, нужно уметь работать с циклом событий и коллбеков, стеком вызова и промисами.
- BOM и DOM-дерево — альфа и омега веб-разработки. BOM — объектная модель браузера, а DOM — объектная модель документа. Программист должен знать, из каких элементов состоит веб-страница, какая у нее структура и как разные части взаимодействуют между собой.
- Объекты, классы, основы ООП — теоретический базис разработчика. ООП — это объектно-ориентированное программирование, одна из самых распространенных парадигм. Она предлагает создавать сущности в коде в виде различных объектов. А описывают их через классы — набор параметров и характеристик.
- Помимо самого языка программирования — JavaScript разработчику необходимо освоить популярные библиотеки и фреймворки. Библиотеки — это наборы готовых кусков кода, а фреймворки — каркасы или шаблоны для создания приложений.
Также изучите фреймворки и библиотеки. В JavaScript сейчас популярны:
- jQuery — помогает работать с событиями веб-страницы, а также содержит распространенные функции для использования в DOM, о которой говорили выше. jQuery каждый год хоронят, но за счет своей простоты библиотека не теряет актуальности.
- React — универсальный помощник для разработки пользовательских интерфейсов. У React есть еще версии для мобильной разработки и VR.
- AngularJS — фреймворк, который поддерживает Google. Он эффективен для разработки одностраничных приложений. AngularJS делит их на три отдельных части: модель, вид и контролер, что упрощает процесс написания кода.
- Vue.js — фреймворк с самым высоким рейтингом среди разработчиков и прекрасной документацией. К его особенностям относят простоту шаблонов, которая избавляет программиста от необходимости прописывать каждое действие.
Изучить эти аспекты языка в одиночку будет трудно и не быстро. На этом этапе советуем вам найти себе комьюнити таких же начинающих JS-разработчиков, ментора или обучающие курсы.
Читайте также:
Дополнительная информация
JavaScript позволяет создавать современные интерфейсы сайтов. Но в идеале программисту нужно иметь представление и о других частях приложения. Если он захочет расширить свои компетенции, то ему предстоит настраивать связи между фронтендом приложения и бэкендом — серверной частью и базами данных.
Также, помимо написания кода, ему необходимо разбираться в сетях, протоколах и браузерах.
Какие знания потребуются:
- Что такое протокол TCP/IP, какие у него есть уровни и как каждый из них работает, что такое DNS-зоны и домены.
- Сессии, куки и аутентификация — веб-разработчик должен знать, как приложения взаимодействуют с пользователями.
- База данных — одна из основных частей любого приложения, которое загружает или хранит информацию. Все разработчики используют их в своей деятельности. Нужно понимать, что такое реляционные и нереляционные базы данных, а также понимать типы связи между ними. Рекомендуется выучить основы SQL — языка запросов к базам данных.
- Инструменты разработчика от Chrome — помогают отслеживать маршруты и проводить отладку приложений прямо в консоли. Ими нужно научиться пользоваться.
- TDD — популярная техника разработки. Она предполагает, что крупный проект разбивают на несколько небольших циклов. В каждом сначала создают тесты, проверяющие изменения, а потом вносят их. Нужно понимать основы тестирования и знать об основных принципах этой техники.
Сколько времени нужно, чтобы выучить JavaScript
Скорость обучения у всех разная. Но в среднем начинающие программисты, которые изучают JavaScript и практикуются около 10 часов в неделю, могут претендовать на позицию Junior JavaScript-разработчика через 10-12 месяцев.
Истории выпускников Хекслета

Меня зовут Виталий. Расскажу, почему я ушел из нефтяной отрасли в фронтенд-разработку, как мой пет-проект придал мне уверенности на собеседованиях и тяжело ли вообще вливаться в IT после 30 лет.

Меня зовут Сергей, мне 39 лет. Расскажу, как я оставил перспективную должность ради IT, почему выбрал для развития бэкенд-разработку и чем помогаю стримерам на Twitch в свободное от работы время.
Соревнуйтесь на Codebattle
Codebattle — это платформа, на которой разработчики разных уровней и специализаций могут соревноваться в скорости написания кода или решать задачки по программированию.
Codebattle особенно полезен новичкам, потому что он:
- Прокачивает алгоритмическое мышление
- Знакомит с интересными и нестандартными задачами
- Дает полезные связи с разработчиками
- Помогает достичь минимального уровня, который требуется для прохождения собеседований
- Вносит в обучение элемент игры, что помогает лучше запоминать новую информацию.
Если у вас появятся вопросы по кодингу на Codebattle, не стесняйтесь задавать их разработчикам напрямую — это можно сделать в канале по Codebattle в Хекслет Комьюнити . Чаще упражняйтесь в кодинге, постоянно прокачивайте свои знания и у вас все получится!
Изучайте дополнительные материалы
Читайте обучающие статьи на Хабре , учебники , смотрите видеоуроки на YouTube. Есть также много хороших книг по изучению JavaScript. Будет здорово, если вы прочитаете некоторые из них:
- Дэвид Флэнаган «JavaScript. Подробное руководство»
- Дуглас Крокфорд «Как устроен JavaScript»
- Алексей Васильев «JavaScript в примерах и задачах»
У Хекслета есть свой список рекомендованной литературы. Ознакомьтесь с этими книгами — они полезны для программистов любых направлений.
Изучить основы языка JavaScript вам поможет подготовительный курс Хекслета «Фронтенд-разработчик». В программу включено много теоретических и практических заданий, которые выполняются в браузерном тренажере. Вы изучите основные понятия программирования, научитесь мыслить как разработчики, исправлять ошибки в коде, а еще создадите свою первую программу.
