[Geekbrains] Профессия Программист Java [Игорь Долгов]

195

Программа курса
Java. Уровень 0. Основы ООП на Java за 2 дня. Быстрый старт и экстремальное погружение

Урок 1. Часть 1 — Базовые понятия; Часть 2 — Приступаем к ООП; Часть 3 — Основы ООП.
Часть 1 Установка Oracle SDK и среды разработки IntelliJ IDEA. Принципы оформления: встречают по одежке, провожают по уму. Что такое классы? Что такое переменные, зачем нужны, какие бывают и как применять? Условные выражения. Основы ввода-вывода в Java. Циклы в Java. Массивы в Java. Перерыв 5 мин. Совместное написание первой программы в процедурном стиле. Что такое функции и методы. Передача параметров по ссылке и по значению. Основы ООП: классы и экземпляры классов. Перерыв 1 час на обед. Часть 2 Инкапсуляция, права доступа и модификаторы. Что такое наследование, как реализуется в Java и как отображается в UML. Сила полиморфизма. Сравнение объектов (equals и ==). Перерыв 1 час на обед. Часть 3 Конструкторы. Диаграмма классов в UML. Преобразуем нашу программу в соответствии с принципами ООП. Обсуждаем ДЗ на ближайшую неделю. Перерыв 1 неделя.

Урок 2. Часть 1 — разбор ДЗ; Часть 2 — Углубленное ООП; Часть 3 — совместное написание программы.
Часть 1 Разбор Домашнего задания, которое прислали участники курса. Исправление стандартных ошибок, помощь в проектировании. Поиски оптимальных решений по сделанному ДЗ. Перерыв 5 мин. Часть 2 Инкапсуляция, права доступа и модификаторы. Что такое наследование, как реализуется в Java и как отображается в UML. Сила полиморфизма. Сравнение объектов (equals и ==). Перерыв 1 час на обед. Часть 3 Статические методы и переменные. Пишем вторую программу сразу в ООП-стиле! Обсуждаем ДЗ для самостоятельной работы вне курса.

Java. Уровень 1. Базовый курс

Урок 1. Базовые понятия
Обзор курса, Введение в платформу Java, Настройка среды, Простейшая программа Hello world в блокноте, Запуск и выполнение, Среды разработки(IDE), Знакомство со средой разработки Eclipse, Idea, Hello world в среде Eclipse, Idea

Урок 2. Типы данных
Примитивные типы данных, Объявления переменных и их инициализация, Константы, Стек,куча и где хранятся данные в Java, Преобразования типов в Java, Основные операторы в языке Java: арифметические, логические, битовые, строковые, Работа с символами и строками, Вывод результатов работы программы на консоль

Урок 3. Управление потоком выполнения и циклы
Основы процедурного программирования, Ветвления, Циклы, Проектирование методов, Конструкторы, Хорошие и плохие названия, Параметры методов, Перегрузка методов, Рекурсия

Урок 4. Введение в ООП
Классы и объекты, Абстракция, Инкапсуляция, Наследование, Полиморфизм, Модификаторы доступа
Урок 5. Продвинутое ООП

Принципы проектирования и основы языка UML, Диаграммы классов, Абстрактные классы, Интерфейсы клонирования, Множественное наследование в Java, Программирование в соответствии с интерфейсом, а не реализацией

Урок 6. Collеction Framework
Виды контейнеров в Java: List, Map,Set, Основные реализации контейнеров, Основные приемы использования контейнеров, Проход по элементам коллекции, шаблон проектирования Iterator, Сравнение элементов коллекции, Сортировка элементов коллекции

Урок 7. Исключения
Концепция обработки исключений, Сравнение традиционного механизма обработки ошибок с механизмом, обработки исключений, Блок try-catch-finally, Типы исключений, Стандартные исключения в Java и их роль, Выброс исключения из метода

Урок 8. Написание программы «Сетевой чат»
Основы работы с библиотекой Swing, Основы работы с файловой системой в Java, Написание игры «Морской бой» с нуля — в течении 7и уроков, Написание программы «Сетевой чат», Написание программы «simple Web-server»

Java. Уровень 2. Профессиональная разработка программного обеспечения

Урок 1. Параметризация и обобщенное программирование (Generics)
Назначение Java Generics, Generic-контейнеры. Пример, Ограничения и маски. Ключевые слова super, extends, Использование wildcards, Generic-методы, Generic классы, Особенности наследования

Урок 2. Базы данных
Реляционные базы данных, Язык запросов SQL, Операторы select, insert, update, delete, Подключение к базе из Java (jdbc), Запросы в базу данных, обработка результата, Основные операторы в языке Java: арифметические, логические, битовые, строковые, Создание и удаление таблиц, Пример приложения

Урок 3. Swing. Графический интерфейс
Основное окно приложения, JFrame, Элементы интерфейса: кнопки, поля ввода, меню, списки, надписи, Компоновка элементов. LayoutManager — менеджер компоновки, Примеры основных Layout Manager: FlowLayout, BorderLayout,BoxLayout,GridBagLayout, Обработка событий, AWT — рисование, основные понятия

Урок 4. Внутренние классы
Понятие внутреннего класса, Применение на практике, Анонимные и локальные классы, Вложенные классы, Интерфейсы и типы
Урок 5. Средства ввода-вывода
Обзор java.io, Байтовые и символьные потоки, Буферизованные потоки, Сетевое взаимодействие, сокеты, Пример «сетевой чат», Сериализация объектов

Урок 6. Многопоточность
Понятие потока, разделяемая память, Потоки в Java. Класс Thread, интерфейс Runnable, Управление потоком, состояния потока, Синхронизация: lock, synchronized, wait/notify, Deadlock — взаимная блокировка, Concurrency collections, Пример — многопользовательский сетевой чат

Урок 7. Обзор средств разработки. Внешние библиотеки. Тестирование
Логирование. Основные библиотеки, Уровни логирования, Подключение внешних библиотек, Виды тестирования, Юнит-тесты, библиотека JUnit, Разработка через тестирование (TDD), Пример использования TDD

Урок 8. Reflection & annotations
Понятие reflection, Класс Class, Метаданные классов, доступ к полям и методам, Аннотации — примеры использования, Написание собственных аннотаций