Перейти к основному содержимому

Какой язык программирования выбрать

Разработчику Архитектору

Какой язык программирования выбрать

В интернете каждый год публикуют одни и те же рейтинги: "Python победил", "JavaScript нужен всем", "C# умер". На практике подходящий язык — тот, который решает вашу задачу в конкретной экосистеме, команде и инфраструктуре. Эта статья — главный хаб раздела 5: карта языков, деревья решений по направлениям, маршруты обучения и ответы на типичные вопросы новичка.

Язык программирования — формальный способ записать инструкции для компьютера. Как код превращается в работающую программу — в Что такое код и как он работает. Общая классификация по парадигмам, компиляции и типизации — в Классификации языков в IT. Здесь — прикладной выбор: куда идти за вебом, данными, мобильными приложениями, автоматизацией, играми и системным кодом.

Что вы ищетеКуда перейти
Первый язык для стартаГлавное правило для старта
Конкретное направление (веб, mobile, ML)Деревья решений по направлениям
Сроки обученияМаршруты обучения по языкам
Второй язык после базыВыбор второго языка
Контекст команды или компанииСтартап, enterprise и исследования
Быстрые ответыFAQ
Как пользоваться этой статьёй

Не читайте всё подряд. Определите цель на 6–12 месяцев, откройте соответствующее дерево решений, выберите один язык из таблицы старта и пройдите intro → первую программу в энциклопедии. Вернитесь сюда, когда будете выбирать фреймворк или второй язык.


Главное правило для старта

Новичку нужен один язык до конца базового маршрута — тот, на котором вы доведёте первый проект до конца, а не очередной лидер рейтинга.

Рекомендуемые точки входа (в любом порядке, но один за раз):

ЯзыкПочему для стартаРынок и экосистемаРаздел
PythonПростой синтаксис, REPL, данные, скрипты, учебные материалыОгромный спрос в data/ML, DevOps-скрипты, backend; много junior-вакансий в аналитике и автоматизации5.02 Python
JavaScriptБраузер + Node.js, мгновенный визуальный результатДоминирует во frontend; Node.js — fullstack и стартапы; npm — крупнейший реестр пакетов5.01 JavaScript
C#Строгая типизация, отличный IDE, игры (Unity), .NETСильный enterprise на Windows и cloud; Unity — массовый вход в gamedev5.05 C#
JavaКлассика enterprise, Android, понятная ООП-модельБанки, ERP, Android (legacy), Spring — де-факто стандарт JVM-backend5.03 Java

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

TypeScript (5.10 TypeScript) логичен после JavaScript: те же runtime и экосистема, но со статической проверкой типов. На рынке frontend и Node-backend TypeScript часто указан в вакансиях рядом с JavaScript.

Рейтинги TIOBE и GitHub — не инструкция

Рейтинги показывают масштаб экосистемы, а не ваш личный маршрут. Python может быть первым в списке, но если цель — только iOS-приложения, старт с Swift или Dart (Flutter) осмысленнее. Сначала задача, потом язык.


Что влияет на выбор

Выбор языка — это не только синтаксис. На практике решают пять факторов:

ФакторЧто проверитьПример
ЗадачаКакой продукт вы строитеСайт в браузере → JS/TS; мобильное iOS → Swift
ЭкосистемаБиблиотеки, фреймворки, инструменты сборкиML → Python + PyTorch; JVM-bank → Java + Spring
Рынок труда10–20 вакансий в вашем регионеЕсли 80% просят Java — это сигнал, не приговор
КомандаЧто уже используют коллегиВ стартапе на Rails учить PHP с нуля — лишняя трение
ИнфраструктураОС, хостинг, лицензииWindows AD → PowerShell; Linux CI → Bash + Docker

Runtime — среда, где код выполняется (браузер, JVM, Node.js, интерпретатор Python). Фреймворк — готовый каркас приложения (Django, Spring, Phoenix). Язык и фреймворк связаны, но это разные уровни: сначала язык и базовый синтаксис, затем один фреймворк под задачу.


Профильные и сложные языки

КатегорияЯзыкиКомментарий
ПрофильныеR, Julia, 1C, Smalltalk, GroovyСильны в узкой области; учить, когда задача уже определена
Инженерные / сложныеC++, RustПамять, производительность, долгая кривая обучения
Функциональные JVM/BEAMHaskell, Scala, Elixir, ClojureМощная теория; лучше после базы в функциональном программировании
Legacy / энтузиастыC, Assembler, Pascal, Fortran, COBOL, Lisp, VB, Perl, Objective-CИсторическая ценность, сопровождение, образование

C++ (5.06) и Rust (5.13) требуют понимания памяти, сборки, ABI и отладки низкого уровня — это объективный порог входа. Начинать с них имеет смысл, если цель — системное программирование и вы готовы к медленному старту.


Карта языков раздела 5

Деревья решений по направлениям

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


Веб — frontend

Frontend — часть сайта, которая работает в браузере: разметка, стили, интерактив. Подробнее — Фронтенд и бэкенд, HTML, CSS.

РольОсновные языкиТипичный стекРынок и экосистема
FrontendJavaScript, TypeScriptReact, Vue, Svelte, AngularМаксимальный спрос на UI; TypeScript — стандарт в крупных командах
Fullstack JSJavaScript/TSNext.js, Nuxt, Remix + APIСтартапы и продуктовые команды; один язык на клиенте и сервере
Legacy enterprise UIJavaScript, TypeScriptAngular, Ext JSКрупные корпоративные SPA

Маршрут в энциклопедии для frontend:

Frontend без JavaScript невозможен

HTML и CSS задают структуру и вид, но интерактив (клики, формы, SPA) — на JavaScript. Даже если backend на Python или Java, frontend почти всегда включает JS или TS. Исключения — серверный рендер без клиентской логики (HTMX, классические формы).


Веб — backend

Backend — серверная логика, API, база данных, авторизация. Язык backend выбирают по экосистеме фреймворков, найму и совместимости с инфраструктурой.

ЯзыкФреймворкСильные стороныКонтекст рынка
PythonDjango, FastAPIML-интеграция, прототипы, admin из коробкиСтартапы, data-команды, внутренние сервисы
JavaSpring BootEnterprise, банки, стабильность JVMКрупный бизнес, долгоживущие системы
JavaScript/TSExpress, NestJS, FastifyFullstack, JSON API, WebSocketПродуктовые команды, SaaS
GoGin, Echo, std net/httpМикросервисы, один бинарник, простота деплояDevOps-ориентированные компании, cloud-native
PHPLaravel, SymfonyCMS, shared-хостинг, быстрый вебФриланс, WordPress-экосистема, SMB
RubyRailsCRUD, convention over configurationПродуктовые стартапы (исторически сильны)
C#ASP.NET CoreWindows + Azure, BlazorEnterprise .NET, игры + backend в одной экосystem
ElixirPhoenixRealtime, отказоустойчивость BEAMЧаты, live-обновления, телеком
ScalaPlay, AkkaJVM + FP, SparkBig data, финтех с высокой нагрузкой

Ссылки на первые программы фреймворков:


Мобильная разработка

ЯзыкСтекРазделРынок
KotlinAndroid (официально), KMP5.09 KotlinСтандарт новых Android-проектов
SwiftiOS, iPadOS, macOS, watchOS5.14 SwiftОбязателен для нативного Apple-стека
DartFlutter (Android + iOS + web + desktop)5.22 DartКроссплатформа UI, один код базы
JavaLegacy Android5.03 JavaСопровождение старых кодовых баз
Objective-CLegacy iOS/macOS5.30 Objective-CПоддержка старых Apple-проектов
C#Unity, .NET MAUI5.05 C#Игры и кроссплатформа .NET
JavaScript/TSReact Native, Expo5.01 JSКоманды с сильным web-бекграундом
Flutter или нативный стек

Flutter (Dart) ускоряет выход на две платформы с одной кодовой базой UI. Kotlin + Swift дают максимальную интеграцию с платформенными API и дизайн-гайдами. Для первого приложения Flutter часто проще; для карьеры в крупной mobile-команде нативные языки остаются базой.


Данные, аналитика и ML

ЯзыкСильные стороныСвязь с энциклопедиейЭкосистема
Pythonpandas, scikit-learn, PyTorch, Jupyterанализ данных, 5.02 PythonДе-факто стандарт ML и data engineering
Rстатистика, tidyverse, ggplot25.23 R, tidyverseАкадемия, биостата, финансовая аналитика
Juliaчисленные методы, скорость5.24 Julia, Pkg и PlotsНаучные расчёты, когда Python медленен
ScalaApache Spark, big dataSpark на ScalaКластерная обработка petabyte-масштаба
SQLзапросы к БДраздел SQLОбязателен вместе с любым языком выше

Выбор по задаче:

  • чистая статистика и отчёты — R
  • ML-пайплайны и продакшен моделей — Python
  • тяжёлые численные расчёты на одной машине — Julia
  • распределённая обработка данных — Scala + Spark или Python PySpark

Системное программирование и производительность

ЯзыкУровеньКомментарийТипичный найм
CНизкийОснова ОС и runtime; legacy-разделEmbedded, драйверы, POSIX
C++Низкий + абстракцииИгры, HFT, embedded — 5.06 C++Gamedev, finance, automotive
RustБезопасность памятиСистемы, WASM, инфраструктура — 5.13 RustCloud infra, security, WebAssembly
ZigЯвный контрольАльтернатива C — 5.20 ZigСистемный софт, энтузиасты
NimКомпиляция в CБаланс читаемости и скорости — 5.21 NimНишевые high-perf утилиты
GoGC, goroutinesСетевые сервисы без ручной памяти — 5.10 GoDevOps, cloud, микросервисы
AssemblerЖелезоДрайверы, RE — разделОчень узкая специализация

Enterprise и корпоративные системы

