Курс находится на модерации. Данные могут быть неактуальны.
Сложность
Сложность
Начинающий
Тип обучения
Тип обучения
Курс
Формат обучения
Формат обучения
С проверкой домашнего задания
Трудоустройство
Трудоустройство
Содействие
Сертификат
Сертификат
Да

Стоимость курса

55 000 ₽
есть рассрочка

Курс "Java-разработчик. Старт" – базовый курс Java для начинающих, рассчитанный на обучение с нуля, подходящий всем, кто не знаком с программированием. Курс является достаточно полным введением в профессию Java-разработчик, и охватывает, как основы самого языка, так и стек технологий, с которыми работает разработчик.Участники курса получат необходимые знания и навыки для старта в профессию Программист Java / Java-разработчик. Начнём с самых основ - устройство компьютера, память, процессор, что такое данные, как они хранятся в памяти, как использовать язык программирования для оперирования данными. Далее будем постепенно углубляться в сам язык программирования Java и соответствующий стек технологий - рассмотрим основные понятия и концепции программирования, присущие любому объектно-ориентированному языку, познакомимся с основными алгоритмами и структурами данных, познакомимся с системами контроля версий, научимся работать с БД из Java, и, конечно, будем много много писать кода. 

Что вы получите после обучения

Сертификат, ссылками на который можно делиться с другими людьми

Образовательная организация

Программа курса

Знакомство c Java

  > Знакомство с Java.
  > Процесс создания приложения
  > Знакомство с Java SE
  > Виртуальная машина Java
  > Среда разработки IntelliJ IDEA
  > Создание первого проекта
  > Метод main
  > Команды вывода в консоль
  > Экранирование символов
  > Переменные и примитивные типы данных
  > Арифметические операции
  > Домашнее задание: Программа решения линейных уравнений

Управляющие конструкции. Преобразование типов. Логические операции

  > Конструкции условного перехода
  > Логические операции и операторы
  > Вложенность конструкций и область видимости
  > Явное и неявное преобразование типов
  > Конкатенация строк
  > Знакомство с миром фундаментальных алгоритмов
  > Алгоритм поиска минимума

Массивы. Циклы. Базовые алгоритмы поиска. Сортировка.

  > Оперативная память компьютера;
  > Представление массива данных в памяти;
  > Объявление и инициализация массивов;
  > Алгоритм программы генерации массива со случайными числами;
  > Реализация программы;
  > Знакомство с циклами. Цикл while;
  > Сокращенная запись арифметических операций;
  > Постфиксная и префиксная инкрементация/декрементация;
  > Алгоритм поиска минимума/максимума в массиве;
  > Реализация алгоритмов поиска; цикл for; вложенность циклов;
  > Простейший алгоритм сортировки массива;
  > Реализация алгоритма сортировки;

Введение в классы и объекты.

  > Классы, как типы данных
  > Объекты, как переменные
  > Состояние и поведение объекта
  > Поля и методы
  > Сигнатура метода (тип, параметры, аргументы)
  > Жизнь и смерть объектов
  > Ссылочные типы данных
  > Общение между объектами
  > Создание класса Contact для программы «Телефонная книга»

Коллекции

  > Гибкие структуры данных в java.util
  > Основные классы-коллекции
  > Применение конкретных коллекций в зависимости от поставленной задачи
  > Принцип работы ArrayList
  > Знакомство с LinkedList, HashSet, HashMap, TreeSet

Введение в ООП  

  > Четыре кита ООП
  > Инкапсуляция (модификаторы доступа)
  > «Хороший тон» разработки на Java
  > Геттеры и сеттеры
  > Ключевое слово this
  > Конструкторы
  > Наследование в Java и его применение
  > Класс Object
  > Преимущества полиморфизма в ООП языках
  > Переопределение и перегрузка
  > Абстракция при построении архитектуры приложения

Абстрактные классы и методы. Интерфейсы. Анонимные классы

  > Распределение обязанностей между классами
  > Интерфейсы, как альтернатива множественному наследованию
  > Маркер-интерфейсы, функциональные интерфейсы
  > Интерфейс Comparable и правильная сортировка объектов

