Хардкорная веб-разработка
всё, что нужно уметь мощному разработчику под веб
Чтобы быть эффективным веб-разработчиком — неважно, backend, frontend, fullstack — мало знать только синтаксис выбранного языка программирования, например, Python или JavaScript. Для уверенной разработки веб-систем нужно иметь понимание и реальные навыки по всем технологическим блокам, работающим на разных слоях приложения.

Этих слоёв немало — это сам Интернет с его архитектурой и протоколами, это и серверные операционные системы Linux, и бэкенд-стек технологий, включающий в себя выбранный язык программирования, фреймворки, базы данных, системы планирования выполнения и прочее, это и целый спектр фронтенд-технологий.

Вне зависимости от того, работаешь ты бэкенд или фронтенд разработчиком, только фундаментальное понимание всех слоёв системы позволяет тебе быть эффективным, уверенным в своих силах специалистом, способным к красивому и эффективному решению задач веб-разработки.

Плюс — передовые методики разработки ПО. Асинхронные решения, автотесты, информационная безопасть, CI/CD.

Цель этого курса — дать тебе все необходимые навыки и закрепить их на практике.

Алексей Голобурдин
Автор курса
Для кого этот курс
Этот курс создан специально для тебя, если:

  • ты готов к хардкорному погружению в веб-разработку
  • ты ещё не начал погружаться в тему веб-разработки и хочешь начать это делать правильно — от фундамента к первому этажу и выше
  • ты уже начал изучать язык программирования, но как полноценно создавать веб-системы и как они работают, у тебя понимания нет
  • ты уже разрабатываешь веб-системы, но хочешь стать более эффективным мощным бойцом, понимающим, как всё работает на всех уровнях приложения
  • ты хочешь увидеть, как делаются настоящие большие веб-проекты и хочешь на реальной практике научиться делать такие же
  • ты хочешь научиться писать качественный код и выстраивать расширяемую архитектуру своих приложений
  • ты стажер, джун, мидл, сеньор, архитектор или президент компании (Билли, Гейтс, ты тоже приходи, потрындим)
Курс — это практика
Основа этого курса — практика. Подкрепляют практику сотни наглядных видео-уроков и текстовых материалов.

Благодаря наглядным демонстрациям, тебе не придётся сомневаться «как он это установил» или «как именно он это сделал» — ты видишь своими глазами все шаги. С момента установки Python на свой компьютер и до готового опубликованного на своём домене и своих серверах большого проекта (rroom), все шаги со всеми объяснениями.

Тесты и практические задания на курсе делятся на две категории. Одни задания проверяются автоматически платформой курса, которую мы специально разработали для него. Другие задания проверяются лично автором курса. Это и задания со свободной формой ответа, и задания на программирование с код-ревью автора курса, и комплексные большие проекты, которые вы будете делать на курсе.

Вся коммуникация по данному курсу проходит только с автором. С одной стороны, это позволяет тебе получить максимально качественную поддержку и обратную связь во время прохождения курса, с другой — это не позволяет сделать курс дешёвым. В больших образовательных компаниях стоимость курса обусловлена огромными затратами на маркетинг, в нашем же с тобой случае — на подготовку и ведение самого курса.
Формат курса
Курс включает в себя:
Более четырёхсот уроков
С видео и текстовой частью, ссылками на внешние материалы
Telegram чат
Общий Telegram-чат с живым общением участников программы между собой и с автором курса. Сообщество курса — важнейшая его часть
Созвоны и стримы
Еженедельные созвоны с демонстрациями, вопросами-ответами и обратной связью
Сотни тестов и заданий
Чтобы сразу закреплять материал и вырабатывать правильные навыки
Без расписания
Расписания нет, ты можешь проходить курс в любом удобном тебе режиме
Прямая коммуникация с автором
Код-ревью, вопросы автору курса, прямая (и местами почти круглосуточная) связь в Telegram-чате:)
Отзывы со Stepik о старом курсе 2021го года
... отзывы этого курса появятся, как только ты его пройдёшь:)
История этого курса
Идея разработки курса пришла после публикации видео Что должен знать Python веб-разработчик на YouTube канале «Диджитализируй!». Подписчики оставили много комментариев о том, что с удовольствием прошли бы образовательную программу от автора канала.