ЯзыкТипичный контекстЭкосистемаКарьера
JavaБанки, ERP, SpringSpring Boot, Maven/Gradle, JVMСтабильный спрос, долгие проекты
C# / .NETWindows, Azure, корпоративные приложенияASP.NET, Entity Framework, MAUIEnterprise Microsoft-стек
ScalaBig data, высоконагруженные JVM-сервисыPlay, Akka, SparkФинтех, data platform teams
COBOLLegacy mainframeСопровождение — COBOLНишевый, но критичный для банков
1CУчёт и ERP в СНГПлатформа 1С — 5.27 1СРегиональный рынок РФ/СНГ
GroovyJenkins, Gradle, скрипты JVM5.12 GroovyDevOps в Java-организациях

Игры и интерактив

ЯзыкСтекРазделПримечание
C#Unity5.05 C#, Unity курсСамый доступный вход в коммерческий gamedev
C++Unreal Engine5.06 C++Высокий порог, AAA-студии
PythonPygame, учебные проектыигры на PythonБез Unity/Unreal, для обучения алгоритмам
Lua / LuauRoblox, встраивание в движки5.15 LuaСкриптинг уровней и модов
JavaScript/TSPhaser, Three.js, web-игры5.01 JSБраузер без установки
RustBevy, движки на Rust5.13 RustРастущая indie-сцена

Скрипты и автоматизация

ЯзыкГде применяютРаздел
BashLinux/macOS, CI, серверы5.25 Bash
PowerShellWindows, AD, Azure5.26 PowerShell
PythonУниверсальные скрипты, ETL, Ansible5.02 Python
Lua / LuauВстраивание, игры, Roblox5.15 Lua
GroovyJenkins, Gradle, скрипты JVM5.12 Groovy
PerlLegacy CGI, текстовая обработка5.29 Perl

На Windows для администрирования чаще PowerShell; на Linux-серверах — Bash плюс Python для сложной логики.


Legacy и исторические языки

Раздел 5.16 Старые языки:

ЯзыкПрактическая ценность сегодняРаздел
CПонимание памяти, POSIX, embeddedC intro
AssemblerАрхитектура CPU, оптимизацияAssembler
PascalАлгоритмы, образованиеPascal
FortranНаучные расчёты legacyFortran
COBOLСопровождение банковских системCOBOL
LispМакросы, история AILisp
Visual BasicLegacy Windows, VBA в ExcelVisual Basic
PerlLegacy скрипты, bioinformatics5.29 Perl
Objective-CLegacy iOS/macOS5.30 Objective-C

Эти языки ценны для глубины систем и истории вычислений; первый язык для новичка обычно выбирают из Python, JavaScript, C# или Java.

Расширенные таблицы по направлениям

Desktop и кроссплатформа

ЯзыкПлатформаПримечаниеЭкосистема UI
C# / .NETWindows, кроссплатформаWPF, MAUI, Avalonia — 5.04 .NETСильная интеграция с Visual Studio
JavaJVMJavaFX, SwingКроссплатформенность через JVM
C++НативноQt, высокая производительность5.06 C++
PythonКроссплатформаTkinter, PyQt; прототипы5.02 Python
SwiftmacOS, iOSНативный UI Apple5.14 Swift
DartКроссплатформаFlutter для UI на всех платформах5.22 Dart
JavaScript/TSElectron, TauriОбёртка web-технологийVS Code, Slack, Discord

Функциональные языки

ЯзыкПлатформаКогда выбираютРаздел
HaskellGHC, чистый FPКорректность, компиляторы, финтех5.17 Haskell, монады
ScalaJVMFP + ООП, Spark, Play5.18 Scala
ElixirBEAMОтказоустойчивость, realtime, Phoenix5.19 Elixir
ClojureJVMLisp на JVM, immutable data5.28 Clojure
LispИстория FPОбразование, энтузиастыLisp

Нишевые и специализированные

ЯзыкНишаРаздел
SmalltalkООП-истоки, live programming5.08 Smalltalk
GroovyJVM-скрипты, Gradle5.12 Groovy
1CБухгалтерия и учёт в РФ/СНГ5.27 1С
DartFlutter UI5.22 Dart
RubyRails, DSL, скрипты5.11 Ruby
PHPCMS, веб-хостинг5.07 PHP

Маршруты обучения по стартовым языкам

Ниже — ориентиры неделя 1, месяц 1, месяц 3 для четырёх рекомендованных точек входа. Темп индивидуален; важнее запускать код локально, а не пролистывать теорию.


Python — маршрут новичка

ПериодЦелиМатериалы энциклопедии
Неделя 1Установка Python, REPL, print, переменные, типы, if/for, первая программа из файла5.02 intro, первая программа в разделе
Месяц 1Функции, списки/словари, файлы, venv, pip, один CLI-проект (todo, конвертер)Основы синтаксиса, шпаргалка
Месяц 3ООП базово, pytest, один веб или data-мини-проектFastAPI 3432 или pandas; Django 3011

Неделя 1 — по дням (пример):

  • День 1–2: установка, python --version, REPL, арифметика и строки
  • День 3–4: переменные, if, циклы for/while
  • День 5–6: функции def, списки
  • День 7: мини-скрипт (калькулятор BMI, guess the number)

Месяц 1 — вехи:

  • Неделя 2: словари, множества, работа с файлами .txt / .json
  • Неделя 3: venv, pip install, структура папки проекта
  • Неделя 4: проект на 200–400 строк с README

Месяц 3 — вехи:

  • Освоить один инструмент: FastAPI или Django или pandas
  • Написать 3–5 автотестов
  • Выложить проект на GitHub (см. Git intro)
Python и данные

Если цель — ML или аналитика, после месяца 1 добавьте Jupyter и pandas, но не пропускайте основы: без понимания функций и структур данных библиотеки превращаются в копипасту. См. анализ данных.


JavaScript — маршрут новичка

ПериодЦелиМатериалы
Неделя 1Браузерная консоль, переменные, функции, DOM (кнопка меняет текст)5.01 intro
Месяц 1Node.js, npm, модули, async/await, простой HTTPNode 262, npm 265
Месяц 3React или Vue + Express API или NestJSReact intro, Express 263, NestJS 269

Неделя 1 — по дням:

  • День 1–2: DevTools Console, let/const, типы, операторы
  • День 3–4: функции, стрелочные функции, массивы map/filter
  • День 5–6: DOM — querySelector, события click
  • День 7: страница с интерактивным списком задач (без фреймворка)

Месяц 1 — вехи:

  • Установить Node.js LTS, node hello.js, REPL Node
  • package.json, npm run dev
  • Мини API на http.createServer или Express

Месяц 3 — вехи:

  • Один frontend-фреймворк (React рекомендуется по спросу)
  • Связка frontend + backend (fullstack 264)
  • Опционально: TypeScript intro

C# — маршрут новичка

ПериодЦелиМатериалы
Неделя 1.NET SDK, dotnet new, типы, циклы, методы5.05 C# intro, 5.04 .NET
Месяц 1Классы, LINQ, консольное приложение, отладка в VS / RiderОсновы ООП в разделе C#
Месяц 3ASP.NET Web API или Unity 2D проектUnity курс

Неделя 1 — по дням:

  • День 1–2: установка SDK, dotnet --version, Hello World
  • День 3–4: int, string, bool, if, for, foreach
  • День 5–6: методы, массивы, List<T>
  • День 7: консольная викторина или калькулятор

Месяц 1 — вехи:

  • Классы, свойства, конструкторы
  • Обработка исключений try/catch
  • Мини-проект: учёт расходов или телефонная книга

Месяц 3 — вехи:

  • Ветка веб: ASP.NET Core REST + Swagger
  • Ветка игры: Unity — сцена, физика, один уровень
  • Публикация на GitHub

Java — маршрут новичка

ПериодЦелиМатериалы
Неделя 1JDK, javac/java или IDE, типы, циклы, методы5.03 Java intro
Месяц 1Классы, коллекции, Maven/Gradle, JUnitОсновы Java в разделе
Месяц 3Spring Boot REST или Android HelloSpring 271, Kotlin 5.09 для нового Android

Неделя 1 — по дням:

  • День 1–2: JDK 17+, первая программа public class Main
  • День 3–4: примитивы, String, условия
  • День 5–6: массивы, ArrayList, циклы
  • День 7: методы, простой класс Student или Product

Месяц 1 — вехи:

  • Инкапсуляция, интерфейсы (базово)
  • Сборка Maven, структура src/main/java
  • 3–5 unit-тестов JUnit

Месяц 3 — вехи:

  • Spring Boot: CRUD API + H2/PostgreSQL
  • Или Android: Activity + RecyclerView (Kotlin предпочтительнее для новых проектов)

Если хотите X — начните с Y

Практические сценарии для быстрого выбора. Каждый сценарий предполагает один язык до первого завершённого проекта.

Если хотите…Начните с…Затем изучите…Статья
Сайт с кнопками и формами в браузереJavaScriptHTML, CSS, React5.01 JS
REST API для мобильного приложенияPython (FastAPI) или Node.jsSQL, DockerFastAPI, Node 262
Работу в банке на JVMJavaSpring, SQL5.03 Java
Azure и корпоративный .NETC#ASP.NET, Entity Framework5.05 C#
Telegram-ботаPythonaiogram или python-telegram-bot5.02 Python
Парсинг сайтов и ETLPythonrequests, BeautifulSoup, pandas5.02 Python
Нейросети и MLPythonPyTorch/scikit-learn, linear algebra5.02 Python
iOS-приложение в App StoreSwiftSwiftUI, Xcode5.14 Swift
Android-приложениеKotlinJetpack Compose5.09 Kotlin
Одно приложение на Android и iOSDartFlutter5.22 Dart
3D-игру без C++C#UnityUnity курс
Микросервис с одним бинарникомGoDocker, gRPC5.10 Go
WordPress или Laravel-сайтPHPLaravel, MySQL5.07 PHP
Стартап за выходные (CRUD)RubyRails5.11 Ruby
Чат с тысячами онлайн-пользователейElixirPhoenix ChannelsPhoenix 104
Spark и big dataScalaSpark, Kafka5.18 Scala
Скрипты на Linux-сервереBashзатем Python5.25 Bash
Администрирование WindowsPowerShellAzure CLI5.26 PowerShell
Моды в RobloxLuauRoblox Studio5.15 Lua
1С-франчайзи в РФ1Cплатформа 1С:Предприятие5.27 1С
Системный софт без GCRust (после базы)cargo, ownership5.13 Rust
Высокопроизводительные игрыC++ (после базы)Unreal, CMake5.06 C++
Статистику и ggplot2Rtidyverse5.23 R
Научные расчёты быстрее PythonJuliaPlots.jl5.24 Julia
Type-safe enterprise API на NodeTypeScriptNestJS269 NestJS
Legacy mainframeCOBOL (узкая ниша)JCL, сопровождениеCOBOL
FP и доказательство корректностиHaskell (после базы)монады, QuickCheck5.17 Haskell
Lisp и макросы на JVMClojureLeiningen/deps5.28 Clojure

