diff --git a/README.md b/README.md
index e288257e..1fdcab28 100644
--- a/README.md
+++ b/README.md
@@ -1,120 +1,202 @@
-# Курс BaseJava (обновленный и переработанный)
-
-## Разработка Web приложения "База данных резюме"
- - используем: Java 8, IntelliJ IDEA,
- GitHib/Git, Сервлеты, JSP, JSTL, Tomcat, JUnit, PostgreSQL, GSON, JAXB
- - хранение резюме
- - в памяти на основе массива, отсортированного массива, списка и ассоциированного массива (Map)
- - в файловой системе (File API и Java 7 NIO File API)
+# [Курс BaseJava (обновленный и переработанный)](http://javaops.ru/reg/basejava)
+
+## Разработка web-приложения "База данных резюме"
+
+В данном курсе вы создадите с нуля web-приложение, реализуя разные способы хранения резюме. Проект включает в себя следующее:
+ - **Технологии:** Java 8, GitHub/Git, JUnit, Logging, GSON, JAXB, SQL, PostgreSQL, Сервлеты, HTML, JSP, JSTL, Tomcat, Maven и многое другое
+ - **Различные способы реализации хранения резюме:**
+ - в сортированном и не сортированном массиве
+ - в коллекциях (List, Map)
+ - в файловой системе:
+ - с использованием File и Path API
- в стандартной и кастомной сериализации Java
- - в формате JSON (Google Gson)
- - в формате XML (JAXB)
- - в реляционной базе PostgreSQL
- - деплой веб приложения
- - в контейнер сервлетов Tomcat
- - в облачный сервис Heroku
-
-Приложение будет разрабатываться начиная со первого занятия, основываясь на базовых темах курса:
-**объектная модель, коллекции, система ввода-вывода, работа с файлами, сериализация, работа с XML, JSON, SQL, персистентность в базу данных (PostgreSQL), сервлеты, HTML/JSP/JSTL, веб-контейнер Tomcat, модульные тесты JUnit, java.util.Logging, система контроля версий Git.**
-
-> Любое знание стоит воспринимать как подобие семантического дерева: убедитесь в том, что понимаете фундаментальные принципы, то есть ствол и крупные ветки, прежде чем лезть в мелкие листья-детали. Иначе последним не на чем будет держаться.
-
-[*— Илон Маск](https://ru.wikipedia.org/wiki/Маск,_Илон)
-
-# Изучайте [первое открытое занятие](lesson/lesson1.md).
-### Внизу урока есть первое домашнее задание, по которому можно оценить свой уровень готовности к проекту.
-
-## Программа
-### [Регистрация](http://javaops.ru/reg/basejava)
-### Открытое занятие 1
- - [Презентация проекта](lesson/lesson1.md#-Вебинар-ПРЕЗЕНТАЦИЯ-обучения)
- - [Разработка ПО](lesson/lesson1.md#-1-Разработка-ПО)
- - [Обзор языка Java](lesson/lesson1.md#-3-Обзор-языка-java)
- - [Системы управления версиями. Git](lesson/lesson1.md#-4-Системы-управления-версиями-git)
- - [ПЕРВОЕ ДОМАШНЕЕ ЗАДАНИЕ](lesson/lesson1.md#Домашнее-задание-hw1)
-
-### Занятие 2
- - [Принципы ООП](lesson/lesson2.md#Принципы-ООП)
- - [Структура памяти: куча, стек, регистры, константы](lesson/lesson2.md#Структура-памяти-куча-стек-регистры-константы)
- - [Типы данных. Пакеты](lesson/lesson2.md#Типы-данных-Пакеты)
-
-### Занятие 3
- - [Объектная модель в Java](lesson/lesson3.md#Объектная-модель-в-java)
- - [Сложность алгоритмов](lesson/lesson3.md#Сложность-алгоритмов)
- - [Паттерн проектирования Шаблонный метод](https://github.com/JavaOPs/JavaSE-Web/blob/master/lesson/lesson3.md#Паттерн-проектирования-Шаблонный-метод)
+ - в формате JSON ([Google Gson](https://en.wikipedia.org/wiki/Gson))
+ - в формате XML ([JAXB](https://ru.wikipedia.org/wiki/Java_Architecture_for_XML_Binding))
+ - в реляционной базе [PostgreSQL](https://ru.wikipedia.org/wiki/PostgreSQL)
+ - **Установку (деплой) web-приложения:**
+ - в контейнер сервлетов [Tomcat](https://ru.wikipedia.org/wiki/Apache_Tomcat)
+ - в облачный сервис [Heroku](https://ru.wikipedia.org/wiki/Heroku)
+
+> Любое знание стоит воспринимать как подобие семантического дерева: убедитесь в том, что понимаете фундаментальные принципы, то есть ствол и крупные ветки, прежде чем лезть в мелкие листья-детали. Иначе последним не на чем будет держаться
+
+— Илон Маск
+
+### Изучите [бесплатный урок](lesson/lesson1.md). В конце урока находится домашнее задание, по которому можно оценить свой уровень готовности к проекту
+
+## Программа курса
+
+#### Занятие 1 (бесплатное)
+ - Обзор курса и методики обучения
+ - Подготовка и настройка рабочего окружения
+ - Подходы, применяемые при разработке ПО
+ - Обзор инструментов и технологий, используемых Java-разработчиками
+ - Введение в язык Java: история создания, JDK, JVM, JRE, JIT-компиляция
+ - Системы управления версиями. Git
+ - Домашнее задание
+
+#### Занятие 2
+ - Типы данных
+ - Введение в объектно-ориентированное программирование
+ - Принципы ООП
+ - Классы и объекты
+ - Классы-обертки
+ - Модификаторы доступа
+ - Конструктор
+ - Структура памяти java-программы: Heap (куча), Stack (стек)
+ - Пакеты
+ - Домашнее задание
+
+#### Занятие 3
+ - Разбор домашнего задания
+ - Обзор суперкласса Object
+ - Связь между equals() и hashCode()
+ - Статические методы и переменные
+ - Программирование с помощью интерфейсов
+ - Абстрактные классы
+ - Сложность алгоритмов
+ - Паттерн проектирования Template Method
+ - Домашнее задание
-### Занятие 4
- - [Работа со строками](lesson/lesson4.md#Работа-со-строками)
- - [Исключения](lesson/lesson4.md#Исключения)
- - [Reflection. Аннотации. Модульное тестирование](lesson/lesson4.md#reflection-Аннотации-Модульное-тестирование)
-
-### Занятие 5
- - [Контейнеры/коллекции](lesson/lesson5.md#Контейнерыколлекции)
+#### Занятие 4
+ - Разбор домашнего задания
+ - Конструктор
+ - Работа со строками: String, StringBuilder, StringBuffer
+ - String literal pool
+ - Исключения (Exceptions)
+ - Ключевые слова: this, super
+ - Reflection
+ - Аннотации
+ - Введение в модульное тестирование. JUnit
+ - Домашнее задание
+
+#### Занятие 5
+ - Разбор домашнего задания
+ - Коллекций. Иерархия классов
+ - Списки (List)
+ - Множества (Set)
+ - Ассоциативные массивы (Map)
+ - Введение в Iterator
+ - Домашнее задание
-### Занятие 6
- - [Iterator / Iterable. Вложенные, внутренние, локальные и анонимные классы](lesson/lesson6.md#iterator--iterable-Вложенные-внутренние-локальные-и-анонимные-классы)
- - [Новое в Java 8](lesson/lesson6.md#Новое-в-java-8)
-
-### Занятие 7
- - [Параметризация. Стирание типов](lesson/lesson7.md#Параметризация-Стирание-типов)
- - [Логирование](lesson/lesson7.md#Логирование)
- - [Синглетон, Enum](lesson/lesson7.md#Синглетон-enum)
-
-### Занятие 8
- - [Работа с датами и временем](lesson/lesson8.md#Работа-с-датами-и-временем)
- - [Работа с файлами и ресурсами](lesson/lesson8.md#Работа-с-файлами-и-ресурсами)
-
-### Занятие 9
- - [Ввод/вывод](lesson/lesson9.md#Вводвывод)
- - [Сериализация](lesson/lesson9.md#Сериализация)
- - [NIO](lesson/lesson9.md#nio)
- - [Основы Java 8 Stream API](lesson/lesson9.md#Основы-java-8-stream-api)
-
-### Занятие 10
- - [Формат XML. Работа с XML в Java](lesson/lesson10.md#Формат-xml-Работа-с-xml-в-java)
- - [JSON](lesson/lesson10.md#json)
- - [DataInputStream / DataOutputStream](lesson/lesson10.md#datainputstream--dataoutputstream)
-
-### Занятие 11
- - [Многопоточность. Параллельное выполнение.](lesson/lesson11.md#Многопоточность-Параллельное-выполнение)
- - [Потоки. Синхронизация](lesson/lesson11.md#Потоки-Синхронизация)
- - [Ленивая инициализация, JMM](lesson/lesson11.md#Ленивая-инициализация-jmm)
+#### Занятие 6
+ - Разбор домашнего задания
+ - Паттерн проектирования Iterator
+ - Autoboxing и Unboxing
+ - Вложенные классы
+ - Внутренние классы
+ - Локальные классы
+ - Анонимные классы
+ - Введение в лямбда-выражения
+ - Функциональный интерфейс
+ - Домашнее задание
+
+#### Занятие 7
+ - Разбор домашнего задания
+ - Дженерики (Generic)
+ - Введение в логирование. Log4J, Java Logging API
+ - Паттерн проектирования Singleton
+ - Перечисления (Enum)
+ - Объектная модель
+ - Домашнее задание
+
+#### Занятие 8
+ - Разбор домашнего задания
+ - Классы работы с датами: Date, Calendar, TimeZone
+ - Дата и время в Java 8+
+ - File API
+ - Освобождение ресурсов: try-with-resources
+ - Домашнее задание
+
+#### Занятие 9
+ - Разбор домашнего задания
+ - Обзор пакета java.io
+ - Классы чтения/записи потоков: InputStream и OutputStream
+ - Паттерн проектирования Decorator
+ - Классы чтения/записи символов: Reader и Writer
+ - Сериализация объектов
+ - Обзор пакета java.nio
+ - Введение в Java 8+ Stream API
+ - Домашнее задание
+
+#### Занятие 10
+ - Разбор домашнего задания
+ - Паттерн проектирования Strategy
+ - Работа с XML (JAXB)
+ - Работа с JSON (GSON)
+ - Классы чтения/записи примитивных типов: DataInputStream и DataOutputStream
+ - Домашнее задание
+
+#### Занятие 11
+ - Многопоточность
+ - Закон Мура и Амдала
+ - Потоки. Синхронизация доступа
+ - Обзор методов класса Object
+ - Ленивая инициализация
+ - Java Memory Model
+ - Deadlock
+ - Домашнее задание
-### Занятие 12
- - [java.util.concurrent](lesson/lesson12.md#javautilconcurrent)
-
-### Занятие 13
- - [Базы данных. Реляционные СУБД. PostgreSQL](lesson/lesson13.md#Базы-данных-Реляционные-СУБД-postgresql)
- - [Конфигурирование данных в Java проекте](lesson/lesson13.md#Конфигурирование-данных-в-java-проекте)
- - [Подключение DB в проект](lesson/lesson13.md#Подключение-db-в-проект)
-
-### Занятие 14
- - [JOIN](lesson/lesson14.md#join)
- - [Транзакции](lesson/lesson14.md#Транзакции)
- - [Установка/запуск Tomcat](lesson/lesson14.md#Установказапуск-tomcat)
-
-### Занятие 15
- - [HTML, Tomcat](lesson/lesson15.md#html-tomcat)
- - [Сервлеты](lesson/lesson15.md#Сервлеты)
+#### Занятие 12
+ - Разбор домашнего задания
+ - Обзор классов java.util.concurrent
+ - Синхронизаторы
+ - ThreadLocal-переменные
+ - Сравнение с обменом (Compare-and-swap)
+ - Домашнее задание
+
+#### Занятие 13
+ - Разбор домашнего задания
+ - Введение в реляционные базы данных
+ - Язык SQL
+ - Обзор NoSQL баз данных
+ - Установка и настройка СУБД PostgreSQL
+ - Работа с базами данных из IDEA
+ - Конфигурирование базы данных и каталога хранения
+ - Подключение базы данных к проекту
+ - Обзор JDBC-архитектуры
+ - Домашнее задание
+
+#### Занятие 14
+ - Разбор домашнего задания
+ - Операции соединения таблиц. JOIN
+ - Транзакции
+ - Требования к транзакциям. ACID
+ - Уровни изоляции транзакций в SQL
+ - Установка и настройка контейнера сервлетов Tomcat
+ - Домашнее задание
+
+#### Занятие 15
+ - Разбор домашнего задания
+ - Введение в HTML
+ - Основы протокола HTTP
+ - Настройка web.xml
+ - Деплой web-приложения в Tomcat
+ - Сервлеты
+ - Домашнее задание
-### Занятие 16
- - [JSP](lesson/lesson16.md#jsp)
- - [JSTL](lesson/lesson16.md#jstl)
+#### Занятие 16
+ - Разбор домашнего задания
+ - Жизненный цикл сервлета
+ - Создание динамических страниц. JSP
+ - Расширенные возможности JSP. JSTL
+ - Redirect и Forward
+ - CRUD-операции
+ - Домашнее задание
-### Занятие 17
- - [Деплой в Heroku](lesson/lesson17.md#Деплой-в-heroku)
- - [Classloader](lesson/lesson17.md#classloader)
- - [Обзор Java Enterprise](lesson/lesson17.md#Обзор-java-enterprise)
+#### Занятие 17
+ - Разбор домашнего задания
+ - Деплой приложения в облачный сервис Heroku
+ - Загрузка классов в Java. Classloader
+ - Домашнее задание
## Рекомендуемые книги
-- YAKOV FAIN: Программирование на Java для начинающих
-- Книги по Java: от новичка до профессионала
-- Джошуа Блох: Java. Эффективное программирование, 2-е издание
-- Гамма, Хелм, Джонсон: Приемы объектно-ориентированного проектирования. Паттерны проектирования
-- Редмонд Э.: Семь баз данных за семь недель. Введение в современные базы данных и идеологию NoSQL.
-
-## Ресуры в сети
-- [Руководство по Java Core](http://proselyte.net/tutorials/java-core/)
-- [Java. Базовый курс](https://stepik.org/course/Java-Базовый-курс-187)
-- intuit: Программирование на Java
-- Основы программирования на Java: учебное пособие
+- [Яков Файн, "Программирование на Java для начинающих"](http://myflex.org/books/java4kids/java4kids.htm)
+- [Книги по Java: от новичка до профессионала](https://proglib.io/p/java-books-2019/)
+- [Джошуа Блох, "Java. Эффективное программирование, 3-е издание"](https://www.ozon.ru/context/detail/id/148627191/)
+- [Роберт Мартин, "Чистый код"](https://www.ozon.ru/context/detail/id/142429922/)
+- [Серия Head First, "Паттерны проектирования"](https://www.ozon.ru/context/detail/id/144233005/)
+- [Вайсфельд Мэтт, "Объектно-ориентированный подход"](https://www.ozon.ru/context/detail/id/166375103/?stat=YW5fMQ%3D%3D)
+
+## Ресурсы в сети
+- [EduTools плагин от JetBrains для изучения Kotlin, Java, Python, Scala и других языков](http://javaops.ru/view/story/story21#edutools)
+- [JetBrains Academy — интерактивный учебный курс по Java](https://www.jetbrains.com/ru-ru/academy/)
diff --git a/lesson/lesson1.md b/lesson/lesson1.md
index 2b5e4491..aa5a34c0 100644
--- a/lesson/lesson1.md
+++ b/lesson/lesson1.md
@@ -1,125 +1,115 @@
# Первое занятие
-##  [Видеообзор проекта Basejava](https://www.youtube.com/watch?v=0ydTRfKS9yY)
+## [Демо разрабатываемого приложения](http://javaops-demo.ru/basejava/resume?theme=light)
+
+##  [Видеообзор курса Basejava](https://www.youtube.com/watch?v=0ydTRfKS9yY)
### Подготовка рабочего окружения
-- Установите [JDK8](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html) (выбрать Accept License Agreement)
-- Установите систему управления версиями [Git](http://git-scm.com/downloads) (опции по умолчанию)
-- Создайте аккаунт на [GitHub](https://github.com/). Для удобной навигации по файлам на GitHub можно установить расширение для браузера [Octotree](https://habrahabr.ru/post/223527/)
-- Установите [IntelliJ IDEA](http://www.jetbrains.com/idea/download/index.html). **Пока нет базы данных и веб, можно работать с версией Community**. На версию Ultimate дается 30 дней пробного бесплатного использования (trial). На проектах каждый участник проектов получает единоразовый личный купон на бесплатную версию Ultimate на 6 месяцев.
-
-##  1. [Разработка ПО](https://drive.google.com/open?id=0B_4NpoQW1xfpVjZUTEpvVUN1TTA)
-- [Мифический человеко-месяц](https://ru.wikipedia.org/wiki/Мифический_человеко-месяц) (wiki)
-- [Размеры проектов в количестве строк кода [eng]](https://medium.freecodecamp.com/the-biggest-codebases-in-history-a128bb3eea73)
-- [Соглашения по оформлению кода [eng]](https://google.github.io/styleguide/javaguide.html)
-- [Методологии разработки ПО](https://dou.ua/forums/topic/14015/)
-- [Ещё раз про семь основных методологий разработки](https://habrahabr.ru/company/edison/blog/269789/)
-
-##  2. [Обзор инструментов и технологий](https://drive.google.com/file/d/0B_4NpoQW1xfpTXJYU2xZbjN2d2M)
-- [Bash — шпаргалка для начинающих](https://tproger.ru/translations/bash-cheatsheet)
-- **Обновление!!*
- - [The State of Java in 2018](http://www.baeldung.com/java-in-2018)
- - [Что и почему используют Java-разработчики: опрос RebelLabs](https://jug.ru/2017/12/rebellabs-report/)
- - [Java Tools and Technologies Landscape Report 2016](https://zeroturnaround.com/rebellabs/java-tools-and-technologies-landscape-2016/)
- - [Java Tools and Technologies Landscape for 2014](http://zeroturnaround.com/rebellabs/java-tools-and-technologies-landscape-for-2014)
-- **Дополнительно:**
- - [Типичный тест SQL на собеседованиях](https://habrahabr.ru/post/181033/)
-
-##  3. [Обзор языка Java](https://drive.google.com/open?id=0B_4NpoQW1xfpTU5SSElhUjlGNnc)
-- [Java](http://ru.wikipedia.org/wiki/Java), [JVM](http://ru.wikipedia.org/wiki/Виртуальная_машина_Java), [JIT-компиляция](http://ru.wikipedia.org/wiki/JIT) (wiki)
-- [Что такое JDK? Введение в средства разработки Java](https://topjava.ru/blog/what-is-the-jdk)
-- [Что такое JRE? Введение в среду выполнения Java](https://topjava.ru/blog/what-is-the-jre)
-- [Что такое Java? История создания](http://www.intuit.ru/studies/courses/16/16/lecture/27105)
-- [Programming languages TIOBE Index](http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html)
+- Установите последнюю версию [JDK](https://www.oracle.com/java/technologies/downloads/)
+- Установите систему управления версиями [Git](http://git-scm.com/downloads)
+- Создайте аккаунт на [GitHub](https://github.com/)
+- Установите [боковую панель](https://topjava.ru/blog/vvedeniye-v-git-github-ustanovka-i-nastroyka#8) для удобной навигации по файлам на GitHub
+- Установите [IntelliJ IDEA Community](https://www.jetbrains.com/idea/download/) (Ultimate-версия понадобится позже, при работе с базой данных и web)
+- Установите плагин для [Checkstyle](https://topjava.ru/blog/nastroyka-checkstyle-v-intellij-idea)
+
+##  1. [Разработка ПО](https://drive.google.com/file/d/0B_4NpoQW1xfpVjZUTEpvVUN1TTA/view?usp=sharing&resourcekey=0-hnn1HIBU3WIuDMVuQAxA8w)
+- [Мифический человеко-месяц](https://habr.com/ru/companies/raiffeisenbank/articles/533216/)
+- [Подборка книг для руководителей в сфере IT](https://habr.com/ru/companies/skyeng/articles/465215/)
+- [Размеры проектов в количестве строк кода](https://www.freecodecamp.org/news/the-biggest-codebases-in-history-a128bb3eea73)
+- [Соглашения по оформлению кода](https://topjava.ru/blog/google-java-style-guide)
+- Методологии разработки ПО: [Agile, Scrum](https://youtu.be/cDvZaXzQezs), [Kanban](https://youtu.be/1_Zti9v5ugA)
+- [Методологии разработки и их влияние на качество](https://youtu.be/y4B2Hv3HgpE)
+- [Ещё раз про семь основных методологий разработки](https://habr.com/ru/companies/edison/articles/269789/)
+
+##  2. [Обзор инструментов и технологий](https://drive.google.com/file/d/0B_4NpoQW1xfpTXJYU2xZbjN2d2M/view?usp=sharing&resourcekey=0-Uw_lRGW12YNjwY7phXzVdg)
+- [Java в 2025 году](https://habr.com/ru/companies/spring_aio/articles/933180/)
+- [State of Developer Ecosystem Report 2025](https://devecosystem-2025.jetbrains.com/ru)
+- [Java Trends Report 2025](https://www.infoq.com/articles/java-trends-report-2025/)
+- [The 2025 Developer Survey](https://survey.stackoverflow.co/2025)
+- Рейтинги языков программирования: [TIOBE](https://www.tiobe.com/tiobe-index/), [PYPL](https://pypl.github.io/PYPL.html), [IEEE](https://spectrum.ieee.org/tag/top-programming-languages)
+
+##  3. [Обзор языка Java](https://drive.google.com/file/d/0B_4NpoQW1xfpTU5SSElhUjlGNnc/view?usp=sharing&resourcekey=0-DOyRoGhREx2kvKwAKTOlYg)

-- [ME](http://ru.wikipedia.org/wiki/Java_Platform,_Micro_Edition), [SE](https://ru.wikipedia.org/wiki/Java_Platform,_Standard_Edition), [EE](http://ru.wikipedia.org/wiki/Java_Platform,_Enterprise_Edition) (wiki)
-- [Java Microbenchmark JMH](http://openjdk.java.net/projects/code-tools/jmh/) (используем на курсе [MasterJava](https://github.com/JavaWebinar/masterjava#Занятие-2))
-- [Oracle Java8 Home](http://docs.oracle.com/javase/8/docs/index.html)
-- **Дополнительно:**
- - [Java version and vendor data analyzed 2017](https://plumbr.io/blog/java/java-version-and-vendor-data-analyzed-2017-edition)
- - [Most popular Java application servers: 2017 edition](https://plumbr.io/blog/java/most-popular-java-application-servers-2017-edition)
- - [Понимаем основы Java garbage collection](https://ggenikus.github.io/blog/2014/05/04/gc)
-
-##  4. [Системы управления версиями. Git](https://drive.google.com/file/d/0B9Ye2auQ_NsFSUNrdVc0bDZuX2s)
-
-
-
- - [Система управления версиями](https://ru.wikipedia.org/wiki/Система_управления_версиями) (wiki)
- - [Сравнение разных VCS](https://biz30.timedoctor.com/ru/cистема-контроля-версий/)
- - [Git обучалка](https://githowto.com/ru)
- - [Интерактивная Git обучалка (в настройках выберите русский язык)](http://learngitbranching.js.org)
- - [Официальная книга про Git](https://git-scm.com/book/ru/v2)
- - [Working with remote repositories](https://illustrated-git.readthedocs.org/en/latest/#working-with-remote-repositories)
- - [Базовый курс по обучению Git](https://www.youtube.com/playlist?list=PLIU76b8Cjem5B3sufBJ_KFTpKkMEvaTQR) (youtube)
- - [Git. Быстрый старт](https://www.youtube.com/watch?v=4-NX17Ip-xQ&list=PLmRNNqEA7JoM77hOJkPrLOfJQGizCLR3P) (youtube)
+- [Java](http://ru.wikipedia.org/wiki/Java), [JIT-компиляция](http://ru.wikipedia.org/wiki/JIT)
+- Java [ME](http://ru.wikipedia.org/wiki/Java_Platform,_Micro_Edition), [SE](https://ru.wikipedia.org/wiki/Java_Platform,_Standard_Edition), [EE](http://ru.wikipedia.org/wiki/Java_Platform,_Enterprise_Edition)
+- [Что такое JDK? Введение в средства разработки Java](https://topjava.ru/blog/what-is-the-jdk)
+- [Что такое JVM? Знакомство с виртуальной машиной Java](https://topjava.ru/blog/what-is-the-jvm)
+- [Что такое JRE? Введение в среду выполнения Java](https://topjava.ru/blog/what-is-the-jre)
+- [Что такое Java? История создания](http://www.intuit.ru/studies/courses/16/16/lecture/27105)
+- [Руководство по массивам в Java](https://topjava.ru/blog/rukovodstvo-po-massivam-v-java-ch1)
+
+##  4. [Системы управления версиями. Git](https://drive.google.com/file/d/0B9Ye2auQ_NsFSUNrdVc0bDZuX2s/edit?resourcekey=0-6scb0PBj2A3Oqf6rsU2egQ)
+
+- [Введение в Git: установка и настройка](https://topjava.ru/blog/vvedeniye-v-git-github-ustanovka-i-nastroyka)
+- [Введение в Git: базовые команды](https://topjava.ru/blog/vvedeniye-v-git-github-bazovyye-komandy)
+- [Введение в Git: ошибки использования](https://topjava.ru/blog/vvedeniye-v-git-oshibki-ispolzovaniya-ch-9)
+- [Git: от установки до основных команд](https://tproger.ru/translations/beginner-git-cheatsheet/)
+- [Сравнение разных VCS](https://dzen.ru/a/Z0Z0Ry7VD0gfPV5X)
+- [Видео-уроки по Git](https://www.youtube.com/playlist?list=PLDyvV36pndZHkDRik6kKF6gSb0N0W995h)
+- Интерактивные Git-обучалки: [1](https://githowto.com/ru), [2](http://learngitbranching.js.org)
+- [Официальная книга по Git](https://git-scm.com/book/ru/v2)
+- [GitHub for beginners](https://github.blog/tag/github-for-beginners/)
### Настройка проекта
- Создайте на GitHub репозиторий с названием `basejava`
-- Откройте консоль (терминал) у себя на компьютере
-- Наберите и запустите: `git` (по умолчанию при установке git заносится в PATH. Если он не находится, [занесите](https://www.java.com/ru/download/help/path.xml) git в переменную окружения PATH и перезапустите консоль)
-- Создайте локальную копию проекта: `git clone https://github.com/JavaOps/basejava.git`
-- Перейдите в каталог проекта: `cd basejava`
-- Настройте git в локальном проекте на свой проект в GitHub:
- - `git remote -v`
- - `git remote set-url origin url_на_твой_basejava-репозиторий.git` - настройка pull
- - `git remote set-url --push origin url_на_твой_basejava-репозиторий.git` - настройка push
- - `git push -u origin master`
+- Откройте консоль у себя на компьютере (в папке, где планируете разместить проект) и выполните следующее:
+ - **Скачайте копию проекта с заранее заданными классами: `git clone https://github.com/JavaOps/basejava.git`. Реализацию дз выполняйте в рамках данной копии**
+ - Перейдите в каталог проекта: `cd basejava`
+ - Настройте git у себя на компьютере на свой репозиторий в GitHub:
+ - `git remote set-url origin url_на_ваш_basejava-репозиторий.git` — настройка pull
+ - `git remote set-url --push origin url_на_ваш_basejava-репозиторий.git` — настройка push
+ - `git remote -v` — удостоверьтесь, что команда выводит ссылки на ваш удаленный репозиторий
+ - `git push -u origin master` — [устанавливаем связь](https://qna.habr.com/q/118865) между локальной и удаленной веткой master
## Домашнее задание HW1
-- Создайте в IntelliJ IDEA новый проект, выбрав каталог `basejava`, который вы клонировали ранее к себе на компьютер:
+- Откройте в IntelliJ IDEA ваш проект, выбрав каталог `basejava`, который вы скачали ранее к себе на компьютер:
-
+
-
-
-
-
-
-
-- Реализуйте класс `ArrayStorage`, организовав хранение резюме на основе массива с методами `save, get, delete, size, clear, getAll`
-- Храните все резюме в начале `storage` (без дырок в виде `null`), чтобы не перебирать каждый раз все 10000 элементов
+- Реализуйте методы `save, get, delete, clear, getAll, size` в классе `ArrayStorage`, организовав хранение резюме в массиве
+- Храните все резюме в начале `storage` (без пустот в виде null), чтобы не перебирать каждый раз 10_000 элементов
+- При реализации метода `delete` учитывайте:
+ - после удаления резюме между оставшимися резюме не должно быть пустых (null) ячеек
+ - резюме должны размещаться в ячейках под индексами `< size`. В противном случае обнуляйте их
```
-Схема хранения резюме в массиве storage (в элементах от 0 до size-1 отсутствуют null):
+Схема хранения резюме в массиве storage (в элементах от 0 до size - 1 отсутствуют null):
r1, r2, r3,..., rn, null, null,..., null
<----- size ----->
-<------- storage.length (10000) ------->
+<------- storage.length (10_000) ------>
```
-- Протестируйте вашу реализацию с помощью классов `MainArray.main()` и `MainTestArrayStorage.main()`
+- Проверьте вашу реализацию с помощью классов `MainArray.main()` и `MainTestArrayStorage.main()`
- Изучите дополнительные материалы по IntelliJ IDEA:
- - [Idea Wiki](https://github.com/JavaOPs/topjava/wiki/IDEA) ([поставьте кодировку UTF-8](https://github.com/JavaOPs/topjava/wiki/IDEA#Поставить-кодировку-utf-8), [поменяйте шрифт по умолчанию на DejaVu](https://github.com/JavaOPs/topjava/wiki/IDEA#Поменять-фонт-по-умолчанию-dejavu))
- - [Руководство пользователя IntelliJ IDEA. Отладчик](http://info.javarush.ru/idea_help/2014/01/22/Руководство-пользователя-IntelliJ-IDEA-Отладчик-.html)
- - [Эффективная работа с кодом в IntelliJ IDEA](https://www.youtube.com/watch?v=tpv5n2jWHlw) (youtube)
- - [Эффективная работа в IDEA](https://www.youtube.com/watch?v=_rj7dx6c5R8) (youtube)
+ - [Idea Wiki](https://github.com/JavaOPs/topjava/wiki/IDEA)
+ - Отладка Java кода в IDEA: [1](https://youtu.be/Z1BQsf0A4xY?si=E8RtUNE1Pm3xP_w9), [2](https://youtu.be/V5iQ1FyRtBo), [3](https://blog.jetbrains.com/idea/2025/04/debugging-java-code-in-intellij-idea/)
+ - [Эффективная работа с кодом в IntelliJ IDEA](https://www.youtube.com/watch?v=tpv5n2jWHlw)
+ - [Эффективная работа в IDEA](https://www.youtube.com/watch?v=_rj7dx6c5R8)
### Вопросы по HW1
- > Не могу запустить программу, да и рядом с классами появился какой-то значок
- 
+ > Не могу запустить программу, да и иконки рядом с классами изменились
+
+ 
- Проблема в том, что IDEA неправильно "воспринимает" папку `src`. Для ее решения необходимо нажать `ПКМ на папке src -> выбрать Mark Directory as -> Sources Root`
- > Что такое `null`?
-
-[Что такое null в Java?](http://qaru.site/questions/1960/what-is-null-in-java) (оригинал: [What is null in Java?
-](https://stackoverflow.com/questions/2707322/what-is-null-in-java))
-
### Замечания по выполнению HW1
-1. Все резюме в хранилище имеют уникальный `uuid`, что исключает повторы. Cортировка по `uuid` не требуется
-2. Давайте осмысленные комментарии коммитам
-3. Перед каждым коммитом не забывайте пользоваться сочетанием клавиш `Ctrl + Alt + L` (автоматическое форматирование кода)
-4. Не злоупотребляйте пустыми строками. Они используются нечасто для логического отделения больших кусков кода.
-5. Удаляйте неиспользуемые импорты (`Ctrl + Alt + O`)
-5. Не игнорируй подсказки IDEA (подсвечивает)
-6. `Resume r` — давай переменным осмысленные имена, например `resume`. `r` допустимо в коротких циклах и лямбдах.
-7. В методе `clear()` обнуление массива предполагает именно обнуление (null), а не создание нового
-
-# Дополнительно (как учиться программированию)
+1. Все резюме в хранилище имеют уникальный `uuid`, что исключает повторы. Сортировка по `uuid` не требуется
+1. Давайте осмысленные комментарии коммитам
+1. Перед каждым коммитом не забывайте пользоваться сочетанием клавиш `Ctrl + Alt + L` (автоматическое форматирование кода)
+1. Удаляйте в классах неиспользуемые импорты (`Ctrl + Alt + O`)
+1. Не игнорируй подсказки IDEA (подсвечивает)
+1. В методе `clear()` обнуление массива предполагает обнуление (null) ячеек, где хранятся Resume, а не создание нового или присваивание ему null
+1. При реализации методов не используйте коллекции
+1. Не меняйте сигнатуры методов в `ArrayStorage`
+1. Не добавляйте в `Resume` новые поля
+1. `Resume r` — давайте переменным осмысленные имена, например resume. r допустимо в коротких циклах и лямбда-выражениях
+
##  5. [Вебинар "Быть программистом: от детства к зрелости"](https://www.youtube.com/watch?v=D5Hej0TyLaU)
- [Слайды вебинара](https://docs.google.com/presentation/d/1YwtCCZsaGMdl-V15kTDHiJxiS52IAl-qqheNPpiNr54/)
-## Советы по обучению
- - Учись грамотно формулировать проблему. Проблема "у меня не работает" может иметь тысячи причин. В процессе формулирования очень часто приходит ее решение.
- - Учись инвестигировать проблему. Внимательное чтение логов и умение дебажить - основные навыки разработчика. В логах надо читать верх самого нижнего эксепшена - там причина всей портянки.
- - Грамотно уделяй время каждой проблеме. Две крайности - сразу бросаться за помощью и бится нам ней часами. Пробуй решить ее сам и в зависимости от проблемы выделяй на это разумное время.
- - Получай в процессе решения обратную связь - в том ли направлении ты идешь.
- - [Советы новичкам](http://blog.csssr.ru/2016/09/19/how-to-be-a-beginner-developer)
+### Советы по обучению
+ - Учитесь грамотно формулировать проблему: "у меня не работает" может иметь тысячи причин. В процессе формулирования часто приходит ее решение
+ - Учитесь исследовать проблему. Внимательное чтение логов и умение дебажить — основные навыки разработчика. В логах необходимо читать верхнюю часть самого нижнего иксепшена. Именно там находится причина возникшей ошибки
+ - Грамотно распределяйте время для каждой проблемы. Не впадайте в крайности: сразу бросаться за помощью или биться над ней часами. Подходите к ее решению разумно
+ - Получайте в процессе решения обратную связь, что бы убедиться в правильности выбранного направления
+ - [Советы новичкам](https://blog.csssr.com/ru/article/how-to-be-a-beginner-developer/)
diff --git a/lesson/lesson10.md b/lesson/lesson10.md
deleted file mode 100644
index 1c279e7a..00000000
--- a/lesson/lesson10.md
+++ /dev/null
@@ -1,19 +0,0 @@
-
-# Десятое занятие
-
-## Разбор Домашнего Задания-9:
-
-## Формат XML. Работа с XML в Java
-- XML формат и технологии
-- Wiki: XML, XSL , DOM, SAX, StAX, JAXB
-- Работа с XML в Java. Реализация хранения в XML.
-
-## JSON
-- JSON. JSON в JavaScript. REST
-- Работа с JSON в Java: Google GSON и Jackson. Реализация хранения в JSON.
-
-## DataInputStream / DataOutputStream
-- Реализация Store на основе `DataInputStream/DataOutputStream`.
-
-## Домашнее задание
-- Сделать и протестировать реализацию `DataStreamSerializer`
\ No newline at end of file
diff --git a/lesson/lesson11.md b/lesson/lesson11.md
deleted file mode 100644
index 1a1e7a91..00000000
--- a/lesson/lesson11.md
+++ /dev/null
@@ -1,31 +0,0 @@
-
-# Одиннадцатое занятие
-
-## Многопоточность. Параллельное выполнение.
-
-- Закон Мура
-- Закон Амдала
-
-
-
-## Потоки. Синхронизация
-- Потоки выполнения. Синхронизация.
-- Методы wait(), notify(), notifyAll() класса Object
-
-## Ленивая инициализация, JMM
-- Параллелизм в Java
-- Реализация Singleton в JAVA
-- Double checked locking
-- Java Memory Model. final, volatile
-- Initialization-on-demand holder idiom
-
-### Ресурсы
-- Алексей Владыкин, Основы многопоточность в Java
-- Виталий Чибриков, Java. Многопоточность
-- Computer Science Center, курс Параллельное программирование
-- Юрий Ткач, курс Advanced Java - Concurrency
-- Головач, курс Java Multithreading
-
-## Домашнее задание
-- Реализовать deadlock
-- Взаимная блокировка
diff --git a/lesson/lesson12.md b/lesson/lesson12.md
deleted file mode 100644
index 47156cdd..00000000
--- a/lesson/lesson12.md
+++ /dev/null
@@ -1,35 +0,0 @@
-
-# Двенадцатое занятие
-
-## Разбор Домашнего Задания-11: реализация dead lock.
-
-## java.util.concurrent
-- Обзор java.util.concurrent.*
-- Compare-and-swap
-- Справочник по синхронизаторам java.util.concurrent.*
-- Использование ThreadLocal переменных
-
-> Замечания по видео:
-
- ThreadLocal DATE_FORMAT = new ThreadLocal() {
- @Override
- protected SimpleDateFormat initialValue() {
- return new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
- };
- };
-
-можно написать через лямбду:
-
- ThreadLocal.withInitial(() -> new SimpleDateFormat("dd.MM.yyyy HH:mm:ss"));
-
-А лучше использовать потокобезопасный `DateTimeFormatter` Java 8 Time API:
-
- DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss");
-
-## Разбор домашнего задания 10го урока
-
-## Домашнее задание:
-- Установить PostgreSQL
-- Посомтреть на реляционные базы данных и SQL:
- - Введение в базы данных
- - Основы SQL
diff --git a/lesson/lesson13.md b/lesson/lesson13.md
deleted file mode 100644
index 2ad74ff1..00000000
--- a/lesson/lesson13.md
+++ /dev/null
@@ -1,29 +0,0 @@
-
-# Тринадцатое занятие
-
-### Базы данных. Реляционные СУБД. PostgreSQL
-- DB-Engines Ranking
-- Реляционная СУБД
-- Введение в базы данных
-- Реляционные базы vs NoSQL. SQL. Денормализация. PK, FK, Cascade
-- PostgreSQL. Надёжность
-- Создание базы резюме. Работа с базами данных из IDEA
-- IDEA Database tools.
-
-### Конфигурирование данных в Java проекте
-- Properties sample
-- Конфигурирование DB и каталога хранения
-
-### Подключение DB в проект
-- JDBC. JDBC Architecture.
-- ConnectionFactory. Реализация SqlStorage.
-- Ресурсы:
- - Книга: Семь баз данных за семь недель. Введение в современные базы данных и идеологию NoSQL
- - Работа с базами данных с помощью JDBC драйвера
- - Уроки по JDBC
-
-###  Домашнее задание HW13
-- Доделать `SqlStorage` без контактов и секций.
- - Для работы с DB надо в lib и проект добавить драйвер базы данных
- - Запустить `SqlStorageTest` (в `AbstractStorageTest` контакты и секции закоменченны), креденшелы к базе взять из `Config`
-- Вынести общий код (`getConnection(), prepareStatement, catch SQLException`) в класс `SqlHelper`.
diff --git a/lesson/lesson14.md b/lesson/lesson14.md
deleted file mode 100644
index f625d1d0..00000000
--- a/lesson/lesson14.md
+++ /dev/null
@@ -1,26 +0,0 @@
-
-# Четырнадцатое занятие
-
-### Разбор HW13
-
-### JOIN
-- LEFT, RIGHT, INNER JOIN
-- Добавляем в `SqlStorage` контакты
-
-### Транзакции.
-- Транзакция. ACID. Уровни изоляции транзакций.
-- Уровни изоляции транзакций в SQL
-- Добавляем в `SqlStorage` транзакции
-- Batch execute.
-
-### Установка/запуск Tomcat
-- Скачать и установить Tomcat 8. Устанавливать лучше простым копированием из архива в каталог (в том числе и для unix). Следите чтобы в пути не было пробелов и национальных букв.
-- Для доступа к Tomсat Manager добавьте в конфигурацию Tomcat `TOMCAT_HOME\conf\tomcat-users.xml` права:
-```
-
-```
-- Запуск из `TOMCAT_HOME\bin\`: `catalina.bat start`
-
-## Домашнее задание HW14
-- Закончить реализацию `SqlStorage` с контактами
-- Добавить `TextSection` в базу данных (`init_db.sql`) и `SqlStorage`.
diff --git a/lesson/lesson15.md b/lesson/lesson15.md
deleted file mode 100644
index 4939684e..00000000
--- a/lesson/lesson15.md
+++ /dev/null
@@ -1,26 +0,0 @@
-# Пятнадцатое занятие
-
-### Разбор HW14
-
-### HTML, Tomcat
-- Протокол HTTP. Смотрим демо приложение в Chrome -> Инструменты разработчика
-- Добавление в проект Web Facet. web.xml. Постороение/cтруктура WAR. Статические ресурсы.
-- Настройка и деплой в Tomcat. Tomcat manager.
-- Запуск Tomcat из IDEA. Динамическое обновление без передеплоя.
-
-### Сервлеты
-- Создаем Servlet. Параметры. Кодировка.
-- Дополнительно:
- - How do servlets work?
- - Язык программирования Java и среда NetBeans: Введение в сетевое программирование
- - Основы работы с HTML
- - Учебник HTML
- - Технологии Java для разработки веб-приложений
- - Таблицы стилей CSS
- - Основы JavaScript
-
-## Домашнее задание HW15
-- Сделать реализацию `SqlStorage.getAll` через 2 отдельных запроса: отдельно резюме и отдельно контакты.
-- Добавить в реализацию `SqlStorage` и в базу секции (кроме `OrganizationSection`). Для `ListSection` склеиваем строки через `\n`.
-- Сделать отображение таблицы резюме в сервлете.
- - HTML таблицы
diff --git a/lesson/lesson16.md b/lesson/lesson16.md
deleted file mode 100644
index 6e431f31..00000000
--- a/lesson/lesson16.md
+++ /dev/null
@@ -1,21 +0,0 @@
-# Шестнадцатое занятие
-
-### Разбор HW15
-- Почему вы никогда не должны использовать MongoDB
-- Жизненный цикл сервлета
-- Tomcat maxThreads configuration
-
-### JSP
-- Что такое JSP. Wiki JSP
-- Predefined Variables in JSP
-- Стандартные элементы action
-- How to use relative paths in JSP
-- Отличие Redirect от Forward
-
-### JSTL
-- JSTL
-- JSTL для написания JSP страниц
-
-## Домашнее задание HW15
-- Доделать логику сервлета
-- Дополнить отображение и редактирование JSP секциями
diff --git a/lesson/lesson17.md b/lesson/lesson17.md
deleted file mode 100644
index e2cbc7c8..00000000
--- a/lesson/lesson17.md
+++ /dev/null
@@ -1,24 +0,0 @@
-# Семнадцатое занятие
-
-### Разбор HW16
-
-### Деплой в Heroku
-- Deployment with the Heroku CLI
-
-### Classloader
-- Загрузка классов в Java
-- Apache Tomcat Class Loader
-
-## Обзор Java Enterprise
-- Из юниоров в разработчики: получаем первую работу
-- Java Tools and Technologies Landscape for 2014
-- Java Tools and Technologies Landscape Report 2016
-
-#### Spring Pet-Clinic
-- Spring PetClinic Sample Application
-- Demo
-- Presentation
-
-#### Java Enterprise project Topjava
-- Java Enterprise: Вводное занятие
-- Demo приложение
diff --git a/lesson/lesson2.md b/lesson/lesson2.md
deleted file mode 100644
index 1e9066ff..00000000
--- a/lesson/lesson2.md
+++ /dev/null
@@ -1,41 +0,0 @@
-
-# Второе занятие
-
-## Принципы ООП.
-- Методология процедурно-ориентированного и объектно-ориентированного программирования
-- Объекты (cостояние, поведение, уникальность)
-- Классы. Инкапсуляция. Наследование. Полиморфизм.
-- Основы Объектно-Ориентированного Программирования (ООП)
-- Типы отношений между классами Наследование, агрегация, композиция, ассоциация.
-- Достоинства/Недостатки ООП. Библиотеки vs фреймворки.
-- Дополнительно:
- - Что такое ООП и с чем его едят?
- - Объектно ориентированное программирование
- - Николай Алименков — Парадигмы ООП
- - Концепции объектно-ориентированного программирования
-
-### Структура памяти: куча, стек, регистры, константы
- - JVM изнутри - оптимизация и профилирование.
- - Stack and Heap
- - Дополнительно:
- - Из каких частей состоит память java процесса.
- - Permanent область памяти
- - Java thread stack
- - Размер Java объектов
-
-### Типы данных. Пакеты.
- - Типы данных
- - Классы- оберки
- - Ссылочные типы
- - Пакеты
- - Модификаторы доступа. Область Видимости.
-
-## Домашнее задание
-
-> Правка к видео: ArrayStorage.delete() - вместо `storage[i] = null` нужно `storage[size-1] = null`
-
-- Прочитать Соглашения по именованию.
-- Реализовать `ArrayStorage.update`
-- Сделать проверки: в `update/delete/get` - резюме есть в storage, в `save`- нет в storage: `System.out.println("Resume ...")`.
-- Сделать в save проверку на переполнениеe: `System.out.println("...")`.
-- Избавится от дублирования в коде `ArrayStorage`
diff --git a/lesson/lesson3.md b/lesson/lesson3.md
deleted file mode 100644
index 36b8407f..00000000
--- a/lesson/lesson3.md
+++ /dev/null
@@ -1,24 +0,0 @@
-
-# Третье занятие
-
-## Разбор Домашнего Задания-2
-
-## Объектная модель в Java
-- static
-- Object. Контракт equals/hashCode
-- Интерфейсы
-- Полиморфизм, abstract
-- [Java Core. Вопросы к собеседованию](http://info.javarush.ru/translation/2014/02/12/Java-Core-Вопросы-к-собеседованию-ч-1.html)
-
-## Сложность алгоритмов
-- Алгоритмы и структуры данных для начинающих: сложность алгоритмов
-- Time complexity
-- Временная сложность алгоритма
-- Вычислительная сложность
-
-## Паттерн проектирования Шаблонный метод
-- Шаблонный метод
-
-## Домашнее задание
-- Закончить реализацию `AbstractArrayStorage`, `ArrayStorage`, `SortedArrayStorage` (`SortedArrayStorage` хранит элементы отсортированными, сортировать весь массив не надо).
-- Сделать проверку `ArrayStorage.update`
diff --git a/lesson/lesson4.md b/lesson/lesson4.md
deleted file mode 100644
index 4207304b..00000000
--- a/lesson/lesson4.md
+++ /dev/null
@@ -1,28 +0,0 @@
-
-# Четвертое занятие
-
-## Разбор Домашнего Задания-3
-
-## Работа со строками.
-- Строки в Java. Кодировка.
-- Управление строками, функции для работы со строками в Java.
-- StringBuilder vs StringBuffer
-- String literal pool
-
-## Исключения
- - Исключения (Exceptions).
- - "Java. Эффективное программирование" Джошуа Блох: Исключения.
- - Конструктор. this, super
-
-
-
-## Reflection. Аннотации. Модульное тестирование
- - Аннотации
- - Введение в Java Reflection API
- - Модульное тестирование JUnit 4
- - Тестирование с помощью JUnit (Test Case)
-
-
-## Домашнее задание
-Реализовать `AbstractStorageTest` и тесты `ArrayStorageTest` и `SortedArrayStorageTest`.
-В `MainReflection` сделать вызов метода `toString` через отражение.
diff --git a/lesson/lesson5.md b/lesson/lesson5.md
deleted file mode 100644
index 169a361c..00000000
--- a/lesson/lesson5.md
+++ /dev/null
@@ -1,15 +0,0 @@
-
-# Пятое занятие
-
-## Разбор Домашнего Задания-4
-
-## Контейнеры/коллекции.
-- List, Set, Map, Queue, Iterator, ListIterator
-- Структуры данных в картинках
-- Инициализация полей в Java
-- Java собеседование по коллекциям
-- [Часто задаваемые на собеседованиях вопросы по классам коллекциям в Java](http://info.javarush.ru/translation/2013/10/08/Часто-задаваемые-на-собеседованиях-вопросы-по-классам-коллекциям-в-Java-Часть-2-.html#1)
-- [Собеседование по Java — коллекции](http://javastudy.ru/interview/collections/)
-
-## Домашнее задание
-Выделить общий класс `AbstractStorage` и реализовать подклассы `ListStorage` и `MapStorage`. Выбор реализации List и Map за вами.
diff --git a/lesson/lesson6.md b/lesson/lesson6.md
deleted file mode 100644
index 3295fbb7..00000000
--- a/lesson/lesson6.md
+++ /dev/null
@@ -1,20 +0,0 @@
-
-# Шестое занятие
-
-## Разбор Домашнего Задания-5
-- Преобразования Integer и int
-
-## Iterator / Iterable. Вложенные, внутренние, локальные и анонимные классы.
-- Iterator / Iterable.
-- Вложенные и внутренние классы. Примеры в Collections API: Arrays.asList, ArrayList.iterator
-- Локальные и анонимные классы. Comparator
-
-## Новое в Java 8.
-- Lambda выражения. Default методы для Interface.
-- Встроенные функциональные интерфейсы.
-
-## Домашнее задание
-- Сделать рефакторинг тестов: `saveOverflow` должно быть только для Array реализаций.
-- Рефакторинг: в конструктор Resume добавить второй параметр `fullName`
-- Сделать рефакторинг всех реализаций `Storage`: заменить метод `Resume[] getAll()` на `List getAllSorted()`
-- Реализовать до конца `MapUuidStorage`. Подумать что еще может быть search key в реализации на основе Map.
diff --git a/lesson/lesson7.md b/lesson/lesson7.md
deleted file mode 100644
index 30494c95..00000000
--- a/lesson/lesson7.md
+++ /dev/null
@@ -1,46 +0,0 @@
-
-# Седьмое занятие
-
-## [Разбор Домашнего Задания-6](lesson6.md#Домашнее-задание)
-
-## Параметризация. Стирание типов.
-- Дженерики (Java, обучающая статья)
-- Обобщения (Generic)
-- Ограничения.
-
-## Логирование
-- Log4J (Apache logging)
-- Java Logging API - Tutorial
-- Логирование в Java / quick start
-- Ведение лога приложения
-- Java Logging: история кошмара
-
-## Синглетон, Enum
-- Одиночка (шаблон проектирования)
-- Перечисляемые типы (enum) в Java
-
-## Домашнее задание:
-Доменный объект
-
-Cделать объектную модель резюме (диаграмма и классы). Образец резюме (делаем упрощенно)
- - Делать только классы, включаемые в Resume. Resume - главный класс. В него все включается (композиция - строгий вид агрегации).
- - Схожие по структуре и функциональности сущности делаем одним классом.
- - Модель упрощаем для хранения только необходимой информации для вывода/ редактирования резюме.
- - В модели резюме должны быть представлены контакты и следующие разделы:
- - PERSONAL("Личные качества")
- - OBJECTIVE("Позиция")
- - ACHIEVEMENT("Достижения")
- - QUALIFICATIONS("Квалификация")
- - EXPERIENCE("Опыт работы")
- - EDUCATION("Образование")
- - В секциях Достижения и Квалификация хранить список строк
- - Учесть в классах модели, что обработка резюме (вывод в html, сохранение, чтение) будет сделано следующим образом:
-обработка `fullName`, цикл обработки по контактам, цикл обработки по секциям (для секций использовать полиморфизм, как для фигур: круг, квадрат..).
-При добавлении/удалении новых видов контактов (например домашний телефон) или разделов изменения в коде (и БД) должны быть минимальны.
-
-#### Инструменты для рисования:
-
-- Generate class diagram in IntelliJ IDEA (Help: working with Diagrams)
-- Нарисовать и сфотографировать
-- Online: www.draw.io
-- yEd - Graph Editor
diff --git a/lesson/lesson8.md b/lesson/lesson8.md
deleted file mode 100644
index d7336ade..00000000
--- a/lesson/lesson8.md
+++ /dev/null
@@ -1,21 +0,0 @@
-
-# Восьмое занятие
-
-## Разбор Домашнего Задания-7: объектная модель резюме
-
-## Работа с датами и временем
-- Класс Date, Calendar, TimeZone
-- Java – Convert date and time between timezone
-- Joda Time library
-- Java 8 Date API
-
-## Работа с файлами и ресурсами.
- - File. Работа с файловой системой.
- - Работа с ресурсами. Правильно освобождаем ресурсы в Java
- - Java 7 try-with-resources
-
-## Домашнее задание
-- Переделать модель резюме: учесть, что на одной работе (в одном учебном заведении) можно работать/ учиться в разные периоды и при этом имя организации не дублируется
-- Сделать рекурсивный обход и вывод имени файлов в каталогах и подкаталогах (корневой каталог- ваш проект)
-- Заполнить в `AbstractStorageTest` резюме данными
-- Реализовать `AbstractFileStorage`, базовый класс для хранения резюме в файлах.
diff --git a/lesson/lesson9.md b/lesson/lesson9.md
deleted file mode 100644
index de787f63..00000000
--- a/lesson/lesson9.md
+++ /dev/null
@@ -1,25 +0,0 @@
-
-# Девятое занятие
-
-## Разбор Домашнего Задания-8:
-
-## Ввод/вывод
-- Пакет java.io
-- Паттерн Декоратор.
-- Классы Reader и Writer.
-
-## Сериализация
-- Сериализация объектов (serialization)
-- Реализация Storage используя сериализацию.
-
-## NIO
-- NIO Java 7
-- Чтения строк из файла
-
-## Основы Java 8 Stream API
-- Потоки
-
-## Домашнее задание
-- Сделать рекурсивный вывод каталогов с отступом
-- Реализовать Storage через java.nio.file.Path.
-- Сделать возможным выбор меджу FileStorage и PathStorage для сериализации через ObjectStream.
diff --git a/src/MainArray.java b/src/MainArray.java
index b1cb33b7..063364db 100644
--- a/src/MainArray.java
+++ b/src/MainArray.java
@@ -13,7 +13,7 @@ public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
Resume r;
while (true) {
- System.out.print("Введите одну из команд - (list | save uuid | delete uuid | get uuid | clear | exit): ");
+ System.out.print("Введите одну из команд - (list | size | save uuid | delete uuid | get uuid | clear | exit): ");
String[] params = reader.readLine().trim().toLowerCase().split(" ");
if (params.length < 1 || params.length > 2) {
System.out.println("Неверная команда.");
@@ -68,4 +68,4 @@ static void printAll() {
}
System.out.println("----------------------------");
}
-}
\ No newline at end of file
+}