В течение года курс разрабатывался и вышел в апреле 2021го под названием «Основы компьтерных и веб-технологий с Python от Диджитализируй!».

Курс был запущен на платформе Stepik в апреле 2021, его проходили 687 человек.

Благодаря отличным отзывам и результатам студентов курс получил награду в конкурсе Stepik Awards и был признан лучший платным курсом 2021го года на платформе.

В январе 2022 приём новых студентов был приостановлен и с того момента началась подготовка второй, расширенной версии курса. Этот новый курс ты сейчас и видишь. Все материалы «Основ» в переработанном виде вошли и в «Хардкорную веб-разработку», но здесь глубины погружения, покрытия тем и практики значительно больше.
Своя LMS-платформа
А ещё мы разработали специально для этого курса свою LMS-платформу, Learning Management System. Ты будешь проходить курс на ней. Все текстовые и видео-материалы, все задания, вся практика, автопроверки кода, коммуникация по заданиям (в дополнение к Telegram-чату) и многое-многое другое — то, что позволит нам с тобой добиться максимальных результатов на курсе!
Почему мы разработали свою платформу?

Чтобы контролировать все этапы прохождения курса и иметь возможность влиять на все самые тонкие аспекты образовательного процесса. Например, платформа подготавливает аналитику о том, как вы проходите курс и помогает отслеживать ситуации, когда вам возможно необходима помощь.
Как создаются настоящие проекты?
Покажу на курсе
Изучив язык программирования, какой-то фреймворк и сталкиваясь затем с реальным проектом, зачастую мы не знаем, как к нему подступиться, как его правильно начать и как его правильно сделать.

На курсе я покажу реализацию книжного сервиса rroom.io — от дизайна до готового сайта, которым пользуются люди.

Rroom — это проект для тех, кто читает книги. Регистрация пользователей, ведение книжных подборок, отзывов, комментарии, стены, интеграция интернет-эквайринга для оплат на сервисе, реализация автоматизированной рекламы и многое другое.

Будет показан весь процесс разработки и весь используемый тулинг. Стек: Python, FastAPI, SQLAlchemy, PostgreSQL, Redis, Dramatiq, TypeScript, SolidJS. Конкурирующие фреймворки (Django, React) также найдут отражение в курсе.

А затем и ты на курсе реализуешь свой большой веб-проект, применив все полученные знания и навыки.
Оглавление курса
1. Подготовка

1. Цели курса

2. Как будет проходить курс

3. Границы тем курса

4. Как потратить время зря

5. Как получить от курса максимум

6. Многозадачность, сон, скорость

7. Задания, Google и ChatGPT

8. Разделы КОМП — Как Оно Мне Поможет

9. Задавайте вопросы

10. Платформа

11. Практика — rroom

12. Книги!.md

2. Как работает компьютер
1. Computer Science
2. Римские и арабские цифры
3. А если бы у нас было шесть пальцев
4. Когда ленточка — это всё, что нужно
5. Биты-байты
6. Шестнадцатеричная система счисления
7. Как научить электричество считать
8. Цифровая и аналоговая техника
9. Как Software меняет правила игры, Assembler
10. Hardware — основное компьютерное железо
11. Итоги
12. Дополнительные материалы
3. Программное обеспечение
1. Клавиатура, мышь, голос, мысль
2. Как достичь слепого набора текста
3. Операционные системы
4. Установка удобного эмулятора терминала
5. Установка GNU/Linux в Windows 10 с WSL
6. Переключение версии WSL
7. Установка Debian GNU/Linux в Oracle Virtualbox
8. Установка Debian GNU/Linux на Apple Silicon Mac с UTM
9. SSH-подключение к виртуальной машине
10. Искусственный интеллект коровы
11. Интеграция Windows и GNU/Linux с WSL
12. Кодировки и hex-дампы
13. Обходим защиту почтовых программ
14. Языки программирования
15. Эффективность языков программирования и программ
16. Компилятор и интерпретатор
17. Алгоритмы
18. Пример — бинарный поиск
19. Структуры данных
20. Как гуглить
21. Время, UTC, таймзоны, синхронизация
22. Итого
23. Дополнительные материалы
4. GNU/Linux
1. Из чего сделаны облака
2. Перемещения в пространстве (во времени будет дальше)
3. Маски-шоу
4. История команд и невероятные возможности
5. Редактирование команд
6. Философия Unix
7. Стандартный поток вывода
8. Стандартный поток вывода ошибок
9. Стандартный поток ввода
10. Каналы и конвейеры
11. Чёрная дыра
12. Тройничок — это хорошо
13. Создаём и удаляем
14. Чистота чисто Тайд
15. Консольные текстовые редакторы nano, micro, helix
16. Работаем только с нужными частями файла
17. Следим за изменениями вывода команды
18. Права суперпользователя
19. Осваиваем перемещение во времени
20. Псевдонимы
21. «Помогити!»
22. Переменные окружения HOME, USER, PWD
23. Переменная окружения PATH, команда type
24. Переменная окружения CDPATH
25. Основные директории GNU/Linux и их назначение
26. Жёсткие и символические ссылки
27. Пользователи и группы
28. Права доступа
29. Битовая маска прав доступа
30. Архивирование и разархивирование
31. Поиск
32. Терминальные мультиплексоры screen, tmux, zellij
33. Процессы и утилиты top, htop
34. Загрузка файлов из сети
35. Оболочки bash, zsh, fish, nushell
36. bat и другие современные аналоги
37. make-файлы
38. Итого
39. Дополнительные материалы