Контекст команды и компании

Язык в вакансии — следствие истории продукта, а не абстрактного "лучшего" выбора. Три типичных контекста:

Стартап и продуктовая команда

ХарактеристикаТипичный стекЯзыки
Быстрый MVPRails, Laravel, Next.js, DjangoRuby, PHP, JS/TS, Python
Мало людей, fullstackОдин язык на клиенте и сервереJavaScript/TypeScript
Mobile + webFlutter или React NativeDart, JS/TS
Переписывание legacyПостепенная миграцияНовый сервис на Go/Python, старый на Java

Совет новичку: в стартапе ценят скорость доставки фич и широту навыков. JavaScript/Python/Ruby дают быстрый результат. Go подключают, когда упираются в производительность или сложность деплоя.

Enterprise и крупный бизнес

ХарактеристикаТипичный стекЯзыки
Банки, страхованиеSpring, Oracle/PostgreSQL, KafkaJava, иногда Scala
Microsoft-ландшафтAzure, Active Directory, SharePointC#, PowerShell
Долгие контрактыСтрогие процессы, code review, QAJava, C#, иногда COBOL (legacy)
Big data platformSpark, Airflow, data lakeScala, Python

Совет новичку: Java и C# — предсказуемый путь в корпорацию. Требуют терпения к шаблонному коду, Maven/Gradle, Spring или .NET DI. Зато процессы обучения часто формализованы.

Исследования, академия, open source

ХарактеристикаТипичный стекЯзыки
ML researchJupyter, PyTorch, LaTeXPython
СтатистикаRStudio, tidyverseR
Компиляторы, PLTGHC, papersHaskell, OCaml-родственные идеи
Научные расчётыHPC кластерыFortran (legacy), Julia, Python
Системное OSSkernels, databasesC, Rust, Go

Совет новичку: Python и R закрывают большинство исследовательских задач. Haskell и Julia — когда уже есть математическая база и конкретная мотивация.

Язык команды важнее рейтинга

Если вы уже в проекте на Elixir, учить параллельно Go "потому что модно" — распыление сил. Сначала продуктивность в стеке команды, второй язык — когда появится новая задача или смена проекта.


Выбор второго языка

Второй язык имеет смысл, когда первый доведён до рабочего проекта (intro и синтаксис уже позади). Цель второго — расширить модель мышления или рынок, продолжая опираться на опыт первого.

Матрица "первый → второй"

Первый языкЛогичный второйЗачем
PythonJavaScriptFullstack, веб-UI, Node API
PythonGoProduction-сервисы, performance без C++
PythonRustСистемные расширения, WASM
JavaScriptTypeScriptТипы (если ещё не TS)
JavaScriptPythonML, data, scripting
JavaKotlinAndroid, лаконичный JVM
JavaScalaFP, Spark
JavaGoМикросервисы рядом с монолитом
C#TypeScriptFullstack в .NET + SPA
C#C++Unity + native plugins
RubyElixirПохожий продуктовый дух, BEAM
PHPJavaScriptСовременный frontend к Laravel
GoRustКогда Go не хватает контроля
HaskellScala или OCaml-идеиПрикладной FP на JVM

Признаки, что пора ко второму языку

  • Вы пишете первый язык без постоянного googling синтаксиса базовых конструкций
  • Есть 1–2 завершённых проекта в портфолио
  • Новая задача явно лучше решается другим runtime (например, browser UI после Python CLI)
  • В вакансиях мечты стабильно фигурирует второй язык

Признаки, что второй язык рано

  • Путаете синтаксис for, объявление функций, импорт модулей
  • Ни одного проекта не довели до "можно показать на собеседовании"
  • Учите второй язык, чтобы отложить сложность первого (прокрастинация)

Практический алгоритм выбора

Шаг 1. Определите цель на 6–12 месяцев

ЦельПервый язык
Сайты и интерактив в браузереJavaScript → TypeScript
Автоматизация, данные, MLPython
Мобильные приложения AndroidKotlin
Мобильные iOSSwift
Кроссплатформа UIDart (Flutter)
Игры на UnityC#
Корпоративный backendJava или C#
Системы и performanceC++ или Rust (после базы)
1С-разработка в СНГ1C
DevOps и скриптыBash/PowerShell + Python

Шаг 2. Проверьте вакансии в вашем регионе

Откройте 10–20 объявлений по выбранному направлению. Обратите внимание на:

  • Язык (Java, Python, JS)
  • Фреймворк (Spring, Django, React)
  • Инфраструктура (AWS, Kubernetes, 1С)
  • Уровень (junior часто допускает "знание основ + портфолио")

Если 80% требуют Java + Spring, а вы учите только Ruby, это допустимый выбор — но важно понимать рынок и планировать второй стек при необходимости. Зарплатные диапазоны сильно зависят от региона и уровня; ориентируйтесь на экосистему и объём вакансий, а не на один пост в блоге.

Шаг 3. Пройдите один маршрут до конца

  1. Что такое код — общая база
  2. Intro выбранного языка → первая программа → основы синтаксиса
  3. Один мини-проект (CLI, CRUD, калькулятор)
  4. Только потом — фреймворк (Rails, Spring, Phoenix, Play, NestJS, Laravel, Django)

Шаг 4. Не смешивайте правила разных языков

На одной неделе не сравнивайте ownership в Rust, ленивость в Haskell и prototype chain в JavaScript. Сначала закрепите одну модель выполнения.

Шаг 5. Зафиксируйте стек письменно

Запишите в README или заметку:

  • Язык и версия runtime
  • Редактор и расширения
  • Менеджер пакетов (npm, pip, cargo)
  • Целевой фреймворк и срок (например, "Spring через 8 недель")

Частые ошибки при выборе языка

ОшибкаПоследствиеЧто делать
Выбор языка "из рейтинга"Нет мотивации и проектаПривязать к задаче из таблицы Если хотите X
Сразу 3 языкаПутаница в синтаксисеОдин язык до первого проекта
Прыжок в C++/Rust без базыFrustration, бросаниеPython/JS/C#/Java сначала
Игнор экосистемыЗнание синтаксиса без сборки проектаnpm, pip, cargo, mix, sbt — по разделу языка
Вайб-кодинг без запускаИллюзия знанияЗапускать каждый пример локально
Фреймворк до синтаксисаНепонимание ошибок компилятораIntro → первая программа → потом Django/Spring
Выбор dead stack для целиСложный наймПроверить 20 вакансий в регионе
"Выучу всё сразу" fullstackПоверхностностьFrontend или backend глубже, затем второй слой
Копирование конфигов без чтенияЧёрный ящик в package.json / pom.xmlРазбирать каждую добавленную зависимость
Смена языка каждые 2 неделиНет портфолиоМинимум 6–8 недель на одном языке

Про копипасту без понимания — вайб-кодинг. ИИ полезен для объяснений, но генерация кода не заменяет запуск и отладку.

Ошибки по направлениям

Веб: учить React до HTML/CSS; игнорировать HTTP и REST; не понимать CORS (fullstack 264).

Data/ML: прыгать в нейросети без pandas и линейной алгебры; не учить SQL.

Mobile: начинать с Flutter, не понимая жизненный цикл Activity/ViewController.

Enterprise: учить Spring до Java core; копировать @Autowired без понимания DI.

Games: покупать ассеты Unity, не написав ни одного скрипта на C#.

DevOps: писать 500-строчный Bash вместо Python; хранить секреты в скриптах.

Ошибка архитектора и тимлида

Выбирать язык по личной симпатии, игнорируя навыки команды и стоимость найма. Новый сервис на Nim в команде из 20 Java-разработчиков — осознанный риск, а не "модный эксперимент" без бюджета на обучение.


Рынок труда и экосистема — общий контекст

Конкретные цифры зарплат быстро устаревают и сильно зависят от города, удалёнки и уровня. Надёжнее смотреть на объём вакансий, стек в описании и долговечность экосистемы.

Как читать вакансии

Поле в объявленииЧто извлечьДействие
ЯзыкJava, Python, JSОсновной маршрут обучения
ФреймворкSpring, React, DjangoЦель после 1–2 месяцев базы
БДPostgreSQL, MongoDBПараллельно учить SQL
CloudAWS, Azure, GCPИнфраструктура, не язык
Domainfintech, gamedev, 1СУточняет нишевые языки

Объём экосистем по направлениям (качественно)

НаправлениеВысокий спросСредний спросНишевый, но стабильный
Web frontendJavaScript, TypeScriptExt JS (enterprise legacy)
Web backendJava, Python, JS/TS, C#Go, PHP, RubyElixir, Scala
MobileKotlin, SwiftDart (Flutter)Objective-C (legacy)
Data / MLPythonR, SQLJulia
DevOps / SREPython, Go, BashPowerShellGroovy (CI)
EnterpriseJava, C#ScalaCOBOL, 1С
SystemsC++, RustGo, ZigNim, Assembler
GamesC# (Unity), C++LuaRust (indie)

Попарное сравнение для выбора

Python и JavaScript

