Junior Java Developer

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

Git

Git — это система контроля версий, которая используется практически в каждом проекте разработки. Без знания Git невозможно эффективно работать в команде и управлять кодом.

После освоения ты получишь навыки:

  • Работа с репозиториями и историей изменений
  • Создание и слияние веток
  • Работа с удаленными репозиториями (GitHub, GitLab)
  • Разрешение конфликтов и откат изменений

Git

Система контроля версий. Научись работать с репозиториями, ветками, коммитами и удаленными серверами.

# Инициализация репозитория
git init

# Добавление файлов в индекс
git add .

# Создание коммита
git commit -m "Добавлена новая функция"

# Создание и переключение на ветку
git checkout -b feature/new-feature

# Слияние веток
git merge feature/new-feature

# Отправка на удаленный репозиторий
git push origin main

Для чего это нужно:

Git — обязательный инструмент для любого разработчика. Без него невозможно работать в команде, отслеживать изменения в коде и управлять версиями проекта. Знание Git требуется на 100% вакансий разработчика.

После освоения сможешь:

  • Создавать и управлять репозиториями
  • Работать с ветками и слиянием изменений
  • Синхронизировать код с удаленными репозиториями
  • Разрешать конфликты при совместной работе
  • Откатывать изменения и восстанавливать код

Java

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

После освоения ты получишь навыки:

  • Понимание основ программирования и синтаксиса Java
  • Работа с коллекциями и структурами данных
  • Объектно-ориентированное программирование
  • Подготовка к изучению фреймворков (Spring, Hibernate)

Java Core

Основы языка Java: переменные, типы данных, операторы, условия, циклы, методы и основы ООП.

class Main {
  public static void main(String[] args) {
    // Переменные и типы
    String name = "Анна";
    int age = 25;
    
    // Условия
    if (age >= 18) {
      System.out.println(name + " - совершеннолетний");
    } else {
      System.out.println(name + " - несовершеннолетний");
    }
    
    // Циклы
    for (int i = 1; i <= 5; i++) {
      System.out.println("Итерация: " + i);
    }
    
    // Вызов метода
    greet(name);
  }
  
  static void greet(String name) {
    System.out.println("Привет, " + name + "!");
  }
}

Для чего это нужно:

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

После освоения сможешь:

  • Писать простые программы на Java
  • Работать с переменными и типами данных
  • Использовать условия и циклы для логики программы
  • Создавать и вызывать методы
  • Понимать основы объектно-ориентированного подхода

Java Collections

Коллекции в Java: List, Set, Map. Изучи структуры данных и научись эффективно работать с ними.

import java.util.*;

class CollectionsExample {
  public static void main(String[] args) {
    // List - упорядоченный список
    List<String> names = new ArrayList<>();
    names.add("Анна");
    names.add("Иван");
    names.add("Мария");
    
    // Set - уникальные элементы
    Set<Integer> numbers = new HashSet<>();
    numbers.add(1);
    numbers.add(2);
    numbers.add(1); // дубликат не добавится
    
    // Map - пары ключ-значение
    Map<String, Integer> ages = new HashMap<>();
    ages.put("Анна", 25);
    ages.put("Иван", 30);
    
    // Итерация по коллекциям
    for (String name : names) {
      System.out.println(name);
    }
  }
}

Для чего это нужно:

Коллекции используются в 99% Java-приложений. Без понимания List, Set и Map невозможно эффективно работать с данными. Это критически важный навык для решения реальных задач в разработке.

После освоения сможешь:

  • Хранить и обрабатывать списки данных (List)
  • Работать с уникальными наборами данных (Set)
  • Создавать пары ключ-значение (Map)
  • Выбирать правильную коллекцию для задачи
  • Эффективно итерироваться по данным

Java OOP

Объектно-ориентированное программирование: классы, наследование, полиморфизм, инкапсуляция, абстракция.

// Базовый класс
class Animal {
  private String name; // инкапсуляция
  
  public Animal(String name) {
    this.name = name;
  }
  
  public void makeSound() {
    System.out.println("Животное издает звук");
  }
}

// Наследование
class Dog extends Animal {
  public Dog(String name) {
    super(name);
  }
  
  // Полиморфизм - переопределение метода
  @Override
  public void makeSound() {
    System.out.println("Гав-гав!");
  }
}

// Использование
Animal animal = new Dog("Бобик");
animal.makeSound(); // Гав-гав!

Для чего это нужно:

ООП — это основа современной разработки на Java. Все фреймворки и библиотеки построены на принципах ООП. Без глубокого понимания классов, наследования и полиморфизма невозможно писать качественный и поддерживаемый код.

После освоения сможешь:

  • Создавать классы и объекты
  • Использовать наследование для переиспользования кода
  • Применять полиморфизм для гибкости программ
  • Инкапсулировать данные и методы
  • Проектировать архитектуру приложений