5. Как работает Интернет и веб — основы
1. КОМП
2. Компьютерные сети. Сетевые интерфейсы
3. Ещё железяки — концентраторы и коммутаторы
4. MAC-адреса, слежка АНБ и реклама
5. Маршрутизаторы (роутеры), Internet
6. Локальные и глобальные сети LAN & WAN
7. Клиент-сервер
8. Спецификации (протоколы), OSI-модель
9. Сетевые протоколы TCP IP
10. IP и порт
11. NAT
12. IPv4, IPv6, DNS
13. Прокси-сервера и VPN
14. DHCP
15. Дополнительные материалы
6. DNS
1. DNS
2. Доменные зоны
3. Выбор и покупка домена rroom io
4. Система DNS серверов
5. DNS-записи
6. Как посмотреть DNS записи любого домена
7. NS-сервера и DNS-записи
8. Файл hosts и доменное имя localhost
9. Создание почты в своём домене hi@rroom.io
7. HTTP, HTTPs
1. Что такое протокол HTTP
2. Установка Telnet
3. Ещё раз о TCP-портах
4. Творим дичь — отправка HTTP-запроса вручную
5. HTTP-методы
6. Безопасность и идемпотентность веб-сервисов
7. HTTP-статусы
8. HTTP-заголовки
9. Смотрим HTTP-данные в Chrome Developer Tools
10. Из чего состоит URL
11. Как данные передаются на сервер
12. Методология REST
13. HTTPs
14. Дополнительные материалы

8. HTTP2
1. Как всё было — HTTP/0.0, HTTP/1.0, HTTP 1.1
2. Проблемы HTTP/1.1
3. Решения HTTP2
4. Что будет дальше
9. Сессии, cookies, безопасность
1. Аутентификация и авторизация
2. Хеш-функции
3. Хранение паролей, механизм аутентификации
4. Cookies — кто и как устанавливает и использует
5. Работа Cookies, безопасность
6. Подпись Cookies хешем
10. Быстрое погружение во frontend
1. Фронтенд и бэкенд Компонены фронта и бэка
2. HTML, CSS
3. Запуск веб-сервера, абсолютный и относительны
4. Делаем свой Интернет
5. HTML-формы
6. Chrome developer tools
7. Смочить лапки в JavaScript
8. Хакаем игру с динозавром в Google Chrome
11. Python для самых маленьких хардкорщиков
1. Собстна, а почему Python?
2. Изучение языка программирования
3. Как пишутся программы
4. Установка Python и настройка VS Code
5. Снова о блокноте
6. Практика
7. Переменные
8. Как работают переменные в Python
9. Числовые типы данных
10. Строки
11. Булевы
12. Преобразования типов
13. Ветвление логики
14. Списки
15. Циклы
16. Бесконечный цикл
17. Кортежи
18. Множества
19. Словари
20. Когда какую структуру использовать
21. Работа с аргументами командной строки
22. Функции
23. Рекурсия
24. Сортировка данных
25. Области видимости переменных
27. Нейминг, type hinting, комментарии
28. Объекты
29. Исключения
30. Пакеты, модули
31. Синтаксический сахар
32. Работа с датами и временем, таймзоны
33. Регулярные выражения
34. Удобности стандартной библиотеки
35. Запуск внешних утилит
36. Виртуальные окружения — venv, pip, poetry, pdm
37. Баги и работа с ними
38. Критерии хорошей программы
39. PEP8