КритерийPythonJavaScript
Первая программаREPL, CLIБраузер + Node
ТипизацияДинамическая (optional mypy)Динамическая (+ TS)
ДоменыData, ML, scripts, APIWeb UI, fullstack, mobile RN
Менеджер пакетовpip, uvnpm, pnpm
Типичный фреймворкDjango, FastAPIReact, Express, NestJS

Java и C#

КритерийJavaC#
RuntimeJVM.NET CLR
EnterpriseSpring everywhereASP.NET, Azure
MobileAndroid legacyMAUI, Unity
IDEIntelliJ IDEAVisual Studio, Rider
Open sourceПолностьюCore open, экосистема mixed

Go и Rust

КритерийGoRust
Порог входаСреднийВысокий
ПамятьGCOwnership, borrow checker
СборкаБыстраяДольше, cargo
Типичная рольMicroservices, CLI, DevOpsSystems, WASM, infra tools
Фреймворк webGin, Echo, stdAxum, Actix

Kotlin и Swift

КритерийKotlinSwift
ПлатформаAndroid, KMPApple ecosystem
InteropJava 100%Objective-C legacy
UI toolkitComposeSwiftUI
АльтернативаFlutter (Dart)Flutter (Dart)

Ruby и PHP

КритерийRubyPHP
ФлагманRailsLaravel
HostingPaaS (Heroku-style)Shared hosting, WordPress
Скорость MVPОчень высокаяВысокая
Рынок 2020-хУже, продуктовыйМассовый веб, CMS

Elixir и Node.js

КритерийElixirNode.js
Runtime modelBEAM actorsEvent loop single-thread
Сильная сторонаFault tolerance, realtimeJSON API, npm ecosystem
Web frameworkPhoenixExpress, NestJS
Типичный кейсChat, live dashboardsCRUD SaaS, SSR

Дополнительные маршруты обучения

Помимо четырёх универсальных стартов, иногда первым языком выбирают Kotlin, Go или Swift — когда цель уже узкая.

Kotlin — если цель только Android

ПериодЦелиМатериалы
Неделя 1Android Studio, первая Activity, layout XML или Compose preview5.09 Kotlin intro
Месяц 1Kotlin syntax, coroutines basics, RecyclerView или LazyColumnСтатьи раздела Kotlin
Месяц 3Мини-app в Play Internal Testing, Room DB, ViewModelJetpack libraries

Kotlin interoperates с Java — в enterprise Android-командах полезно читать Java-примеры из старых туториалов.

Go — если цель DevOps или microservices

ПериодЦелиМатериалы
Неделя 1go mod init, structs, interfaces, go run5.10 Go intro
Месяц 1HTTP server std lib, goroutines, channels basicsСтатьи Go раздела
Месяц 3REST API + Docker, один CLI tool с cobraGo intro

Go проще Rust для первого compiled языка после Python/JavaScript.

Swift — если цель только Apple

ПериодЦелиМатериалы
Неделя 1Xcode, Swift Playgrounds, variables, optionals5.14 Swift intro
Месяц 1SwiftUI List, NavigationStack, @StateSwift раздел
Месяц 3App Store Connect test build, Core Data or SwiftData basicsApple HIG

Нужен Mac для полноценной разработки под iOS — учитывайте железо до старта.


Словарь терминов для новичка

ТерминПростое объяснение
RuntimeПрограмма, которая выполняет ваш код (Node, JVM, Python interpreter)
КомпиляторПереводит весь код в машинный или байткод до запуска (javac, rustc)
ИнтерпретаторВыполняет код построчно или по блокам (python, node для JS)
JITJust-In-Time — компиляция во время работы (JVM HotSpot, JavaScript V8)
GCGarbage Collection — автоматическое освобождение памяти (Java, Go, Python)
Статическая типизацияТипы проверяются до запуска (Java, Rust, TypeScript)
Динамическая типизацияТипы определяются при выполнении (Python, JavaScript)
ПарадигмаСтиль программирования: ООП, функциональный, процедурный
ФреймворкКаркас приложения с conventions (Rails, Spring, Phoenix)
БиблиотекаНабор функций, которые вы вызываете (requests, lodash)
Package managerУстановка зависимостей (npm, pip, cargo, mix)
REPLИнтерактивная консоль для экспериментов
APIИнтерфейс для общения программ (REST, GraphQL)
ORMОбъектно-реляционное отображение таблиц БД на классы
MiddlewareПрослойка обработки HTTP-запроса (логирование, auth)
MicroservicesМного маленьких сервисов вместо одного монолита
MonolithОдно большое приложение со всей логикой
LegacyСтарый код, который ещё поддерживают и нельзя быстро переписать
FullstackFrontend + backend одним разработчиком
DevOpsАвтоматизация сборки, деплоя, мониторинга

Подробнее о типах данных — данные и информация. О парадигмах — классификация языков.


Сравнение фреймворков backend — когда что учить

ФреймворкЯзыкСтильЛучше дляСтатья
ExpressJSMinimalОбучение HTTP, маленькие API263
NestJSTSStructured, DIEnterprise Node, команды из Java269
FastifyJSFast, schemaHigh-throughput APINode 26
DjangoPythonBatteries includedAdmin, CMS, monolith web3011
FastAPIPythonAsync, OpenAPIML API, microservices3432
FlaskPythonMicroПрототипы, учебные APIPython раздел
Spring BootJavaEnterpriseBanks, large teams271
ASP.NET CoreC#Microsoft stackAzure, corporate5.04 .NET
LaravelPHPMVC, EloquentWeb agencies, startups1431
RailsRubyConventionProduct MVPs21
GinGoMinimal routerCloud native servicesGo раздел
PhoenixElixirRealtimeLiveView, channels104
PlayScalaMVC JVMWeb + same lang as Spark211

Сравнение frontend-стеков

СтекЯзыкКогда выбираютРаздел
ReactJS/TSМаксимальный рынок, SPA, RNReact intro
VueJS/TSПостепенное внедрение, Asia/EU teamsVue intro
AngularTSEnterprise forms, large appsAngular intro
SvelteJSМалый bundle, простотаJS ecosystem
Next.jsTSSSR, SEO, fullstack ReactMeta-frameworks
BlazorC#.NET teams без JS5.05 C#
Flutter WebDartОбщий код с mobile5.22 Dart

Порядок изучения frontend:

  1. HTML + CSS базово (3.09, 3.10)
  2. JavaScript без фреймворка (DOM, fetch)
  3. Один фреймворк (React чаще всего по вакансиям)
  4. TypeScript
  5. Meta-framework (Next.js) при необходимости SSR

Специальные карьерные треки

Data Engineer

ЭтапНавыкЯзык/инструмент
1SQL advancedSQL
2ETL scriptsPython
3Spark / AirflowPython, иногда Scala
4Cloud storageAWS S3, GCS (концепции)

Старт: Python + SQL + анализ данных.

ML Engineer

ЭтапНавыкЯзык/инструмент
1Python + numpy/pandasPython
2scikit-learnPython
3PyTorch или TensorFlowPython
4MLOps (Docker, API)Python FastAPI

Старт: Python обязателен. R — для статистики, production ML в большинстве компаний строят на Python.

DevOps / Platform Engineer

ЭтапНавыкЯзык/инструмент
1Shell automationBash или PowerShell
2ScriptingPython
3ServicesGo
4IaCHCL Terraform (не язык раздела 5)

Старт: Bash или PowerShell + Python.

Security Engineer

ЭтапНавыкЯзык/инструмент
1Scripting для анализа логовPython
2Understanding memory bugsC, затем Rust
3Web vulnsJavaScript, PHP (reading code)

Старт: Python, параллельно основы C для понимания exploits.

Game Developer (indie)

ЭтапНавыкЯзык/инструмент
1Unity basicsC#
2Game loops, physicsC#
3Shaders (optional)HLSL/ShaderLab
4Multiplayer (optional)C# + networking libs

Старт: C# + Unity курс. Альтернатива без движка — Python Pygame.


Мифы о языках — короткая проверка реальностью

МифРеальность
"Один язык на всю карьеру"Смена 2–3 языков за карьеру нормальна
"Python медленный — значит бесполезен"Медленнее C++, но быстрее разработки; ML и web на нём в production
"JavaScript — игрушка"Пowers Netflix, LinkedIn frontend, Node backends
"Java мёртв"Доминирует в enterprise и Android legacy
"PHP умер"WordPress + Laravel держат огромный сегмент веба
"Нужен только алгоритмический язык из вуза"Промышленный стек = язык + фреймворк + SQL + Git
"Rust заменит всё"Растёт в infra, mass hiring пока у Java/Go/Python
"Low-code заменит программистов"Ускоряет прототипы; сложная логика остаётся на коде
"AI пишет код — язык не важен"Без понимания runtime AI генерирует хрупкие решения — вайб-кодинг
"Выучу 10 языков за год"Рекрутеры смотрят глубину и проекты

Чек-лист самопроверки перед сменой языка

Ответьте честно "да" или "нет":

  1. Я могу написать функцию с параметрами и циклом без подсказки
  2. Я понимаю сообщение об ошибке компилятора или интерпретатора
  3. Я пользовался git commit и push хотя бы раз
  4. У меня есть проект, который запускается на другом компьютере (README с инструкцией)
  5. Я читал чужой код на этом языке и мог его изменить

Если меньше 3 "да" — рано менять язык. Углубите текущий.


Историческая перспектива — почему языков так много

Языки появлялись под конкретные ограничения эпохи:

ЭпохаЯзыкЗадача, которую решали
1950–60sFortran, COBOL, LispНаучные расчёты, бизнес, AI research
1970sC, PascalUnix, системное программирование, обучение
1980–90sC++, Java, PerlOOP, безопасность памяти (GC), web CGI
1995–2000JavaScript, PHP, RubyWeb browser, dynamic pages
2000–10sC#, Go, Scala.NET platform, cloud simplicity, JVM FP
2010–20sRust, Kotlin, Swift, TypeScriptMemory safety, mobile, Apple, typed JS
2020sJulia, Zig, Elixir boomHPC, C alternative, realtime web

