Содержание курса
Unit 0 — Введение: программирование, компьютер, PHP
15 уроков
1.
Добро пожаловать на курс! 👋
↗
2.
Что такое программирование
↗
3.
Как устроен компьютер (на пальцах)
↗
4.
Двоичная система — почему всё внутри это нули и единицы
↗
5.
Что такое язык программирования
↗
6.
Что такое PHP и почему именно он
↗
7.
Frontend vs Backend — разделение труда в вебе
↗
8.
Как работает веб (упрощённо)
↗
9.
Дорога вперёд: что вас ждёт
↗
10.
Главное из этого юнита
↗
11.
Что почитать дополнительно
↗
12.
Контрольные вопросы. Часть 1
↗
13.
Контрольные вопросы. Часть 2
↗
14.
Интерактивные вопросы
↗
15.
Задания
↗
Unit 1 — Установка PHP, IDE и первая программа
14 уроков
1.
Что нам понадобится
↗
2.
Установка PHP на Windows
↗
3.
Выбор и установка IDE
↗
4.
Первая программа: Hello, World!
↗
5.
Анатомия PHP-файла
↗
6.
Комментарии
↗
7.
Запуск PHP из командной строки (CLI)
↗
8.
Типичные ошибки и как их читать
↗
9.
Краткий чек-лист после юнита
↗
10.
Дополнительные материалы
↗
11.
Контрольные вопросы.Часть 1
↗
12.
Контрольные вопросы.Часть 2
↗
13.
Интерактивные вопросы
↗
14.
Задания
↗
Unit 2 — Переменные и типы данных
16 уроков
1.
Что такое переменная
↗
2.
Правила именования переменных в PHP
↗
3.
Присваивание
↗
4.
Типы данных в PHP
↗
5.
Как узнать тип переменной
↗
6.
Преобразование типов (приведение)
↗
7.
Сравнение: == vs ===
↗
8.
Ввод от пользователя в CLI
↗
9.
Константы
↗
10.
declare(strict_types=1) — путь к надёжности
↗
11.
Главное из этого юнита
↗
12.
Дополнительные материалы
↗
13.
Контрольные вопросы. Часть 1
↗
14.
Контрольные вопросы. Часть 2
↗
15.
Интерактивные вопросы
↗
16.
Задания
↗
Unit 3 — Операторы
15 уроков
1.
Что такое оператор
↗
2.
Арифметические операторы
↗
3.
Операторы присваивания
↗
4.
Операторы сравнения
↗
5.
Логические операторы
↗
6.
Строковые операторы
↗
7.
Тернарный оператор ? :
↗
8.
Битовые операторы (обзорно)
↗
9.
Приоритет операторов
↗
10.
Главное из этого юнита
↗
11.
Дополнительные материалы
↗
12.
Контрольные вопросы. Часть 1
↗
13.
Контрольные вопросы. Часть 2
↗
14.
Интерактивные вопросы
↗
15.
Задания
↗
Unit 4 — Условные конструкции: if, switch, match
17 уроков
1.
Что такое условные конструкции
↗
2.
Базовый if
↗
3.
if/else
↗
4.
if/elseif/else — цепочка условий
↗
5.
Альтернативный синтаксис if: endif;
↗
6.
Truthy и falsy в условиях
↗
7.
Вложенные условия
↗
8.
switch — выбор из многих вариантов
↗
9.
match — современная альтернатива switch (PHP 8.0+)
↗
10.
Тернарный vs if vs match
↗
11.
Обработка отсутствующих аргументов CLI
↗
12.
Главное из этого юнита
↗
13.
Дополнительные материалы
↗
14.
Контрольные вопросы. Часть 1
↗
15.
Контрольные вопросы. Часть 2
↗
16.
Интерактивные вопросы
↗
17.
Задания
↗
Unit 5 — Циклы: while, do-while, for, foreach
19 уроков
1.
Зачем нужны циклы
↗
2.
while — самый общий цикл
↗
3.
do-while — проверка в конце
↗
4.
for — счётный цикл
↗
5.
foreach — обход коллекций
↗
6.
break — досрочный выход из цикла
↗
7.
continue — пропустить остаток итерации
↗
8.
break N и continue N — управление вложенными циклами
↗
9.
Бесконечные циклы и как из них выходить
↗
10.
Вложенные циклы
↗
11.
Альтернативный синтаксис endwhile, endfor, endforeach
↗
12.
Какой цикл выбрать
↗
13.
Связь с реальной работой
↗
14.
Главное из этого юнита
↗
15.
Дополнительные материалы
↗
16.
Контрольные вопросы. Часть 1
↗
17.
Контрольные вопросы. Часть 2
↗
18.
Интерактивные вопросы
↗
19.
Задания
↗
Unit 6 — Массивы: индексные, ассоциативные, многомерные
20 уроков
1.
Зачем нужны массивы
↗
2.
Два вида массивов в PHP
↗
3.
Индексные массивы
↗
4.
Ассоциативные массивы
↗
5.
Многомерные массивы
↗
6.
Подсчёт, проверки, поиск
↗
7.
Обход — foreach (углубляем тему из Unit 5)
↗
8.
Сортировка
↗
9.
Преобразования: map, filter, reduce
↗
10.
Полезные функции массивов
↗
11.
Spread (...) и destructuring
↗
12.
Массив как стек, очередь, hashmap
↗
13.
Ловушки и тонкости
↗
14.
Когда массив — НЕ лучший выбор
↗
15.
Главное из этого юнита
↗
16.
Дополнительные материалы
↗
17.
Контрольные вопросы. Часть 1
↗
18.
Контрольные вопросы. Часть 2
↗
19.
Интерактивные вопросы
↗
20.
Задания
↗
Unit 7 — Функции: объявление, аргументы, возврат, видимость
19 уроков
1.
Зачем нужны функции
↗
2.
Объявление и вызов
↗
3.
Параметры и аргументы
↗
4.
Тип возвращаемого значения
↗
5.
Передача по значению vs по ссылке
↗
6.
Область видимости (scope)
↗
7.
Анонимные функции (замыкания, Closure)
↗
8.
Функции высшего порядка
↗
9.
Чистые функции
↗
10.
Рекурсия
↗
11.
Композиция функций
↗
12.
Документирование функций
↗
13.
Чек-лист хорошей функции
↗
14.
Главное из этого юнита
↗
15.
Дополнительные материалы
↗
16.
Контрольные вопросы. Часть 1
↗
17.
Контрольные вопросы. Часть 2
↗
18.
Интерактивные вопросы
↗
19.
Задания
↗
Unit 8 — Строки и работа с текстом
22 урока
1.
Строки как фундамент работы с данными
↗
2.
Создание строк: четыре способа
↗
3.
Конкатенация
↗
4.
Длина строки и кодировки
↗
5.
Доступ к символам и подстрокам
↗
6.
Поиск
↗
7.
Регистр
↗
8.
Очистка и дополнение
↗
9.
Замена
↗
10.
Разбиение и склейка
↗
11.
Форматирование чисел и строк
↗
12.
Регулярные выражения — основы
↗
13.
JSON
↗
14.
Сравнение строк
↗
15.
Полезные функции (шпаргалка)
↗
16.
Связь с реальной работой и пет-проектом Phase 0
↗
17.
Главное из этого юнита
↗
18.
Дополнительные материалы
↗
19.
Контрольные вопросы. Часть 1
↗
20.
Контрольные вопросы. Часть 2
↗
21.
Интерактивные вопросы
↗
22.
Задания
↗
Unit 9 — Файлы и потоки ввода-вывода
18 уроков
1.
Файлы и потоки — ментальная модель
↗
2.
Простые операции — file_get_contents и file_put_contents
↗
3.
Потоковое чтение — fopen, fread, fgets, fclose
↗
4.
CSV — главный практический формат
↗
5.
Стандартные потоки — STDIN, STDOUT, STDERR
↗
6.
Пути и работа с файловой системой
↗
7.
Обход директорий
↗
8.
Stream wrappers — единый API для разных источников
↗
9.
Блокировка файлов — flock
↗
10.
Производительность: память vs скорость
↗
11.
Ошибки и проверки
↗
12.
Связь с пет-проектом Phase 0
↗
13.
Главное из этого юнита
↗
14.
Дополнительные материалы
↗
15.
Контрольные вопросы. Часть 1
↗
16.
Контрольные вопросы. Часть 2
↗
17.
Интерактивные вопросы
↗
18.
Задания
↗
Unit 10 — Обработка ошибок: errors, exceptions, try/catch
22 урока
1.
Зачем обрабатывать ошибки
↗
2.
Две системы ошибок в PHP
↗
3.
throw — бросаем исключение
↗
4.
try/catch/finally
↗
5.
Иерархия исключений
↗
6.
Стандартные классы исключений
↗
7.
Объект исключения — что в нём
↗
8.
Создание собственных исключений
↗
9.
finally как защита ресурсов
↗
10.
Re-throw и chain (цепочка исключений)
↗
11.
Конвертация старых ошибок в исключения
↗
12.
set_exception_handler — глобальная ловля
↗
13.
Когда бросать, когда ловить
↗
14.
Антипаттерны
↗
15.
assert — программные предположения
↗
16.
Связь с пет-проектом Phase 0
↗
17.
Главное из этого юнита
↗
18.
Дополнительные материалы
↗
19.
Контрольные вопросы. Часть 1
↗
20.
Контрольные вопросы. Часть 2
↗
21.
Интерактивные вопросы
↗
22.
Задания
↗
Unit 11 — CLI: аргументы, переменные окружения, exit-коды
19 уроков
1.
CLI как класс программ
↗
2.
$argv и $argc — основа
↗
3.
Стиль аргументов: позиционные vs опции
↗
4.
getopt — встроенный парсер
↗
5.
Свой парсер аргументов
↗
6.
Переменные окружения
↗
7.
Exit codes детально
↗
8.
STDIN/STDOUT/STDERR — повторяем и углубляем
↗
9.
Композиция через pipe
↗
10.
Сигналы
↗
11.
Help-сообщения и --help
↗
12.
Шаблон production-CLI скрипта
↗
13.
Связь с пет-проектом Phase 0
↗
14.
Главное из этого юнита
↗
15.
Дополнительные материалы
↗
16.
Контрольные вопросы. Часть 1
↗
17.
Контрольные вопросы. Часть 2
↗
18.
Интерактивные вопросы
↗
19.
Задания
↗
Пет-проект Phase 0 — CLI-генератор отчётов из CSV
4 урока
1.
Техническое задание
↗
2.
Наивное решение
↗
3.
Профессиональное решение
↗
4.
Сравнение решений: наивное vs профессиональное
↗
Что после Phase 0
3 урока
1.
Краткие итоги
↗
2.
Тезаурус
↗
3.
Обзор Фазы 1
↗