# Предисловие
В 2015 году я начал обучать на платных "офлайн" и онлайн ИТ-курсах (по программированию, автоматизации тестирования и т.д.). Сначала я относился к этому как к временному заработку, совсем маленькому, но заработку за счет занятия делом, которое мне всегда приносило удовольствие - делиться опытом с другими, при этом структурируя знания и развиваясь самому. Со временем это занятие обросло четкой концепцией создания учебной программы и материалов, позволяющих начинающим ИТ-специалистам в быстрые сроки обучаться практическим навыкам, и главное - обучать обучаться. Помня и ценя свой собственный опыт самообучения, я строил программу на основе практических заданий с минимумом теории. Я старался не приподнести все секреты на блюдечке, наоборот, - предоставить возможность набить шишки студентам самим, но сделать это в ускоренном режиме, пройдя по специально разработанному маршруту, где будут встречаться реальные рабочие проблемы, которые я собирал годами своего опыта в IT.
Сфера обучения также меня интересовала, и продолжает интересовать - как источник специалистов для моих проектов. Я заметил, что надежней находить начинающих способных инженеров и обучать их нужным навыкам, чем переучивать "старичков", уровень знаний которых часто несоизмеримо мал по сравнению с их эгом:)
Со временем я заметил, что обычный формат курса с преподавателями и менторами - довольно тяжел в поддержке, и сложнее масштабируется. Так и появилась идея перевести его в формат книги.
В этой книге учащемуся предлагается пройти полный путь построения автоматизации небольшого веб-приложения с помощью решения серии заданий, которые так или иначе ждут его и в реальном проекте. При этом перед началом работы над каждым заданием дается минимум теоретических знаний, которые могут быть доступны либо в самой книге, либо по ссылкам на другие публичные ресурсы. Если знаний уже должно быть достаточно - урок с теорией может быть упущен совсем.
Далее, в процессе работы над заданием, встречаясь с затруднениями и проблемами, если "гугл не помог", студент может подсматривать в следующий за заданием раздел с решением. Раздел может содержать детальное описание процесса решения задачи, или список с частыми вопросами и ответами, или список с частыми ошибками и их решениями. После самостоятельного выполнения задания, учащийся сможет окончательно себя проверить по этому же разделу.
На данный момент книга все еще находится в разработке. Поддержать которую можно купив книгу по рекоммендуемой цене на сайте [leanpub.com](https://leanpub.com/selenide-automation-ru). Новые главы будут выходить со временем, без четких пределов по срокам. Но есть желание закончить теоретические разделы по 10-тый включиельно до конца весны 2020 года. Самое же полезное содержание книги - это списки частых ошибок и их решений. Именно структурирование этой информации занимает самое большое время и соответствующие разделы с решениями будут добавлятся дольше. Пока книга наполняется этой информацией, программа разделов с 0 по 4-тый доступна в виде онлайн-курса, где решения проверяются в стиле код-ревью мной и менторами. Записаться на курс можно обратившись по почте yashaka@gmail.com.
Программа и статус готовых разделов:
* 00 Введение в Selenide
* 01 Начало. Проверка Концепции
* 02 Пересмотр. Рефакторинг Теста - Часть 1
* 03 Закалка. Расширение покрытия. Атомарные тесты
* 04 Структура и переиспользование. Рефакторинг Тестов - Часть 2 (PageObjects)
* Введение в PageObject
* [TODO] Виджеты
* [TODO] 05 Отчетность
* 06 Тестовые наборы
* [TODO] 07 Параметризация
* [TODO] 08 Масштабирование. Грид
* [TODO] 09 Интеграция. CI
* [TODO] 10 Оптимизация. Параллелизация
* [TODO] A1 Обзор Selenium Webdriver в сравнении с Selenide
* A2 Кратко о BDD
В процессе написания книги эта программа может изменятся.
К книге прилагаются рабочие образцы кода из теоретических разделов, а также решения соответствующих заданий. Некоторые главы могут сопровождаться видео, выложенном в публичный доступ или доступном среди дополнительных материалов прилагаемых к книге.
Пока книга находится в разработке, будь готов к присутствию "багов", опечаток и неточностей. Список известных:
* не работают ссылки в содержании для некоторых разделов