Параметризация. Лямбда-выражения

  > Динамическая типизация в Java
  > Создание класса с параметризированным полем
  > Лямбда-выражения, как альтернатива анонимным классам функциональных интерфейсов
  > Применение лямбда-выражений
  > Интерфейс Comparator
  > Многоуровневая сортировка объектов

Рекурсия

  > Знакомство с рекурсией
  > Стек
  > Решение задач с применением рекурсии
  > Реализация алгоритма «быстрой» сортировки

Работа с файлами. Обработка исключительных ситуаций

  > Класс File
  > Потоки ввода-вывода
  > Знакомство с java.io
  > FileInputStream, InputStreamReader, BufferedReader
  > FileOutputStream, PrintWriter
  > Чтение и запись текстовых файлов
  > Буфер записи
  > Исключения. Exception и RuntimeException
  > «Опасные» методы
  > Обработка исключительных ситуаций
  > Влияние иерархии классов исключений на порядок обработки
  > Создание собственных исключений
  > Пробрасывание исключений

Знакомство с СУБД

  > Что такое база данных?
  > Виды баз данных
  > Реляционные СУБД
  > Установка PostgreSQL
  > Определение предметной области для СУБД
  > Основные операции для создание схемы базы данных
  > Основные операции по работе с данными (INSERT, SELECT, UPDATE, DELETE)

Отношения между таблицами. Выборка данных из нескольких таблиц

  > Отношения между таблицами (one-to-one, one-to-many, many-to-many)
  > Создание связей между таблицами
  > JOINs
  > Агрегатные функции 
  > Группировка данных
  > Предложение HAVING

Системы сборки. Maven. Подключение к базе из Java

  > Системы сборки в Java
  > Сборка с помощью Maven
  > Конфигурационный файл Maven (pom.xml)
  > Управление зависимостями
  > JDBC
  > Настройка подключения к базе из Java
  > Пул подключений к базе (connection pool)
  > Выполнение операций с базой из Java

Аннотации. Classloaders

  > Жизненный цикл классов в Java
  > Процесс загрузки классов. Classloaders
  > Виды classloaders
  > Ручная загрузка классов
  > Аннотации: что это и зачем они нужны?
  > Написание своей аннотации

ORM. Hibernate

  > ORM
  > Знакомство с Hibernate
  > Настройка Hibernate в проекте (hibernate.cfg.xml)
  > Понятие сущности в Hibernate
  > Создание схемы базы данных с помощью сущностей Hibernate
  > Состояния сущностей
  > Способы сохранения данных через Hibernate

Методы Hibernate. Связи таблиц в Hibernate

  > Операции с базой через Hibernate
  > Основные аннотации для создания связей в Hibernate
  > Виды связей - unidirectional и bidirectional
  > Настройка связей в Hibernate

ManyToMany в Hibernate. Lambda expressions

  > Настройка many-to-many связи в Hibernate
  > Лямбда функции в Java
  > Функциональные интерфейсы 
  > Consumer, Supplier, Function

Unit-тесты. JUnit. Mockito

  > Введение в тестирование 
  > Виды тестирований
  > Unit-тесты. JUnit 5
  > Заглушки классов
  > Использование Mockito для написания unit-тестов

Интеграционные тесты

  > Что такое интеграционные тесты
  > In-memory базы
  > Создание интеграционных тестов
  > Настройка запуска интеграционных тестов в стадии verify

Введение в многопоточность

  > Понятия процесса и потока
  > Различие многопроцессорных и многопоточных программ
  > Inter process communication (IPC)
  > Создание потоков
  > Класс Thread 
  > Интерфейс Runnable
  > Daemon потоки

Работа с потоками. Синхронизация доступов

  > Прерывание потока
  > Понятие критической секции
  > Ключевое слово synchronized
  > Синхронизация доступов к данным

Виды блокировок. Неблокирующие алгоритмы

  > Ключевое слово volatile 
  > Класс ReentrantLock
  > Виды блокировок (biased, thin, fat)
  > Понятие happens-before
  > Неблокирующие алгоритмы
  > Использование Atomic* классов

Работа над проектами

Рейтинг курса

2.7
рейтинг
0
0
0
0
0

Может быть интересно

обновлено 01.11.2024 16:14
Java-разработчик (Старт)

Java-разработчик (Старт)

Оставить отзыв
Поделиться курсом с друзьями