Что будет в курсе
Зачем смотреть на карту
Представьте поход. Можно просто пойти в лес и брести, куда глаза глядят. А можно сначала глянуть на карту: где старт, где финиш, какие ориентиры между ними, сколько брать с собой еды и воды. Второй вариант обычно заканчивается лучше. Мы тоже будем двигаться по конкретному плану. Этот урок — короткий план курса: какие вопросы вы научитесь решать и что будете уметь к концу нашего похода.
Курс — это набор практических вопросов
Переменные, циклы, классы — сами по себе это просто слова. Они начинают что-то значить, только когда привязаны к реальной задаче. Поэтому дальше мы идём не от названий тем, а от вопросов: вот что вам нужно уметь делать в коде — и вот какие инструменты для этого понадобятся.
Как заставить программу что-то запомнить? Чтобы посчитать сумму, программа должна где-то хранить слагаемые. Чтобы проверить пароль — помнить введённое значение. Для этого есть переменные и типы данных: контейнеры, в которые кладётся информация на время работы программы.
Как заставить программу принимать решения?
«Если возраст ≥ 18 — пустить, иначе отказать». «Если пароль верный — войти, иначе показать ошибку». Это условия
if/else и switch — они превращают программу из линейной инструкции в развилку, где ход зависит от данных.
Как повторять действие много раз?
Вывести таблицу умножения, перебрать 100 чисел, спросить у каждого студента оценку. Отправить всем письмо.
Делать это вручную строчка за строчкой — безумие. Циклы for и while берут одно действие и повторяют его столько,
сколько вы скажете.
Как не утонуть в коде, когда его становится много? Сначала программа влезает в 20 строк. Потом в 200. Потом в 2000 — и без структуры превращается в спагетти, которое невозможно поддерживать и развивать. Здесь появляются методы (блоки логики) и объектно-ориентированное программирование: классы и объекты, способ разложить большой код по полочкам, чтобы он оставался понятным. Это самый идейно сложный кусок курса — и самый важный для понимания Java, т.к она объектно-ориентированная от рождения.
Как работать с тысячей объектов одновременно?
Пока у вас три задачи — их можно держать в переменных task1, task2, task3. Когда их тысяча и число заранее
неизвестно — так не выйдет. Тут вступают коллекции (List, Set, Map) и обобщения (generics): контейнеры, которые
умеют расти, искать и сортировать. Это как подъезд, в котором много квартир.
Как программе общаться с внешним миром? До этого момента данные жили только в памяти: закрыли программу — всё пропало. Реальные программы так не живут. Они читают и записывают данные в файлы (чтобы данные переживали перезапуск), отвечают на запросы по сети (чтобы к ним можно было обратиться из браузера или приложения) и работают в несколько потоков (чтобы выдерживать нагрузку, когда к ним обращаются одновременно несколько человек).
Вопросы выше — фундамент, на котором всё держится. Но курс на этом не заканчивается. Дальше начинается то, чем занимаются backend-разработчики в реальных компаниях.
Как хранить данные, чтобы их не потерять? Память и файлы — ненадёжно: данные нужны структурированные, связанные между собой, защищённые от сбоев. Ответ — базы данных. Вы познакомитесь с реляционной СУБД PostgreSQL, научитесь писать SQL-запросы и проектировать таблицы: как связаны «пользователь», «заказ», «товар», чтобы данные не дублировались и не терялись.
Как сделать из кода веб-сервис, к которому обращаются другие программы? Ответ — фреймворк Spring Boot. Это индустриальный стандарт для бэкенда на Java: банки, маркетплейсы, корпоративные системы работают именно на нём. Вы научитесь строить REST API — интерфейс, через который ваше приложение общается с браузером, мобильным приложением и другими сервисами.
Как сделать систему надёжной и готовой к нагрузке? Реальный сервис не может «лечь» от наплыва пользователей или потери одной детали. Вы разберётесь, как делают микросервисы (когда система разбивается на независимые части), как сервисы обмениваются сообщениями через Kafka, как обеспечивают надёжность (повторные попытки, ограничение нагрузки, мониторинг) и как всё это автоматически проверяется и разворачивается через CI/CD.
Что у вас будет к концу
Всё перечисленное выше — не отдельные темы, а звенья одной цепи. К концу курса эти звенья замкнутся в одно умение: брать задачу и превращать её в работающий веб-сервис — от пустого файла до приложения с базой данных, REST API и надёжностью уровня продакшена.
Это конкретная вещь, которую можно показать работодателю: «Вот, я это сделал».
Как устроен каждый урок
Каждый урок — это не только теория. К нему прилагается практика (домашние задания, чтобы закрепить знания) и тесты для простого запоминания. Иногда встречаются и более крупные проекты — задачи на весь модуль, где всё изученное собирается воедино.
Подробнее о том, как именно учиться по этому курсу и как устроен учебный портал, — в следующем модуле.
Что такое программирование
8 мин
Чем занимается программист на работе
6 мин
Как устроен процесс разработки
8 мин
Зачем учиться программированию
9 мин
Почему Java?
6 мин
Что будет в курсе
6 мин