12. Python для подрастающих хардкорщиков
1. Документация
2. Процедурное и объектно-ориентированное программирование
3. Позиционные и keyword аргументы
4. Внутренние и анонимные функции
5. Замыкания
6. args и kwargs
7. Генераторы (не дизельные)
8. Декораторы
9. Инкапсуляция
10. Наследование
11. Полиморфизм
12. Protected и private атрибуты
13. Конструктор и инициализатор
14. Геттеры и сеттеры
15. Property
16. Кэширование результатов функции
17. Методы — классов, объектов и статические
18. Абстрактные классы и интерфейсы
19. Агрегация и композиция
20. Важные дандер-методы
21. Когда использовать классы
22. Датаклассы, attrs, pydantic
23. == и is
24. Кортежи-таки можно менять
25. map, filter, reduce и pythonic-аналоги
26. Ссылочные параметры функции
27. Функции как объекты
28. defaultdict
29. Свои исключения
30. Строки и байты, BOM
31. Сериализация и десериализация данных
32. pickle, json, xml, protobuf
33. Подсказки типов
34. Утиная и гусиная типизация
35. Статическая структурная типизация
36. Регулярные выражения
37. Перегрузка операторов
38. Контекстный менеджер
39. Pattern matching
40. Инструментарий — ruff, black и другие
41. Анализ скорости выполнения
42. Настройка логирования
43. Профилирование
44. Дебаг
45. Рефакторинг и инструменты
13. Pythonic код
1. Zen of Python
2. Используй распаковку кортежей
3. Однострочники
4. Используй enumerate
5. Используй слайсы
6. Хитрая сортировка
7. dict.get vs KeyError
8. Объединение словарей
9. Знай и используй стандартную библиотеку
10. Используй pathlib
11. Используй моржовый оператор
12. Возбуждай исключения
13. Используй генераторы
14. Используй itertools
15. Не пренебрегай функциями перед классами
16. Простые геттеры и сеттеры для джавистов
17. Используй контекстные менеджеры
18. Используй Decimal для точных вычисления
19. Используй __repr__
20. Создавай пакеты

14. Алгоритмы и структуры данных
1. Алгоритмы
2. Сложность алгоритма
3. О большое
4. Сортировка пузырьком
5. Быстрая сортировка
6. Сортировка слиянием
7. Сортировка методом Шелла
8. Массивы и связанные списки
9. Кортежи

10. Словарь

11. Множество

12. Стек и очередь

13. Линейный поиск

14. Бинарный поиск

15. Алгоритм Дейкстры

16. Жадные алгоритмы

17. Как мы на практике NP-полную задачу решали

18. README

15. Как писать хорошо, а нехорошо не писать

1. Искусство или навык

2. Нейминг

3. Форматирование

4. Комментарии

5. DRY

6. KISS

7. YAGNI

8. Как писать хорошие функции и методы

9. Проектирование от функций

10. Функции большие и малые

11. Отмерять и отрезать

12. Закон Деметры

13. Принцип единой ответственности

14. Принцип окрытости-закрытости

15. Принцип подстановки Барбары Лисков

16. Принцип разделения интерфейсов

17. Принцип инверсии зависимостей

18. Low Coupling, High Cohesion

19. Принцип наименьшего удивления

20. Абстракции

21. Смешение уровней абстракции

22. Валидации, проверки, исключения

23. Оценка качества программы

24. Рефакторинг

25. Борьба со сложностью

26. Термины бизнес-области

16. Git

1. Git — must-have инструмент любого разработчика

2. Установка

3. Инициализация Git-репозитория и что происходит под

4. Первый коммит