Понимание истории помогает не бояться legacy: COBOL в банке — актив с decades of business rules и критичной бизнес-логикой.

Раздел 5.16 Старые языки и Smalltalk показывают, откуда взялись IDE, OOP и live debugging.


Работа с ИИ при выборе и изучении языка

ДопустимоОпасно
Сравнить стеки для вашей задачиДоверять "лучший язык 2026" без контекста
Объяснение ошибки построчноКопировать 200 строк без запуска
Генерация тестовых данныхCommit secrets в репозиторий
Перевод документацииВыдавать AI-код за свой на собеседовании

Рекомендуемые статьи: генерация кода, вайб-кодинг, нейрослоп.

Промпт для ИИ при выборе языка

Сформулируйте: "Моя цель — [конкретный продукт], регион — [город/remote], опыт — [ноль/есть Python]. Сравни 2 языка по экосистеме, порогу входа и типичным junior-вакансиям. Без общих фраз." Затем сверьте ответ с деревьями решений в этой статье и реальными вакансиями.


ORM и доступ к данным — что учить рядом с языком

Почти любой backend работает с базой данных. Язык определяет популярные ORM, но SQL остаётся общим знаменателем.

ORM / toolЯзыкСтильСтатья
PrismaTypeScriptSchema-first, migrations2691 Prisma
DrizzleTypeScriptSQL-like, lightweight2692 Drizzle
SQLAlchemyPythonMature, flexiblePython раздел
Django ORMPythonIntegrated with adminDjango 3011
Hibernate / JPAJavaEnterprise standardJava Spring статьи
Entity FrameworkC#.NET integrated5.04 .NET
EloquentPHPLaravel bundledLaravel 1431
ActiveRecordRubyRails bundledRails 21
EctoElixirFunctional, changesetsPhoenix 104

Порядок: SQL SELECT/JOIN → драйвер или ORM в выбранном языке → миграции → индексы и EXPLAIN.


TypeScript — маршрут после JavaScript

TypeScript не заменяет JavaScript — он расширяет его типами. Отдельный маршрут для тех, кто прошёл 2–4 недели JS.

ПериодЦелиМатериалы
Неделя 1tsc, базовые типы, interfaces, union types5.10 TS intro
Месяц 1Generics basics, strict mode, типизация API responsesTS раздел, декораторы 23
Месяц 3NestJS или typed React; eslint + prettier269 NestJS

Неделя 1 TS — по дням:

  • День 1–2: установка TypeScript, tsc, compile to JS
  • День 3–4: interface, type, optional ?
  • День 5–6: arrays, tuples, function signatures
  • День 7: переписать один JS-файл на TS с strict: true

Нишевые языки раздела 5 — когда они уместны

Clojure (5.28)

АспектДетали
ПлатформаJVM, Lisp-синтаксис
Сильные стороныImmutable data, macros, concurrency
Когда учитьПосле Java или другого JVM-языка
РынокУзкий, data-heavy JVM shops
Раздел5.28 Clojure intro

Perl (5.29)

АспектДетали
ИсторияДоминировал в CGI и text processing 1990-х
СегодняLegacy scripts, bioinformatics, системное администрирование
Когда учитьПри поддержке существующего Perl-кода
Раздел5.29 Perl intro

Objective-C (5.30)

АспектДетали
ПлатформаLegacy iOS, macOS до Swift
СегодняMixed codebases, поддержка старых приложений
Когда учитьПосле Swift, если job требует maintenance
Раздел5.30 Objective-C intro

Zig (5.20) и Nim (5.21)

ЯзыкПозиционированиеСтарт
ZigЯвная альтернатива C, comptimeПосле C или системного опыта — 5.20
NimPython-like syntax → C performanceПосле Python, если нужна скорость — 5.21

Региональный контекст (СНГ и remote)

Регион / форматЧастые языкиКомментарий
Remote globalJS, Python, Java, GoСтек как в EU/US вакансиях
РФ/СНГ enterpriseJava, C#, 1С, Python1С — отдельная линия карьеры
РФ стартапыJS/TS, Python, PHPLaravel и Bitrix-сегмент
EU corporateJava, C#, TSGDPR-aware backend
US West CoastJS/TS, Python, GoProduct + cloud
Freelance globalPHP, JS, PythonWordPress, Laravel, Django

— не "альтернатива Python", а отдельная профессия с сертификацией и франчайзи. Выбирайте осознанно, если цель — бухгалтерия и ERP в регионе.


Примеры портфолио-проектов по языку

Один завершённый проект лучше пяти незаконченных tutorials.

ЯзыкИдея проектаДемонстрирует
PythonCLI трекер привычек + SQLiteФайлы, БД, argparse
JavaScriptWeather app (open API + DOM)fetch, async
JavaScript/NodeREST API заметок + JWTExpress, auth
TypeScriptTodo SPA + typed API clientTS, React
JavaSpring Boot library CRUDJPA, REST
C#Unity 2D platformerGame loop, physics
KotlinAndroid notes appRoom, Compose
SwiftiOS counter + UserDefaultsSwiftUI
GoURL shortener + RedisHTTP, concurrency
PHPLaravel blogMVC, Eloquent
RubyRails bookmark managerScaffolding, REST
RustCLI grep cloneOwnership, files

Каждый проект: README с установкой, скриншот или gif, 3+ commits в Git.


Связь с другими разделами энциклопедии

РазделЗачем при выборе языка
4. Код и разработкаGit, отладка, тесты — независимо от языка
1.23 Frontend и backendРоли в вебе
3.07 SQLОбязательное дополнение
1.26 Карьера в ITМифы и ожидания
6. AIИИ как помощник, не замена базы
9.04 Разработка игрUnity, Pygame, практикумы

Краткая шпаргалка — выбор за 60 секунд

Вопрос себеОтвет → язык
Хочу сайт с анимациямиJavaScript
Хочу Telegram-ботаPython
Хочу работу в банке JVMJava
Хочу Azure корпорациюC#
Хочу indie игруC# Unity
Хочу только скрипты на сервереBash + Python
Хочу WASM/systems после базыRust
Хочу статистику в университетеR

FAQ — часто задаваемые вопросы

Вопрос. Какой язык программирования лучше всего для новичка в 2025–2026 году?

Ответ. Универсального "лучшего" нет. Для большинства подойдут Python, JavaScript, C# или Java — выберите по цели из таблицы старта и пройдите один маршрут до проекта.

Вопрос. Python или JavaScript — что выбрать первым?

Ответ. JavaScript, если хотите сайты и мгновенный результат в браузере. Python, если интересны данные, ML, скрипты и backend без UI. Оба — отличный первый язык; не учите параллельно.

Вопрос. Нужно ли учить TypeScript сразу вместо JavaScript?

Ответ. Обычно сначала JavaScript (1–4 недели базы), затем TypeScript intro. TS — надмножество JS; без понимания JS ошибки типов будут непонятны.

Вопрос. Java или C# для enterprise-карьеры?

Ответ. Зависит от региона и сектора. Java + Spring — глобальные банки и JVM-ландшафт. C# + .NET — Microsoft/Azure и часть корпораций. Откройте вакансии в вашем городе и сравните количество.

Вопрос. Go или Rust для backend?

Ответ. Go — быстрее вход, GC, микросервисы, DevOps (5.10 Go). Rust — контроль памяти и безопасность, дольше учить (5.13 Rust). Для первого системного языка после Python часто берут Go.

Вопрос. Kotlin или Java для Android?

Ответ. Kotlin — официальный выбор Google для новых проектов (5.09 Kotlin). Java нужен для чтения legacy-кода. Новичку на Android — Kotlin.

Вопрос. Flutter (Dart) или нативная разработка?

Ответ. Flutter — один код UI для Android и iOS (5.22 Dart). Kotlin + Swift — максимальная интеграция с платформой. Flutter быстрее для solo и MVP; крупные mobile-команды часто нативны.

Вопрос. PHP ещё актуален?

Ответ. Да для WordPress, Laravel, shared-хостинга и большого legacy-веба (5.07 PHP). Меньше hype, чем у Node, но стабильный спрос в SMB и фрилансе.

Вопрос. Ruby on Rails мёртв?

Ответ. Нет, но ниша уже, чем у Python/Node. Rails силён для продуктовых CRUD и стартапов (5.11 Ruby). Проверьте вакансии в вашем регионе перед выбором.

Вопрос. Стоит ли учить C++ первым языком?

Ответ. Обычно нет. C++ оправдан, если цель — gamedev AAA, embedded или HFT и вы готовы к месяцам основ. Иначе начните с Python/C#/Java, затем 5.06 C++.

Вопрос. Haskell как первый язык — хорошая идея?

Ответ. Для большинства — нет. Haskell ценен после базы в любом императивном языке и курса дискретной математики. Исключение — академическая программа, где FP идёт с первого семестра.

Вопрос. Сколько языков нужно знать junior-разработчику?

Ответ. Один хорошо + SQL + базовый Git. "Знаю 5 языков по чуть-чуть" хуже, чем один язык с 2 проектами. Второй язык — после employment или чёткой цели.

Вопрос. Обязателен ли SQL отдельно от языка программирования?

Ответ. Да. Почти любой backend и аналитика требуют SQL. ORM (Hibernate, Prisma) не заменяют понимание запросов.

Вопрос. Node.js — это отдельный язык?

Ответ. Нет. Node.js — runtime для JavaScript вне браузера. Язык один — JS (часто TS). См. Node.js 262.

Вопрос. .NET и C# — это одно и то же?

Ответ. C# — язык. .NET — платформа (runtime, BCL, SDK). Пишут на C#, запускают на .NET. См. 5.04 .NET и 5.05 C#.

Вопрос. JVM — значит только Java?

Ответ. Нет. На JVM работают Kotlin, Scala, Groovy, Clojure. Java — самый массовый, но экосистема общая (Maven, часть библиотек).

