-
-
-Я хочу подчеркнуть этот момент.
-
->Когда вы смотрите видео, вам может казаться, что вы все понимаете, но, поверьте, когда вы попытаетесь повторить это самостоятельно, у вас возникнет множество вопросов и сложностей. Практика - это важнейшая часть обучения, не пропускайте ее.
-
-На нашем курсе мы:
-- обсуждаем занятия с коллегами и преподавателями в Slack - эффективность 50%
-- выполняем практические домашние задания по каждой пройденной теме - 75%
-- помогаем коллегам и разрабатываем собственный выпускной проект - 90%
-
-### О проверке домашних заданий
-Также очень важная часть обучения - проверка
-ваших домашних заданий и ревью выпускного
-проекта нашими кураторами.
-
->**Это самый эффективный способ научиться программировать!**
-
-При устройстве на работу, на собеседовании обязательно
-задавай вопрос про ревью кода.
-Если его нет, фирма занимается разработкой
-непрофессионально? и рост там будет достаточно
-медленным и ограниченным.
-
-В ревью укажут именно твои ошибки
-в стиле, структурах данных, алгоритмах и кодировании.
-До вечера вторника участники шлют ссылку
-на свой GitHub-репозиторий с домашним
-заданием занятия, проверка делается
-ассистентами, результат пишется в Slack.
-Получается эффективно и оперативно.
-
-После проверки можно исправить замечания
-и пройти ее еще раз.
-
-В конце стажировки делается ревью вашего выпускного проекта.
-
-
-### Участие на стажировке: ожидания и реальность
-
-Давайте кратко обсудим, чем курс TopJava является
-и чем он не является, что следует от него ожидать
-и чего не следует.
-
-#### 1-й тип ложного представления о стажировке:
-
->Я увижу, как с нуля строится web-приложение A с использованием технологий B, просмотрю видео по темам, этого будет достаточно
-
-
-
-Почему такой подход не верный:
-TopJava - это стажировка, поэтому НЕ рассчитывайте
-пройти ее на диване с пакетом поп-корна.
-Тебе придется на ней РАБОТАТЬ (выполнять ДЗ,
-самостоятельно решать какие-то задачи, читать логи,
-дебажить, ходить на StackOverflow и даже думать
-об этом, засыпая)
-
-#### 2-й тип ложного представления о стажировке:
->Меня научат шаблонам работы с технологией А, и я
-> смогу их применять в любой ситуации
-
-Почему это тоже не вполне верный подход:
-Используемые на стажировке технологии представляют
-собой инструменты, которые позволяет сделать
-что-то проще. Мы поделимся практикой их использования,
-неочевидными особенностями и т. п., покажем
-"грабли", на которые вы рано или поздно наступите.
-Нет гарантии, что, устроившись на работу, вы
-увидите точно такие же подходы.
-Все проекты и команды индивидуальны: используются
-различные инструменты и различные решения.
-Столкновение с технологиями, с которыми
-ты ранее не был знаком, - это нормальная
-часть жизни любого программиста. Нужно быть к этому готовым.
-
-Хорошее представление о решении проблем
-дает поиск на StackOverflow, где почти
-на любую проблему дается большое количество
-вариантов решения. Поиск решений и выбор
-лучшего - это основная работа Java-разработчика,
-и мы максимально постараемся этому научить:
-каждый раз в конкретной ситуации вы должны
-будете САМИ думать, что применять и как.
-Выполняя домашние задания, вы должны приложить
-все усилия, чтобы самостоятельно найти решение.
-Далее в начале следующего занятия вы также
-посмотрите разбор решения, подготовленного
-Григорием Кислиным.
-
-#### 3-й вариант ошибочного представления о стажировке TopJava связан с неверным представлением о том зачем нужна проверка домашних заданий. Например, человек может ошибочно рассуждать так:
-
->я хочу проходить стажировку с проверкой ДЗ,
-> чтобы мне рассказали, как нужно правильно выполнять задания
-
-Задача проверки не в том, чтобы общими усилиями
-написать код, который ты и так увидишь в разборе.
-Если у тебя что-то не получается, наша
-задача - не найти ошибку/подебажить за тебя/почитать
-логи и т. п., а подсказать способ самостоятельно
-найти решение (хотя для этого мы сначала сами
-ищем/дебажим/читаем)
-Вторая важная задача, которую решает
-проверяющий, - увидеть то, что не увидел ты.
-Когда ты сдаешь задание на ревью, тебе
-может казаться, что все почти идеально. Проверяющий
-подскажет тебе, где ты что-то пропустил из-за
-недостатка опыта, что позволит тебе улучшить код.
-
----
-
->Любое знание стоит воспринимать как подобие семантического дерева: убедитесь в том, что понимаете фундаментальные принципы, то есть ствол и крупные ветки, прежде чем лезть в мелкие листья-детали. Иначе последним не на чем будет держаться
-— Илон Маск
-
-Обычно в занятии дается много дополнительного
-материала и ссылок. Не стоит стремиться прочитать
-все ссылки урока, их можно использовать как
-справочник. Гораздо важнее пройти основной
-материал урока и сделать домашнее
-задание - этого достаточно для усвоения
-материала и получения той самой
-основы - ствола и крупных веток, на
-которых впоследствии можно наращивать листву.
-
-
-Как правило, подбираются участники разного
-уровня. Поэтому главное – не стеснятся
-задавать вопросы (после самостоятельного
-гугления и поиска решения). Всегда есть
-поддержка группы (в том числе от пришедших
-на бесплатный повтор участников), моя и ассистентов.
-
----
-### Основные навыки программиста, которые необходимо развить на курсе
-Давайте перечислим набор навыков, которые
-вам необходимо развивать в ходе курса
-и которые необходимы любому программисту:
-
-- умение и привычка искать
-информацию, чтобы иметь больший выбор из
-доступных вариантов технологий и подходов
-к решению задачи, умение пользоваться StackOverflow;
-- умение пользоваться дебаггером в Intellij Idea;
-- умение пользоваться DevTools в браузере;
-- определенный кругозор и опыт для того, чтобы придумывать поисковые запросы.
diff --git a/doc/video4.md b/doc/video4.md
deleted file mode 100644
index 7d9b00716dca..000000000000
--- a/doc/video4.md
+++ /dev/null
@@ -1,110 +0,0 @@
-## Структура приложения (многоуровневая архитектура)
-##  [Видео](https://drive.google.com/file/d/1UHzSy9i-uonmTMFoR5v69Y-vyWLCLQWd)
-
-Приложение, которое мы будем разрабатывать, это [программа для подсчета калорий](http://javaops-demo.ru/topjava).
-
-В этом видео обсудим структуру этого приложения.
-
----
-Ссылки на отчеты, которые будут использоваться в этом уроке:
-
-- [Многоуровневая архитектура (русскоязыная статья в Wikipedia)](https://ru.wikipedia.org/wiki/%D0%9C%D0%BD%D0%BE%D0%B3%D0%BE%D1%83%D1%80%D0%BE%D0%B2%D0%BD%D0%B5%D0%B2%D0%B0%D1%8F_%D0%B0%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0)
-- [Multitier architecture (англоязычная статья в Wikipedia)](https://en.wikipedia.org/wiki/Multitier_architecture)
-
----
-
-
-
-На структурной схеме приложения вы видите, что оно условно разделено на 4 части: **Views**,
-**Controller**, **Service** и **Repository**.
-
-Такой подход является реализацией многоуровневой архитектуры в программировании.
-По-английски этот подход называется **_Multitier architecture_**.
-
-Его суть заключается в разделении приложения на несколько слоев,
-каждый из которых ответственен за конкретную задачу.
-
-### Слой отображения (View)
-Views соответствует слою отображения (или presentation layer). Это user interface (UI) или
-фронтенд - все то, что мы видим и с чем взаимодействуем в браузере.
-В качестве View могут быть HTML-страницы, созданные с использованием специальных
-движков шаблонов, например, JSP (встроен в Tomcat), или
-Thymeleaf (шаблоны по умолчанию в Spring Boot), или отдельное frontend-приложение,
-написанное на одном из JavaScript-фреймворков.
-
-В случае с движками шаблонов HTML-страницы будут располагаться в одном проекте
-с основным кодом приложения. Для приложений с "небогатым" UI используются именно шаблоны.
-Этот подход отличается от так называемых RIA - rich internet application - приложений со сложным UI.
-
-Главное отличие rich internet application от приложений с фронтендом
-на движках шаблонов заключается в том, что фронтенд, созданный на движке
-шаблонов, работает на сервере, и это что-то простое.
-В случае с rich internet application фронтенд-приложение загружается
-через Интернет к вам на компьютер и запускается в браузере.
-Оно может быть максимально сложным и выполнять функции традиционных
-десктоп-приложений.
-Иногда в одном приложении смешиваются оба способа: например, страница
-логина-пароля в RIA делаются на шаблонах.
-
-Создание простого фронтенда на движке шаблонов проще, поэтому
-в курсе мы будем использовать этот способ.
-
-### Слой контроллеров (Controller)
-Следующий слой, который мы видим - это **Controller**.
-
-В многоуровневой архитектуре он соответствует слою, который
-называется "**_Слой приложения_**" или "**_Application layer_**").
-В GRASP (General Responsibility Assignment Software Patterns)
-он так и называется - Controller layer.
-
-Это слой приложения, который ответственен за обработку HTTP-запросов и проверку корректности входных данных. Если мы открываем главную страницу на сайте или отправляем заполненную на сайте форму, фронтенд-приложение отправляет HTTP-запрос серверу (в нашем случае контейнеру сервлетов), который принимает запрос и перенаправляет его в контроллер, соответствующий введенному в браузере URL или адресу, который вызывается при отправке формы через сайт.
-Также контроллеры могут принимать запросы не только от фронтенда, но и от других приложений.
-
-Слой контроллеров не имеет доступа к базе данных. Контроллеры общаются только с сервисами.
-
-### Слой сервисов (Service layer)
-Слой **Service** на схеме приложения соответствует слою
-бизнес-логики (или **_Business layer_**) в многоуровневой архитектуре.
-В слое Service инкапсулирована вся бизнес-логика нашего приложения.
-Если коммуникация с фронтендом или другими приложениями - это ответственность контроллеров,
-то обработка данных - это ответственность сервисов.
-
-### Слой доступа к данным (Data layer)
-Слой сервисов общается со слоем, ответственным за работу с базами данных.
-Этот слой называют **Data layer** (также можно встретить
-названия **Persistence Layer** или **Data access layer**), и он
-представлен в виде **_Data Access Object_** классов
-(коротко - **_DAO-классы_**) или классов, реализующих паттерн "репозиторий".
-С обоими видами классов вы попрактикуетесь в ходе курса.
-[Репозиторий - это также один из архитектурных паттернов](https://martinfowler.com/eaaCatalog/repository.html)
-
-Подобное разделение приложения на слои дает гибкость
-и существенно упрощает доработку и переиспользование приложения.
-Например, создав по такому принципу приложение,
-содержащее слои репозиториев, сервисов и контроллеров,
-мы в дальнейшем можем легко использовать это приложение
-с различными фронтенд-приложениями или мобильными приложениями.
-Если мы решим перейти на другую базу данных, мы можем
-переписать только слой репозиториев, и нам не требуется
-вносить изменения в слои сервисов и контроллеров.
-
->Для маленького приложение такой подход может показаться
->избыточно сложным, но по мере расширения это является спасением.
-
-Подавляющее большинство реальных приложений построено с использованием именно этой архитектуры.
-
-### Краткие итоги
-В этом видео мы познакомились с концепцией многоуровневой архитектуры,
-которую мы применим при создании приложения на курсе.
-Многоуровневая архитектура предполагает разделение приложения на слои:
-- Views - слой отображения является фронтендом;
-- Controller - слой приложения ответственен за прием и валидацию входных данных;
-- слой Service включает в себя весь код, отражающий бизнес логику;
-- Repository или Data layer отвечает за взаимодействие с базой данных.
-
-Также мы обсудили какие преимущества дает такой подход.
-Среди преимуществ в первую очередь возможность повторного
-использования различных слоев и упрощение их доработки и изменения.
-
-
-
diff --git a/doc/video5-vcs-git.md b/doc/video5-vcs-git.md
deleted file mode 100644
index 7a172e517bc8..000000000000
--- a/doc/video5-vcs-git.md
+++ /dev/null
@@ -1,180 +0,0 @@
-## Системы управления версиями, Git
-##  [Видео](https://drive.google.com/file/d/1uFjIsxsaSAXxFSwSpjJIGK7Ug2VXf6yH)
-
-video5-vcs-git.md
-
-В этом уроке мы рассмотрим системы управления версиями
-и самую популярную из них - Git.
-
----
-* [StackOverflow 2021 survey](https://insights.stackoverflow.com/survey/2021#technology-most-popular-technologies)
-* [Введение в Git и GitHub: установка и настройка](https://topjava.ru/blog/vvedeniye-v-git-github-ustanovka-i-nastroyka)
-* [Введение в Git и GitHub: базовые команды](https://topjava.ru/blog/vvedeniye-v-git-github-bazovyye-komandy)
-* [Введение в Git и GitHub: ошибки использования](https://topjava.ru/blog/vvedeniye-v-git-oshibki-ispolzovaniya-ch-9)
-* [Бесплатная русскоязычная книга Pro Git](https://git-scm.com/book/ru/v2/)
----
-
-Git является де-факто стандартом среди систем управления версиями.
-Опрос, проведенный StackOverflow в 2021 году показывает,
-что Git используют почти 95% опрошенных разработчиков.
-
-Когда-то популярная централизованная система контроля
-версий SVN (Subversion) практически полностью заменена Git.
-Но некоторые большие проекты все еще используют SVN.
-Примером такого проекта является WordPress.
-Я также все еще иногда встречаю SVN в вакансиях российских компаний.
-
-### Что такое Git и GitHub
-В ходе курса мы будем использовать Git.
-Git - это распределенная система управления версиями.
-Это означает, что код, над которым работает команда,
-и ранее сохраненные (закоммиченные) версии проекта
-хранится на компьютерах каждого члена команды,
-а также в удаленном репозитории, который можно
-сравнить с облачным хранилищем.
-
-Некоторые путают Git и GitHub, но это не одно и то же.
-
-**Git** — это утилита, которую
-программист устанавливает у себя на компьютере для
-сохранения состояний проектов и контроля версий проекта.
-
-**GitHub** — это провайдер удаленных репозиториев,
-сайт (хостинг) для хранения кода проекта и его изменений,
-для обмена файлами с членами команды проекта.
-Программисты могут создавать на GitHub публичные репозитории,
-в которых код доступен всем. Компании могут приобрести платный
-аккаунт на GitHub и вести свои проекты в закрытых репозиториях,
-доступ к которым имеют только члены команды проекта.
-Существуют и другие подобные сайты - провайдеры удаленных
-репозиториев, например, BitBucket, SourceForge, GitLab и т. д.
-
-
-### Как работают Git и GitHub
-| Date | +Description | +Calories | ++ | + |
|---|---|---|---|---|
| + <%--${meal.dateTime.toLocalDate()} ${meal.dateTime.toLocalTime()}--%> + <%--<%=TimeUtil.toString(meal.getDateTime())%>--%> + <%--${fn:replace(meal.dateTime, 'T', ' ')}--%> + ${fn:formatDateTime(meal.dateTime)} + | +${meal.description} | +${meal.calories} | +Update | +Delete | +