5. Список коммитов и информация о коммите

6. Индекс и объектное хранилище Git

7. Што такое, зачем так сложно, Линус, я недоволен

8. Как добавить в репозиторий пустую директорию

9. Как закоммитить сразу несколько файлов

10. Как включать игнор

11. Удобные сокращения git-команд

12. Удобная история изменений проекта

13. Создание новой ветки

14. Сливаем ветки

15. Красота и величие указателя HEAD

16. GUI для работы с Git

17. Merge-коммит и его особенности

18. Конфликты слияния

19. Изучаем разницу версий

20. Откат изменений в рабочей директории или индексе

21. Сброс проекта до старого коммита

22. Подправить последний коммит

23. rebase для предотвращения merge-коммитов

24. rebase для объединения коммитов

25. Клонируем удалённый репозиторий

26. Создаём свой удалённый репозиторий

27. Pull Request A.K.A. Merge Request

28. Кто, когда и зачем добавил эту строку в проект

29. Изменения истории веток, уже отправленных на сервер

30. Тайные тайники Git

31. cherry-pick и патчи (не корейские)

32. Другие возможности Git

33. Gitflow, GitHub Flow — организационный процесс работы с Git

34. Правила комментирования коммитов

35. pre-commit

36. Markdown

37. Итого

38. Дополнительные материалы

17. Контейнеризация — Docker, Podman и коллеги

1. Что такое контейнеризация?

2. Оркестратор, движок контейнеров, OCI рантайм

3. Как работают контейнеры

4. Образы контейнеров

5. Docker vs Podman

6. Запуск и остановка контейнера

7. Вход в контейнер

8. Работа с образами и контейнерами на локальном компьютере

9. Dockerfile, Containerfile, сборка образа

10. docker-compose, podman pods

11. Volumes

12. Сеть

13. Вопросы безопасности контейнеров

14. Пример контейнеризованного Python веб-приложения

15. Деплой с контейнерами

16. Дополнительные материалы

18. Первая практика с FastAPI

1. Постановка задачи

2. Пишем HTTP сервачелло на голом Python

3. О фреймворках и библиотеках

4. Пишем Hello World на FastAPI

5. Создаём HTML шаблон

6. Создаём и стилизуем форму логина

7. Принимаем данные формы на бэкенде

8. Проверка логина и пароля из формы

9. Сохраняем пользователя в Cookies

10. Читаем Cookie запись

11. Цифровая подпись Cookies

12. Хеширование паролей

13. JavaScript и AJAX

14. SPA и JS фреймворки

15. Варианты передачи данных в запросе

16. Веб-сокеты

17. Git

18. Покупка и настройка домена

19. Привязка домена к серверу

20. Перенос приложения на сервер

21. Настройка сертификата

19. SQL и PostgreSQL

1. О PostgreSQL

2. Установка PostgreSQL в контейнере

3. Установка PostgreSQL в Linux из пакетного менеджера

4. Сборка PostgreSQL из исходников

5. Установка PostgreSQL установщиком на маке

6. Тулзяшечки — psql, pgcli, DBeaver, PyCharm

7. ACID

8. Термины — реальные и задротские

9. Первичный ключ и внешний ключ

10. Основные типы данных

11. DDL, DML, DCL, TCL и прочий БДСМ

12. Создаём пользователя

13. Создаём БД, схему, таблицы, связи

14. Комментарии в SQL и к таблицам-колонкам

15. Вставка данных

16. Простейшие выборки

17. Обновление и всякое хитрое удаление данных

18. Операторы и фильтрация выборки

19. Сортировка выборки

20. Ограничение количества возвращаемых данных

21. Псевдонимы = алиасы = aliases

22. LIKE, ILIKE

23. Использование даты и времени

24. CASE WHEN

25. Выборка из нескольких таблиц — JOIN

26. Coalesce и значения NULL

27. Подсчет количества результата

28. Группировка результатов выборки

29. Фильтрация вкупе с группировкой

30. Агрегатные функции

31. Работа со строками

32. Приведение типов

33. Подзапросы

34. UNION, EXCEPT, INTERSECT

35. Вьюшки обычные и материализованные

36. CTE

37. Оконные функции

38. Пример с оконными функциями

39. Транзакции