Вопрос. Elixir и Erlang — нужен ли Erlang отдельно?

Ответ. Для прикладной разработки достаточно Elixir и Phoenix. Erlang — underlying BEAM; Elixir компилируется туда. 5.19 Elixir intro.

Вопрос. R или Python для аналитики?

Ответ. R — статистика, ggplot2, academia (5.23 R). Python — универсальнее (ETL + ML + веб). В industry чаще Python; в биостате — R.

Вопрос. Julia заменит Python в data science?

Ответ. В массовом найме — нет. Julia нишево силён в численных расчётах. Python остаётся default для ML и pipelines.

Вопрос. 1С — это программирование или конфигурация?

Ответ. И то, и другое. Платформа 1С:Предприятие с собственным языком и IDE. Сильный региональный рынок в СНГ (5.27 1С).

Вопрос. Bash или PowerShell на Windows?

Ответ. На Windows для админки — PowerShell (5.26). Bash через WSL/Git Bash — для Linux-паритета и CI. Оба полезны DevOps-инженеру.

Вопрос. Можно ли с ChatGPT выбрать язык за меня?

Ответ. ИИ поможет сравнить стеки, но не знает ваш регион, команду и мотивацию. Используйте деревья решений здесь + 10 локальных вакансий. Не копируйте сгенерированный код без запуска — вайб-кодинг.

Вопрос. Objective-C ещё нужен?

Ответ. Для новых Apple-проектов — Swift. Objective-C — сопровождение legacy и mixed codebases.

Вопрос. Perl, COBOL, Fortran — есть ли смысл учить?

Ответ. Только при конкретной работе или академическом интересе. 5.16 Legacy, Perl, COBOL.

Вопрос. NestJS или Express для Node backend?

Ответ. Express — минимализм, быстрый старт (263). NestJS — структура, DI, TypeScript, enterprise-стиль (269). После Node 262.

Вопрос. Django или FastAPI на Python?

Ответ. Django — full admin, ORM, batteries included (3011). FastAPI — async API, OpenAPI, микросервисы (3432). Для первого веб-проекта Django часто проще; для чистого API — FastAPI.

Вопрос. Spring Boot без Java core — можно?

Ответ. Технически можно скопировать tutorial, но на собеседовании и в отладке не хватит основ OOP, коллекций и исключений. Сначала Java intro, затем Spring 271.

Вопрос. Smalltalk и Clojure — зачем они в энциклопедии?

Ответ. Smalltalk — история ООП и live programming (5.08). Clojure — практичный Lisp на JVM (5.28). Не старт для новичка, но важны для широты кругозора.

Вопрос. Когда переходить от языка к фреймворку?

Ответ. После первого самостоятельного проекта без фреймворка (CLI или простой HTTP). Ориентир — 4–8 недель базы. См. шаг 3 алгоритма.

Вопрос. Язык из универа (Pascal) — выбросить и учить Python?

Ответ. Алгоритмическое мышление из Pascal переносится. Для карьеры добавьте прикладной язык из таблицы старта. Pascal полезен для понимания структур (Pascal intro).

Кейсы выбора языка — реальные сценарии

Ниже — восемь типичных ситуаций. Для каждой указаны контекст, выбранный язык, альтернативы и ссылка на маршрут в энциклопедии. Используйте кейсы как шаблон: сопоставьте свой возраст опыта, регион и цель с ближайшим сценарием.

Кейс 1 — студент без опыта, хочет в веб

Контекст. Второй курс, цель — стажировка frontend через 8–10 месяцев. Есть базовый HTML из курса вуза.

Выбор. JavaScript → TypeScript → React.

Почему не Python. Python силён в data, но для UI в браузере всё равно понадобится JavaScript. Параллельное обучение двух языков на старте замедлит прогресс.

Альтернативы. PHP + Laravel — если цель только backend CMS и регион с WordPress-хостингом.

Маршрут.

  1. 5.01 JavaScript intro
  2. HTML, CSS
  3. Node 262
  4. React intro
  5. Портфолио: todo-app, weather-app, pet-project с API

Ошибки в этом кейсе. Прыжок в React до понимания DOM; игнор Git; копирование компонентов без запуска локально.


Кейс 2 — аналитик Excel, переход в data

Контекст. 3 года в финансах, макросы VBA, цель — junior data analyst.

Выбор. Python + SQL.

Почему. pandas, Jupyter, интеграция с BI; SQL обязателен для любого backend данных.

Альтернативы. R — если команда уже на tidyverse и academia-статистика (5.23 R).

Маршрут.

  1. 5.02 Python intro
  2. SQL intro
  3. pandas, matplotlib; мини-проект ETL из CSV
  4. Опционально: FastAPI для простого API

Ошибки. Сразу PyTorch без pandas; пренебрежение типами данных и NULL в SQL.


Кейс 3 — системный администратор Windows

Контекст. AD, Azure, скрипты для пользователей, цель — DevOps / platform engineer.

Выбор. PowerShell + Python + Bash (WSL).

Почему. PowerShell — нативная автоматизация Windows (5.26); Python — Ansible, boto3, универсальные утилиты; Bash — CI и Linux-серверы.

Альтернативы. Только Bash — боль на Windows без WSL; только Go — дольше вход для скриптов.

Маршрут.

  1. PowerShell intro
  2. Python intro
  3. Bash intro
  4. Docker, Git, один pipeline в GitHub Actions

Кейс 4 — junior Java в аутсорсе

Контекст. Первое место работы, стек Spring + PostgreSQL, legacy monolith.

Выбор. Углублять Java, параллельно Kotlin для чтения Android-модулей.

Почему. Смена на Node "для моды" не ускорит карьеру в текущей команде.

Маршрут.

  1. Java intro
  2. Spring 271
  3. SQL
  4. Через 6–12 месяцев — Kotlin при задаче на Android

Кейс 5 — indie-разработчик игр

Контекст. Solo, 2D/3D, нужен быстрый прототип, нет команды C++.

Выбор. C# + Unity.

Почему. Визуальный редактор, Asset Store, один язык для gameplay (Unity курс).

Альтернативы. C++ + Unreal — когда есть опыт и цель AAA; Lua/Luau для Roblox.

Маршрут.

  1. C# intro
  2. Unity — movement, collision, UI
  3. Один законченный уровень в itch.io

Кейс 6 — стартап fullstack solo founder

Контекст. MVP SaaS за 3 месяца, один разработчик, нужны web + API + deploy.

Выбор. TypeScript + Next.js (или Nuxt) fullstack.

Почему. Один язык, богатая экосистема, быстрый CRUD, Vercel/Node hosting.

Альтернативы. Ruby on Rails — быстрее CRUD, меньше frontend-контроля; Django — если команда Python.

Маршрут.

  1. JavaScript intro
  2. TypeScript intro
  3. Node 262
  4. Next.js или fullstack 264

Кейс 7 — embedded и IoT после C в вузе

Контекст. Знает C, указатели, Makefile; цель — firmware + безопасность.

Выбор. C (продолжить) → Rust для новых модулей.

Почему. Legacy на C; Rust даёт memory safety без GC (5.13 Rust).

Альтернативы. C++ — если команда уже на STL/Boost; Zig — экспериментальный стек.

Маршрут.

  1. C intro
  2. Rust intro
  3. WASM 619 для симуляторов в браузере

Кейс 8 — 1С-франчайзи в регионе СНГ

Контекст. Бухгалтерия, внедрение ERP, клиенты на 1С:Предприятие.

Выбор. Платформа 1С как основной язык (5.27 1С).

Почему. Региональный рынок, сертификация 1С, типовые конфигурации.

Дополнительно. SQL, базовый Python для интеграций и ETL.

Ошибки. Игнорировать SQL; учить Java "на всякий случай" вместо углубления в 1С.


Подготовка к собеседованию по выбору стека

Собеседование редко спрашивает "какой язык лучше". Чаще проверяют понимание trade-offs и опыт на одном языке. Ниже — типичные темы и как отвечать, опираясь на материал этой статьи.

Вопросы про первый язык

Вопрос интервьюераСильный ответСлабый ответ
Почему вы выбрали Python?Связал с целью data/ETL, показал проект pandas"Потому что первый в TIOBE"
JavaScript или TypeScript?JS для основ, TS для масштаба команды и типов"TS потому что модно"
Сколько языков знаете?Один глубоко + SQL + Git; второй в процессеПеречисление 7 языков без проектов

Вопросы про trade-offs backend

ТемаЧто показатьМатериал
Монолит на JavaSpring, транзакции, найм5.03 Java
Микросервис GoОдин бинарник, goroutines5.10 Go
Realtime ElixirBEAM, fault tolerance5.19 Elixir
CRUD стартапRails/Laravel/Django скоростьСоответствующий раздел 5

System design и язык

На system design язык вторичен, но спрашивают:

  • Почему не переписали monolith на Rust? — стоимость команды, time-to-market, риски.
  • Когда WASM? — hot path CPU-bound в браузере (619).
  • Polyglot microservices — Go для gateway, Python для ML-сервиса — осознанное разделение.

Портфолио под язык

ЯзыкМинимум для juniorБонус
JavaScript/TS2 frontend или 1 fullstackТесты, CI, README с архитектурой
PythonCLI + API или Jupyter EDADocker, pytest coverage
JavaSpring CRUD + SQLOpenAPI, integration tests
C#ASP.NET API или Unity demoSwagger, unit tests
GoREST + Dockergrpc, benchmarks
KotlinAndroid app 3 экранаJetpack Compose, MVVM

Красные флаги на собеседовании

  • Не можете объяснить, почему выбрали язык проекта в резюме.
  • Путаете runtime и язык (Node vs JavaScript).
  • Нет ни одного запущенного репозитория.
  • Утверждаете, что "PHP мёртв" или "JavaScript заменит backend" без контекста задачи.

Матрицы сравнения языков

Кривая обучения (субъективно, 1 — легко, 5 — сложно)

