Программирование и IT

Как изучить Java с нуля

Java — строго типизированный язык, на котором написаны банковские системы, серверы крупных сервисов и Android-приложения. Строгость поначалу замедляет, зато компилятор ловит многие ошибки до запуска. Этот план рассчитан примерно на полгода занятий по часу в день и ведёт от первой программы до небольшого серверного приложения.

Обновлено
В этой статье

Что установить#

Нужен JDK — набор для разработки, в который входят компилятор javac и
среда выполнения. Бери актуальную LTS-версию: сборки OpenJDK
распространяются бесплатно (например, Eclipse Temurin). Среда разработки —
IntelliJ IDEA Community Edition: она бесплатна и подсказывает ошибки прямо
в редакторе.

Первую программу стоит один раз собрать вручную, без IDE, чтобы увидеть,
что происходит:

public class Hello {
    public static void main(String[] args) {
        System.out.println("Привет, Java");
    }
}

Команда javac Hello.java превращает исходник в байт-код Hello.class, а
java Hello запускает его. В новых версиях JDK однофайловую программу можно
запустить сразу: java Hello.java.

Первые шесть недель: язык без объектов#

Примитивные типы (int, long, double, boolean, char) и их отличие
от ссылочных, строки и их неизменяемость, операторы, if, switch,
циклы, массивы, статические методы. Обрати внимание на целочисленное
деление и переполнение: 7 / 2 в Java даёт 3, а сумма двух больших int
может стать отрицательной. Задачи этого этапа — перевод систем счисления,
поиск простых чисел, работа с массивом оценок.

Недели 7–12: объектно-ориентированное программирование#

Классы и объекты, поля и конструкторы, инкапсуляция, наследование,
интерфейсы и абстрактные классы, полиморфизм. Разбери методы equals,
hashCode и toString — на них спотыкаются многие. Для закрепления
смоделируй предметную область: библиотека с книгами, читателями и
выдачами или банковские счета с переводами и историей операций.
Исключения изучи здесь же: проверяемые и непроверяемые, собственные
классы исключений.

Недели 13–18: стандартная библиотека и инструменты#

  • Коллекции: ArrayList, HashMap, HashSet, LinkedList, когда какую
    брать и какова сложность операций.
  • Обобщения (generics), лямбды и Stream API.
  • Сборка проекта через Maven или Gradle: зависимости, структура каталогов
    src/main/java и src/test/java.
  • Модульные тесты на JUnit 5.
  • Git: ветка на каждую задачу, осмысленные коммиты.

Недели 19–26: к серверной разработке#

Работа с базой через JDBC, затем знакомство со Spring Boot — фреймворком,
на котором пишется большая часть серверного кода на Java. Итоговый проект —
REST-сервис, например, список задач или учёт книг: несколько эндпоинтов,
хранение в PostgreSQL, тесты, README с инструкцией запуска.

Проекты, которые стоит показать#

  • консольная игра «крестики-нолики» с проверкой победы и тестами;
  • парсер CSV с подсчётом статистики и отчётом в файл;
  • банковские счета с переводами и защитой от ухода в минус;
  • REST-сервис на Spring Boot с базой данных.

Как проверять себя#

Прогоняй тесты перед каждым коммитом и держи их зелёными. Включи
статический анализ в IDE и разбирай каждое предупреждение, а не
отключай его. Решай задачи на площадках с автопроверкой, выбирая
решение на Java. Раз в две недели перечитывай свой старый код и
переписывай то, что теперь сделал бы иначе, — это лучший показатель
роста. Если есть возможность, выложи проект на код-ревью в сообщество
Java-разработчиков.

План по этапам

  1. Неделя 1 — JDK и IDEУстановить JDK LTS и IntelliJ IDEA, собрать первую программу вручную через javac.
  2. Недели 2–6 — основы языкаТипы, операторы, условия, циклы, массивы, статические методы.
  3. Недели 7–12 — ООПКлассы, наследование, интерфейсы, equals и hashCode, исключения.
  4. Недели 13–18 — библиотека и инструментыКоллекции, generics, Stream API, Maven или Gradle, JUnit 5, Git.
  5. Недели 19–26 — серверный проектJDBC, Spring Boot, REST-сервис с базой и тестами.

Начать изучать эту тему у себя

План ляжет в твой репозиторий: отмечай этапы, веди конспект — история изменений покажет, как ты продвинулся.

Начать план

Проверь себя

1.Что выведет код на Java: System.out.println(7 / 2);

2.Что выведет код на Java: System.out.println("a" + 1 + 2);

3.Чему равно значение выражения 10 % 3 в Java?

Источники

  • dev.java — LearnОфициальные учебные материалы по Java от Oracle
    бесплатно
  • The Java TutorialsКлассический учебник Oracle по основам языка
    бесплатно
  • JUnitРуководство по модульным тестам на Java
    бесплатно

Было полезно?

Ещё темы

Программирование и IT Как изучить Python с нуля Python хорош для первого знакомства с программированием: код читается почти как текст, а стандартная библиотека закрывает большинство бытовых задач. Этот план ведёт от установки интерпретатора до собственных скриптов, покрытых тестами, — примерно за четыре месяца при занятиях около часа в день. Программирование и IT Как изучить SQL с нуля SQL — язык запросов к реляционным базам данных. Он нужен разработчикам, аналитикам, тестировщикам и менеджерам, которые хотят сами доставать цифры. Базовые запросы осваиваются за несколько недель, уверенная работа со сложными отчётами — за два-три месяца практики. Ниже — порядок тем и способы тренироваться на настоящей базе. Программирование и IT Как изучить Linux с нуля Linux работает на большинстве серверов, в контейнерах и на множестве устройств, поэтому командная строка нужна разработчику, тестировщику, аналитику и системному администратору. Осваивать систему удобнее всего не чтением списков команд, а ежедневной работой в терминале и решением небольших практических задач. Ниже — последовательность тем на два-три месяца. Программирование и IT Как изучить JavaScript с нуля JavaScript — язык, который исполняется в каждом браузере, а через Node.js ещё и на сервере. У него низкий порог входа — код можно запустить прямо в консоли браузера, — но много неочевидных мест, от приведения типов до асинхронности. План ниже рассчитан на три-четыре месяца и предполагает, что ты уже знаешь основы HTML и CSS или изучаешь их параллельно. Программирование и IT Как изучить HTML и CSS с нуля HTML описывает, из чего состоит страница, CSS — как она выглядит. Это не языки программирования в строгом смысле, но без них не обходится ни один сайт, и с них удобно начинать путь во фронтенд. Базу вёрстки можно освоить за два-три месяца, если с первой недели собирать настоящие страницы, а не только читать справочник. Программирование и IT Как научиться программировать с нуля Научиться программировать самостоятельно можно без технического образования, если с первой недели писать код руками, а не только смотреть уроки. Ниже — как выбрать первый язык, что установить, в каком порядке идти по темам и как понять, что ты действительно продвинулся.

Ещё сценарии