40. Read Committed изоляция транзакций

41. Repeatable Read изоляция транзакций

42. Serializable изоляция транзакций

43. Массивы

44. JSON и JSONB

45. Индексы в PostgreSQL

46. Индекс на уникальность

47. Индекс по выражению

48. Частичные индексы

49. Виды индексов PostgreSQL

50. Полнотекстовый поиск в PostgreSQL

51. Нормализация и денормализация

52. Репликация и шардинг

53. Что использовать в качестве первичного ключа?

54. Временные таблицы

55. TRUNCATE

56. Триггеры и правила

57. EXPLAIN

58. OLTP и OLAP

59. PL/pgSQL

60. Получаем размер базы данных

61. Стратегии бэкапов

62. Пулер запросов PgBouncer и Yandex Odyssey

63. SQLite

64. Дополнительные материалы

20. Redis

1. Зачем нам этот ваш ещё Redis?

2. Установка Redis

3. Что внутри

4. Строки

5. Хеши

6. Списки

7. Множества

8. Отсортированные множества

9. Транзакции

10. Срок жизни ключей

11. Pub-sub

12. Streams

13. Репликация

14. Дополнительные материалы

21. Асинхронный Python

1. Как оно работает обычно

2. Процессы, потоки, корутины

3. GIL

4. Чем поможет нам asyncio

5. Concurrency is not parallelism

6. Сопрограммы, они же корутины

7. Шо за цикл событий такой умный?

8. Почему мой код не выполняется быстрее с async-await?

9. И как же мне ускорить выполнение кода c конкурентностью?

10. asyncio.create_task

11. Ожидание окончания выполнения задачи

12. Когда использовать и когда не использовать асинхронность

13. Способы запустить код асинхронно

14. asyncio.gather

15. asyncio.TaskGroup

16. asyncio.as_completed

17. asyncio.wait

18. Надо ли обычные функции определять с async def?

19. Асинхронно ходим в веб-сервисы

20. Асинхронно ходим в СУБД

21. Асинхронно ходим в файлы

22. Трэш и содомия — пулы процессов

23. Семафоры

24. asyncio.to_thread

25. Контекстные переменные

26. throttle и debounce

27. Как принудительно отдать управление в цикл событий

28. uvloop и замена цикла событий

22. Django и как его готовить

1. Обзор фреймворка, преимущества и недостатки

2. Установка, инициализация, структура

3. Первое приложение

4. Модели хранилища

5. Подцепляем контейнеры

6. Миграции

7. Великий и ужасный Django ORM

8. Какой SQL варганит Django ORM

9. Оптимизация использования Django ORM

10. Или ну его в пень и пишем голый SQL

11. Шаблоны

12. Админка

13. Реализация CRUD влоб

14. Формы

15. Function Based и Class Based Views

16. Django для SPA и для не SPA

17. Аутентификация

18. Авторизация

19. Аутентификация через внешние сервисы

20. CORS в Django

21. CRUD с DRF

22. Swagger с DRF

23. Асинхронность в Django

24. Фоновые задачи с Django

25. Использование Django apps

26. Архитектура Django-проектов

27. Стайлгайд

28. Two Scoops of Django

29. Дополнительные материалы

23. FastAPI, SQLAlchemy, Alembic

1. Обзор фреймворка, преимущества и недостатки

2. Асинхронность в FastAPI

3. Запросы-ответы-валидация

4. Выуживаем данные запроса

5. Return Type

6. Статусы ответов

7. Swagger с FastAPI

8. CORS в FastAPI

9. Подцепляем контейнеры

10. Асинхронный SQLAlchemy

11. Миграции с Alembic

12. CRUD c SQLAlchemy

13. Фоновые задачи с FastAPI

14. Вебсокеты и Server Side Events с FastAPI

15. Архитектура FastAPI-проектов

24. Автотесты

1. Зачем нам автотесты

2. Какие есть виды тестов

3. Пирамида тестирования

4. и при чём тут архитектура

5. unittest, pytest, nose

6. Структура теста

7. Рекомендации по юнит-тестам

8. Чем качественные юнит-тесты отличаются от некачественных

9. Тесты в Django

10. Тесты в FastAPI

11. Мокать аль не мокать?