ЯзыкСинтаксисЭкосистемаToolingОтладкаИтого
Python1222Низкий порог
JavaScript2323Средний (async)
C#2312Низкий–средний
Java3332Средний
Go2222Средний
Rust4334Высокий
C++5445Очень высокий
Haskell5434Очень высокий
Elixir3333Средний–высокий

Типизация и парадигмы

ЯзыкТипизацияПарадигмаGCКомпиляция
PythonДинамическаяМультиДаИнтерпретатор + байт-код
JavaScriptДинамическаяМультиДаJIT в браузере/Node
TypeScriptСтатическая (structural)МультиДаTranspile → JS
JavaСтатическаяООП + FP libsДа (JVM)JVM байт-код
C#СтатическаяООП + FPДа (.NET)IL → JIT/AOT
GoСтатическаяИмперативнаяДаAOT бинарник
RustСтатическаяИмперативная + FPНетAOT
C++СтатическаяМультиНет (manual)AOT
ElixirДинамическаяФункциональнаяДа (BEAM)BEAM байт-код
HaskellСтатическаяЧистый FPДаGHC native

Экосистема и реестры пакетов

ЯзыкМенеджер пакетовРеестрLock-файлСтатья
JavaScriptnpm / pnpmnpmjs.compackage-lock.json621
Pythonpip / uv / poetryPyPIuv.lock / poetry.lock621
Rustcargocrates.ioCargo.lock621
Gogo modproxy.golang.orggo.sum621
JavaMaven / GradleMaven Centralgradle.lockfile621
C#NuGetnuget.orgpackages.lock.json621
PHPcomposerpackagist.orgcomposer.lock621
Rubybundlerrubygems.orgGemfile.lock621

Менеджеры версий runtime (Node, Python) — отдельно: 620.

Backend — сравнение по задачам

ЗадачаPythonNode/TSJavaGoPHPElixir
Быстрый REST MVPFastAPI ★★★Express ★★★Spring ★★Gin ★★★Laravel ★★★Phoenix ★★
Enterprise интеграции★★★★★★★★★★★★★
CPU-bound на одном сервере★★★★★★★
WebSocket / realtime★★★★★★★★★★★★★
ML рядом с API★★★★★★★
Найм junior (глобально)★★★★★★★★★★★★★

Оценки относительные; проверяйте регион через вакансии.

Mobile — сравнение подходов

ПодходЯзыкПлюсыМинусы
Native AndroidKotlinJetpack, Google supportТолько Android
Native iOSSwiftSwiftUI, Apple APIsТолько Apple
Cross-platformDart/FlutterОдин UI-кодPlatform channels
Cross-platformJS/React NativeWeb-навыкиBridge performance
LegacyJava / Obj-CСтарый кодНовые фичи медленнее

Data и ML

ЯзыкETLML trainingВизуализацияProduction API
Python★★★★★★★★★FastAPI ★★★
R★★★★★★★
Julia★★★★★★★★
ScalaSpark ★★★★★★★
SQL★★★★★

Ресурсы для обучения по языкам

Официальная документация и курсы — дополнение к разделу 5, а не замена. Сначала intro и первая программа в энциклопедии, затем внешние материалы.

Python

РесурсТипСсылка
Официальный tutorialДокументацияdocs.python.org/tutorial
Real PythonСтатьиrealpython.com
ЭнциклопедияБаза5.02 Python intro
FastAPI docsФреймворкfastapi.tiangolo.com

JavaScript и TypeScript

РесурсТипСсылка
MDN JavaScriptСправочникdeveloper.mozilla.org/JavaScript
Node.js docsRuntimenodejs.org/docs
TypeScript handbookЯзыкtypescriptlang.org/docs
React docsUIreact.dev
ЭнциклопедияБаза5.01 JS intro

Java и Kotlin

РесурсТипСсылка
Oracle Java TutorialsЯзыкdocs.oracle.com/javase/tutorial
Spring GuidesBackendspring.io/guides
Kotlin docsЯзыкkotlinlang.org/docs
Android DevelopersMobiledeveloper.android.com
ЭнциклопедияБаза5.03 Java

C# и .NET

РесурсТипСсылка
Microsoft Learn C#Языкlearn.microsoft.com/dotnet/csharp
ASP.NET CoreWeblearn.microsoft.com/aspnet/core
Unity LearnGamedevlearn.unity.com
ЭнциклопедияБаза5.05 C#

Go, Rust, системные

РесурсТипСсылка
Go TourИнтерактивgo.dev/tour
The Rust BookЯзыкdoc.rust-lang.org/book
Rust by ExampleПримерыdoc.rust-lang.org/rust-by-example
Энциклопедия GoБаза5.10 Go intro
Энциклопедия RustБаза5.13 Rust intro

Функциональные и нишевые

ЯзыкРесурсСсылка
ElixirHexdocs Getting Startedhexdocs.pm/elixir
HaskellLearn You a Haskelllearnyouahaskell.com
ScalaScala Docsdocs.scala-lang.org
RR for Data Sciencer4ds.hadley.nz
PHPLaravel Docslaravel.com/docs
RubyRails Guidesguides.rubyonrails.org

Общие навыки (для любого языка)

ТемаМатериал
Git4.13 Git intro
SQL3.07 SQL intro
HTTP и сеть2.03 Сеть
Терминал2.05 Терминал
Менеджеры версий620
Пакетные менеджеры621
Карьера1.26 Карьера в IT
Советы новичку1.12

FAQ — расширенный блок (второй проход)

Вопрос. Стоит ли учить два языка параллельно на курсах?

Ответ. На интенсиве иногда дают JS + SQL — это нормально. Два полноценных языка программирования параллельно на первом месяце — нет. SQL и Git не считаются вторым языком.

Вопрос. Как язык связан с зарплатой?

Ответ. Сильнее влияют уровень, регион, домен (финтех, gamedev) и продуктовые навыки. Язык — фильтр вакансий, не формула зарплаты. Смотрите объём вакансий, а не один пост о "самом доходном языке".

Вопрос. Low-code заменит программистов?

Ответ. Low-code закрывает простые CRUD и прототипы. Сложная логика, интеграции, performance и безопасность остаются за кодом. Выбор языка для карьеры low-code не отменяет.

Вопрос. WebAssembly — отдельный язык?

Ответ. Нет. WASM — формат байт-кода. Пишут на Rust, C++, AssemblyScript и компилируют. См. 619 WASM.

Вопрос. Как выбрать между Vue и React?

Ответ. Оба на JavaScript/TS. React — больше вакансий глобально. Vue — проще вход, силён в Азии и части EU. Выберите один, не оба на старте. React, Vue.

Вопрос. Нужен ли Assembly для карьеры?

Ответ. Для большинства ролей — нет. Полезен для reverse engineering, понимания CPU и оптимизации после C/C++.

Вопрос. Zig или Rust для системного кода?

Ответ. Rust — зрелая экосистема, найм, WASM. Zig — альтернатива C, меньше рынок (5.20 Zig). Для карьеры чаще Rust; Zig — осознанная ниша.

Вопрос. Можно ли сменить язык через 2 года карьеры?

Ответ. Да. Паттерны, Git, SQL, HTTP переносятся. Планируйте 3–6 месяцев на productivity в новом стеке и pet-project в резюме.

Вопрос. Groovy обязателен для DevOps?

Ответ. Для Jenkins Pipeline и Gradle — часто достаточно читать и править Groovy (5.12). Писать с нуля — реже, чем Python/Bash.

Вопрос. Lua только для игр?

Ответ. Нет. Redis scripting, nginx, embedded конфиги, Roblox Luau (5.15). Лёгкий язык для встраивания.

Вопрос. Как проверить, что язык "мой"?

Ответ. Через 4–6 недель: вы довели мини-проект, ошибки компилятора понятны, есть желание добавить фичу — не бросить. Если только frustration — попробуйте другой из таблицы старта, но не третий параллельно.

Вопрос. Nim и Crystal — стоит ли смотреть?

Ответ. Nim — compiled utilities, маленький рынок. Crystal — Ruby-like syntax, ниша. Для первого языка — нет.

Вопрос. Как язык связан с open source?

Ответ. JavaScript, Python, Rust, Go — огромные OSS-экосистемы. Участие в issues/PR ускоряет обучение и резюме. Выберите язык с активным GitHub-сообществом под вашу цель.

Вопрос. F# или C# на .NET?

Ответ. C# — массовый найм и Unity. F# — FP на .NET, ниша. Новичку на .NET — C# (5.05).

Вопрос. Что учить после SQL?

Ответ. ORM вашего стека (SQLAlchemy, Hibernate, Prisma) — но только после ручных JOIN. Затем индексы, транзакции, миграции.


Региональные особенности рынка (ориентиры)

Рынок меняется; всегда проверяйте 15–20 актуальных вакансий. Таблица — типичные паттерны, не закон.

Регион / контекстЧастые языкиРедкие, но востребованные
Глобальный remoteJS/TS, Python, GoRust, Elixir
EU enterpriseJava, C#, PythonScala, Kotlin
US startupsJS/TS, Python, GoRuby (ниша)
СНГ аутсорсJava, C#, JS, Python1С, PHP
СНГ продуктPython, Go, JS, PHP
Mobile studiosKotlin, Swift, Dart
GamedevC#, C++Lua, Rust (indie)
Data / ML hubsPython, R, SQLJulia, Scala

Чек-лист смены направления (смена языка)

Если через год решили сменить стек (например, PHP → Go):

  1. Запишите причину одним предложением (performance, найм, интерес).
  2. Оставьте текущий язык на поддержке проектов — не "забывайте" резко.
  3. Выделите 5–10 часов в неделю на новый язык 6 месяцев.
  4. Один pet-project на новом стеке в портфолио.
  5. Обновите резюме: честно указать уровень (junior в Go при senior PHP — нормально).
  6. На собеседовании объясните transferable skills: HTTP, SQL, CI, code review.

Словарь для обсуждения стека с командой