12. Школы тестирования

13. Test suite для проекта

14. Интеграционное тестирование

15. E2E тестирование

16. База данных в тестах

17. Тесты и приватные методы

18. Время

19. Изучаем Pytest

25. Архитектура backend-приложений

1. Что такое архитектура и зачем она нам

2. Быстрее отгрузить vs Сделать хорошо

3. Писать хорошо, а нехорошо не писать

4. Что есть зависимость

5. Любую зависимость можно инвертировать

6. Устойчивость кода

7. Отделяем мух от котлет

8. Сущности

9. Сервисы = сценарии использования

10. Репозитории, инфраструктура

11. Чистая, гексагональная, портов и адаптеров и прочие архитектуры

12. Зависимости

13. Сборка всего приложения

14. Пример

26. 12 факторов

1. Один код — разные развёртывания

2. Зависимости

3. Конфигурация

4. Сторонние сервисы

5. Сборка, релиз, выполнение

6. Процессы

7. Port binding

8. Параллелизм

9. Утилизируемость

10. Паритет разработки и работы приложения

11. Логи

12. Задачи администрирования

27. HTML

1. Версии HTML

2. Структура документа

3. Кодировка документа и текста

4. Что за что отвечает

5. Тэги

6. Форматирование текста

7. Ссылки

8. Списки

9. Entities, UTF8 символы

10. Разные размеры изображений

11. Растровая и векторная графика

12. Фоновые изображения

13. Пути

14. Семантическая разметка, контейнеры

15. Таблицы

16. Формы

17. Комментарии

18. Favicon

19. Фреймы

20. Block и inline элементы

21. Canvas

22. Интеграция плееров

23. Форматирование HTML-кода

24. W3C-валидатор

28. CSS или как всех достать, раскрасить и распихать

1. Что может делать CSS

2. Подключение стилей

3. Макет страницы

4. Что такое стиль

5. Codepen

6. Достать по тэгу

7. Достать по классу

8. Достать по идентификатору

9. Достать по атрибуту

10. Достать сразу нескольких

11. Родственные отношения

12. Достать потомков

13. Достать детей

14. Псевдоклассы, псевдоэлементы

15. Достать родственничков

16. Достать вот этих, но не тех

17. Наследование

18. Специфичность

19. Хак с important

20. Сброс стилей

21. Шрифты и форматирование текста

22. Цвета — RGB, RGBA, HSL, HSLA

23. Размеры

24. Списки

25. Блочная модель

26. Схлопывание полей

27. Блочные и строчные элементы

28. Границы и тени

29. Установка размера блочного элемента

30. box-sizing

31. Overflow, ограничение max размеров

32. float

33. Изображения фоном

34. Несколько фоновых изображений

35. Список ссылок, ролловеры

36. Трансформация без трансформатора

37. Анимации

38. Оформление таблиц

39. Оформление форм

40. Фикс, резина, адаптив

41. Как верстать?

42. Древняя верстка

43. Современность — flexbox

44. Позиционирование

45. Как делается адаптив

46. Контейнерные запросы

47. Как узнать, какая тема на устройстве включена?

48. Включен ли режим энергоэффективности?

49. Как скрыть или показать элемент?

50. calc

51. min, max, clamp

52. CSS-валидатор

53. Can I use

54. Минимизация CSS

55. БЭМ

56. Дополнительные материалы

29. Мобильные приложения на фронтенд-технологиях

1. Cordova

2. Ionic

3. PWA

30. Деплой веб-приложения

1. Сколько нам нужно железа

2. Арендуем сервачелло

3. Присобачиваем домен

4. Прокидываем SSH-ключи

5. Ставим необходимые пакеты

6. Используем контейнеры на проде

7. Ставим Python

8. Ставим PostgreSQL

9. Ставим пулер коннектов для PostgreSQL

10. Разворачиваем чудо-приложеньку

11. Настраиваем Systemd

12. Настраиваем файрвол

13. Настраиваем анти-DDoS в Nginx

14. Статику раздаёт Nginx, S3 или CDN

15. Выносим PostgreSQL на отдельный сервер

16. Настраиваем бэкапы

17. Настраиваем ротацию логов

18. Клонируем application-серваки

19. Как запустить это всё в контейнерах

20. А теперь подвиньтесь, выходит Ansible

31. JavaScript

1. Где применяется JavaScript?

2. Типы данных

3. Управляющие конструкции, печать

4. var, let, const

5. Функции

6. Стрелочные функции

7. Объекты, методы, this

8. null, undefined

9. Глобальные браузерные переменные

10. Структуры данных

11. Деструктуризация, распространение

12. Циклы

13. Исключения

14. Работа с датой и временем

15. Форматирование строк

16. Функциональное программирование в JS

17. Модули

18. Стиль кода

19. Асинхронный JS

20. Полифилы

21. Работа с DOM-деревом на чистом JavaScript

22. События в браузере

23. MutationObserver

24. Fetch и axios

25. Cookies и LocalStorage

26. node, deno

27. Дополнительные материалы

32. TypeScript

1. Для чего нам TypeScript?

2. Установка TypeScript

3. Теперь везде ставить типы?

4. Основные типы

5. Типизация функций

6. Интерфейсы и структурная типизация

7. Any и запрет Any

8. typeof

9. Дженерики

10. Типизация объектов

11. Keyof

12. Typeof

33. React и SolidJS

1. Зачем нам вообще фронтенд-фреймворки?

2. Веб-компоненты

3. React vs SolidJS

4. Создаём React-приложение

5. JSX и чем он хорош

6. Нарезаем компоненты

7. Props

8. Условный рендеринг

9. Передача данных компонентам вверх и вниз

10. Стейт

11. Понимание рендера

12. Контекст

13. Refs

14. Жизненный цикл

15. Хуки

16. Управление стейтом приложения

17. Как проблемы React решает Solid?

18. Установка Solid

19. JSX Solid

20. Сигналы Solid

21. Эффекты Solid

22. Memos Solid

23. Порталы, ууу

24. Рендер-логика в Solid

25. Жизненный цикл в Solid

26. События с Solid

27. Refs в Solid

28. Стилизация

29. Удобные хранилища Solid

30. Асинхронность в Solid

31. TypeScript в Solid

34. Архитектура frontend-приложения

1. Бэкендерское тут неприменимо?

2. Разбираемся с FSD

3. Продолжаем разбираться с FSD

4. Микрофронтенды

5. Практика

35. Взлом и защита

1. Обзор

2. Злодейски угоняем аккаунт

3. Защита

4. Коварно строим подлянки юзерам

5. Защита

6. Негодяйски угоняем данные

7. Защита

8. Подлецки хакаем сервер

9. Защита

10. Коварно хихикая, фишим

11. Защита

12. Левой пяткой хакаем Django

13. Защита

14. Мощнецки дудосим

15. Защита

16. Обуваем всех подряд

17. Защита

18. Заметки по безопасности

36. CI/CD

1. Зачем нам оно

2. Подходы к CI/CD

3. Сине-зеленое развертывание

4. Инструменты

5. Демонстрация

37. Облачные технологии

1. Зачем оно нам?

2. Платформы

3. Сервера

4. S3-хранилища

5. CDN

6. Управляемые СУБД

7. Балансеры

8. Serverless Containers

9. Lambda

10. Инфраструктура как код

11. Terraform, Ansible

38. Советы по работе в ИТ

1. Резюме

2. Собеседование

3. Опыт работы

4. Дизайн в проектах

5. Как спрашивать помощи

6. Самозванцы и Даннинг-Крюгер

7. Тех долг

8. Рефакторинг

9. Изменяемость и неизменяемость

10. Логирование

11. Конфиги

12. Знай и используй инструментарий

13. Code review

14. Локализуй проблему

15. Задавай вопросы бизнесу

16. Обучение

17. Документация

18. Баланс

19. Модненький Agile

20. Что всем от вас надо

21. Касания с другими людьми

22. Помогайте

23. Обещания и профессиональная честность

24. Мотивация vs Творчество vs Дисциплина

25. Привычки

26. Удалёнка

39. Rroom
  1. О проекте Rroom, план работ
40. Финальный проект
  1. Задание
41. Что дальше
  1. Что дальше
Начать учиться
100 000 ₽
или 8 333 ₽ / мес
Вопросы? Пиши — hi@to.digital
Купить