ТерминКак использовать в разговоре
Runtime"Наш runtime — Node 22 LTS, не путать с Deno"
Framework"Backend на Spring, не меняем язык — меняем модуль"
Polyglot"Polyglot repo: Python ML + Go API — осознанно"
Legacy"Legacy на PHP 7 — новый сервис на Laravel 11"
Greenfield"Greenfield — можем выбрать Go, если команда готова"
LTS"Берём Node LTS, не latest, для стабильности CI"
Lock file"Коммитим package-lock — без споров в CI"


Сводная таблица всех языков раздела 5

Язык / платформаРазделУровень входаТипичная роль
5.01JavaScriptintroНизкийFrontend, Node backend
TypeScriptintroПосле JSTyped web, NestJS
5.02PythonintroНизкийData, ML, scripts, API
5.03JavaintroСреднийEnterprise, Android legacy
5.04Платформа .NETintroСреднийRuntime для C#/F#
5.05C#introНизкий–средний.NET, Unity
5.06C++introВысокийGames, systems, embedded
5.07PHPintroНизкий–среднийWeb, CMS, Laravel
5.08SmalltalkintroСпециализированныйEducation, history
5.09KotlinintroСреднийAndroid, KMP
5.10GointroСреднийMicroservices, DevOps
5.11RubyintroНизкий–среднийRails, scripting
5.12GroovyintroПосле JavaGradle, Jenkins
5.13RustintroВысокийSystems, WASM
5.14SwiftintroСреднийApple platforms
5.15Lua / LuauintroНизкийGames, embedding
5.16Legacy (C, Asm, …)introРазныйMaintenance, education
5.17HaskellintroВысокийFP, research
5.18ScalaintroВысокийSpark, Play, JVM FP
5.19ElixirintroСредний–высокийRealtime, Phoenix
5.20ZigintroВысокийSystems, C alternative
5.21NimintroСредний–высокийCompiled utilities
5.22DartintroСреднийFlutter
5.23RintroСредний (аналитика)Statistics
5.24JuliaintroСредний (численные)Scientific computing
5.25BashintroНизкий (админы)Linux shell
5.26PowerShellintroНизкий (Windows)Windows admin
5.27introСпециализированныйERP СНГ
5.28ClojureintroВысокийJVM Lisp
5.29PerlintroСреднийLegacy scripting
5.30Objective-CintroСреднийLegacy Apple

Подразделы legacy 5.16

ЯзыкРаздел
Cc-language intro
Assemblerassembler intro
PascalPascal intro
FortranFortran intro
COBOLCobol intro
LispLisp intro
Visual Basicvisual-basic intro

Ключевые статьи по фреймворкам

ФреймворкЯзыкСтатья
Node.jsJavaScript262
ExpressJavaScript263
NestJSTypeScript269
ReactJavaScriptReact intro
DjangoPython3011
FastAPIPython3432
SpringJava271
LaravelPHP1431
RailsRuby21
PhoenixElixir104
PlayScala211
SparkScala213

Навигация по разделу 5


Расширенный FAQ — 30 вопросов новичка

Выбор первого языка

Python или JavaScript для абсолютного нуля? JavaScript даёт мгновенный результат в браузере без установки (DevTools). Python проще читать и лучше для данных. Оба — отличный старт; выберите по ближайшему проекту.

C# хорош для первого языка? Да, особенно если цель — игры (Unity) или Windows/.NET. Строгая типизация дисциплинирует с первого дня.

Стоит ли начинать с TypeScript? После базового JavaScript. Синтаксис TS = JS + типы; без понимания JS замыкания и async в TS будут непонятны.

Java "слишком много boilerplate" — это правда? Современный Java (records, var, pattern matching) короче классического enterprise-кода. Для Android и Spring Java по-прежнему стандарт.

Go как первый язык? Возможен, но экосистема веба и учебных материалов для новичков уже, чем у Python/JS. Go логичен, если цель — backend-микросервисы и вы готовы к минималистичному языку.

Карьера и рынок

Какой язык "больше платят"? Зарплата зависит от роли, региона и опыта, не от синтаксиса. Java/Kotlin (Android), Go (infra), Python (ML) и TypeScript (fullstack) стабильно востребованы. Смотрите вакансии локально.

Нужно ли знать English? Для документации, Stack Overflow и части вакансий — да, хотя бы чтение. Код и API почти всегда на английском.

Low-code заменит программистов? Low-code закрывает простые CRUD; сложная логика, интеграции и performance по-прежнему требуют кода. См. карьера в IT.

Второй и третий язык

Когда учить второй язык? После одного завершённого проекта на первом — CRUD, CLI или мобильный экран с деплоем.

Какой второй язык после Python? Для веб — JavaScript. Для performance — Go или Rust. Для JVM-команды — Java или Kotlin.

Сколько языков нужно знать? 1–2 глубоко лучше, чем 5 поверхностно. Работодатели смотрят на проекты и стек команды.

Технические мифы

"Компилируемые быстрее — значит лучше"? Для CLI-утилиты — да. Для веб-CRUD узкое место — БД и сеть, не язык.

"Функциональные языки — только для академиков"? Elixir и Scala активно в production (WhatsApp, Twitter history, финтех). Haskell — ниша, но ценен для моделирования.

"PHP мёртв"? WordPress, Laravel и Symfony держат огромную долю веба. PHP — о разделе.

"Ruby умер после Rails hype"? Rails жив в продуктовых командах; Hotwire обновил стек.

Инструменты

IDE или блокнот? VS Code / JetBrains для серьёзной работы. Блокнот — только на первых 50 строках.

Нужен ли Linux? Для серверной разработки — желательно WSL2 или Linux VM. Для Unity/Swift/iOS — macOS. Windows + WSL покрывает большинство сценариев.

Git обязателен с первого дня? Да. Основы Git — параллельно с первым языком.


Кейсы выбора — 12 сценариев

Сценарий 1 — "Хочу сайт-визитку"

ШагДействие
ЯзыкHTML/CSS + минимальный JS
ФреймворкНе нужен или Astro
Время2–4 недели

Сценарий 2 — "Хочу SaaS с подписками"

ШагДействие
FrontendTypeScript + React
BackendPython FastAPI или Node NestJS
БДPostgreSQL + SQL

Сценарий 3 — "Хочу в Android-стudio"

ШагДействие
ЯзыкKotlin
АльтернативаFlutter + Dart для iOS одновременно

Сценарий 4 — "Хочу iOS-приложение"

ШагДействие
ЯзыкSwift + SwiftUI
ПубликацияTestFlight и App Store

Сценарий 5 — "Data Science"

ШагДействие
ЯзыкPython
ДополнительноSQL, Jupyter
СтатистикаR + tidyverse

Сценарий 6 — "Игры AAA"

ШагДействие
ДвижокUnity (C#) или Unreal (C++)
ЯзыкC# для старта проще

Сценарий 7 — "DevOps / SRE"

ШагДействие
СкриптыBash, Python
СервисыGo
Автоматизация WindowsPowerShell

Сценарий 8 — "1С-программист в регионе"

ШагДействие
Язык
ДополнительноSQL, базовый Python для интеграций

Сценарий 9 — "Realtime чат 100k пользователей"

ШагДействие
BackendElixir + Phoenix
АльтернативаNode + Redis, Go + websockets

Сценарий 10 — "Big Data инженер"

ШагДействие
ЯзыкScala + Spark
БазаPython для ETL, SQL

Сценарий 11 — "Embedded / IoT"

ШагДействие
ЯзыкC → C++ или Rust
ПлатформаЗависит от чипа

Сценарий 12 — "CMS для клиента за неделю"

ШагДействие
СтекWordPress или Laravel
ЯзыкPHP

Матрица "задача → язык → статья"

ЗадачаЯзыкПервая статья
REST API типизированныйTypeScriptNestJS
ORM в NodeTypeScriptPrisma
Лёгкий frontendJavaScriptSvelte
Документационный сайтJavaScriptAstro
Сборка frontendJavaScriptVite
Python depsPythonPoetry/uv
ML pipelinePythonPython для ML
Java microserviceJavaQuarkus, Micronaut
Java DTOJavaRecords
Symfony appPHPSymfony
Rails modern UIRubyHotwire
Rails testsRubyRSpec
Flutter stateDartProvider/Riverpod
Haskell effectsHaskellМонады
Haskell buildHaskellCabal/Stack
JVM web ScalaScalaPlay
ActorsScalaAkka
WASM в браузереRust/C++WebAssembly
Несколько Node на ПКлюбойМенеджеры версий
npm/pip/cargoлюбойПакетные менеджеры

Таймлайны обучения — детализация по неделям

JavaScript — 12 недель до junior pet-project

НеделяТемаМатериал
1Синтаксис, DevToolsJS intro
2DOM, событияпрактика в браузере
3async/await, fetch
4Node.js, npm262
5Express REST263
6TypeScript базаTS intro
7–8React или Vueecosystem
9Тесты, lint
10–12Pet-project CRUD + deploy

Python — 12 недель

НеделяТемаМатериал
1–2Синтаксис, venv16
3Файлы, JSON
4requests, API
5–6FastAPI или Django3432
7SQL + ORM
8pytest
9–12Pet-project + Docker
Таймлайн не догма

12 недель при 10–15 часах в неделю. При 5 часах умножайте сроки на 2. Главное — регулярность, не скорость.


Что дальше

Чек-лист перед углублением:

  • Цель на 6–12 месяцев записана одним предложением
  • Просмотрено 10+ вакансий в регионе
  • Выбран один язык из таблицы старта
  • Открыт intro языка и первая программа
  • Настроены редактор, runtime, менеджер пакетов
  • Запланирован мини-проект на 2–4 недели

Один язык, один завершённый маршрут, один работающий проект — лучшая инвестиция времени на старте. Вернитесь к этой статье, когда будете выбирать фреймворк, второй язык или менять направление — деревья решений и FAQ обновляются вместе с разделом 5.


Дополнительные ресурсы по экосистемам

JavaScript и TypeScript

Python

JVM и functional

Инфраструктура разработчика


Содержание