Все курсы
Все что есть
76
Популярные категории
Популярные курсы
Java-разработчик
PHP-разработчик
Python-разработчик
Аналитик данных
Инженер по тестированию
Фронтенд-разработчик
О Хекслете
О нас
Результаты (Исследование)
Хекслет Карьера
Отзывы студентов
Поддержка (В ТГ)
Реферальная программа
Подарочные сертификаты
Вакансии
Компаниям
Колледж
Частная школа
Регистрация
Вход
Карта сайта
Все курсы
О компании
О нас
Блог
Отзывы
Сертификаты
Пригласить друзей
Корпоративное обучение
Вопросы и ответы
Сообщество
Глоссарий
Дополнительно
Торренты
Купоны
Промокоды
Курсы
ИИ для начинающих
Перейти к программе
Введение
Основы LLM
Промпт инжиниринг
Задачи реального мира
Кодинг
Анализ
Глубокое исследование
Агенты
Автоматизация тестирования фронтенда
Перейти к программе
Введение
Причины тестирования
Утверждения
Библиотека power-assert
Jest
Матчеры
Модульные тесты
Подготовка данных
Плохие и хорошие практики тестирования
Покрытие кода тестами
Разработка через тестирование
Фикстуры
Введение
Тестирование ошибок
Побочные эффекты
Тестирование кода, взаимодействующего с файлами
Инверсия зависимостей
Тестирование HTTP-запросов
Манкипатчинг
Моки
Property-based тестирование
Введение
Установка
Рабочий процесс
Запросы (Queries)
События (User Events)
Ожидания (Matchers)
Появление и Пропадание
Позиционирование в CSS
Перейти к программе
Введение
Поток документа
Относительное позиционирование
Абсолютное позиционирование
Относительное и абсолютное позиционирование
Фиксированное позиционирование
Плавающие элементы
Наложение элементов
Введение
Что такое Flex?
Флекс-контейнер
Перенос элементов в контейнере
Выравнивание элементов по главной оси
Выравнивание элементов по поперечной оси
Свойства Flex-элементов. Гибкость. Flex-grow
Свойства Flex-элементов. Гибкость
Свойства Flex-элементов. Расположение
Введение
Терминология
Первая сетка
Расположение элементов в сетке
Работа с сеткой
Неявная сетка
Позиционирование и Grid
Введение
Проверка адаптивности сайта
Viewport
Гибкие элементы
Flex
Медиа-запросы
Медиа-запросы и другие устройства
Инженер по тестированию
Перейти к программе
Введение
Адаптивность страницы
Кроссбраузерность
HTML/CSS
Мультиязычность
Скорость соединения
Оптимизация загрузки
Гипертекст
Single Page Application (SPA)
Формы
CRUD
Уязвимости на странице
Протокол HTTPS и передача данных по сети
Сессии
Виды тестирования
Введение
Требования к программе
Позитивные и негативные сценарии
Тест-кейсы и чеклисты
Принципы составления тест-кейса
Техники тест-дизайна
Инструменты
Дефект
Баг-репорты
Цикл работы с багом
Регрессионное тестирование
Работа с дефектами с продакшена
Неявные требования
Нефункциональное тестирование
Введение
Жизненный цикл ПО
Этап тестирования
Time to Market
Организационная структура управления
Поддержка продукта
Agile, Scrum и Kanban
Введение
Место тестирования в процессе разработки
Способы удешевления тестирования
Автоматизация
Система тестирования
Пирамида тестирования
Способы смещения тестирования влево
Введение
Что такое интернет
Как соединяются компьютеры
Локальные и глобальные сети
Компьютерные адреса
Обмен информацией между компьютерами
Клиент-серверная архитектура
Сайт в интернете
Безопасность в интернете. Протокол HTTPS
Безопасность в интернете и цифровой след
Приватность и безопасность в интернете
Заключение
Введение
Введение в HTML
Блочная модель
Семантический HTML
Базовая структура HTML документа
Основы CSS
Каскадность в CSS
Chrome DevTools
Редакторы кода
Emmet
Публикация в интернете
Графические редакторы
Введение
Блочная модель и CSS
Стили текста
Шрифты и работа с ними
Списки
Колонки
Единицы измерения
Медиаэлементы
Таблицы
Формы
Селекторы
Псевдоклассы
Псевдоэлементы
Переполнение
CSS Переменные
Фон
Градиенты
Введение
Поток документа
Относительное позиционирование
Абсолютное позиционирование
Относительное и абсолютное позиционирование
Фиксированное позиционирование
Плавающие элементы
Наложение элементов
Введение
Операционные системы
Командная строка
Навигация
Интерфейс командной строки
Файловая структура
Чтение файлов
Grep
Редактирование файлов
Потоки
Пайплайн
Манипулирование файловой структурой
Переменные окружения
История
Пользователи и группы
Sudo
Права доступа
Пакетный менеджер
Выполнение программ
Введение
Рабочий процесс
Интеграция с GitHub
Рабочая директория
Анализ сделанных изменений
Анализ истории изменений
Отмена изменений в рабочей директории
Отмена коммитов
Изменение последнего коммита
Индекс
Перемещение по истории
Понимание Git
Игнорирование файлов
Stash
Открытые проекты
О курсе
HTTP 1.0
HTTP 1.1
Тело HTTP-запроса
Отправка форм
Transfer-Encoding
Передача данных query string
Перенаправления
Базовая аутентификация
Curl
Cookies
HTTPS
HTTP2 и HTTP3
О курсе
Для чего используется HTTP API
HTTP-запросы в браузере
Пример HTTP API
CRUD
HTTPie
Виды API
Аутентификация в HTTP API
Авторизация в API
OpenAPI (Swagger)
Postman
Введение
Начало работы
Отправка запросов
Куки
Авторизация
Коллекции
Окружения
API
Мок сервер
Тесты
Введение
Реляционные базы данных
Структура баз данных
Язык SQL
Подключение к БД с помощью psql
Таблицы
Первичный ключ и автоинкремент
Запросы на выборку
Фильтрация данных
Обработка особых значений
Фильтрация строк
Регулярные выражения
Сложные условия фильтрации
Фильтрация данных по диапазону
Поиск строк по значениям из набора
Сортировка данных
Ограничение выборки
Уникальные строки
Агрегатные функции
Группировка по выборке
Фильтрация c помощью оператора HAVING
Вставка и модификация данных
Основные ограничения полей
Изменение структуры таблицы (ALTER)
Транзакционность
Введение
Начало карьеры в IT
Резюме
Эффективное сопроводительное письмо
Поиск работы в IT
Подготовка к интервью
Борьба со стрессом
Интервью
Работа с отказами
Вхождение в рабочий процесс
Развитие soft skills
Нетворкинг
Профиль LinkedIn как инструмент поиска работы
Профиль на Хабр Карьере
Заключение
Введение
Оформление профиля на Github
Портфолио: стажировка в открытых проектах
Подготовка к интервью
Интервью
Заключение
Аналитик данных
Перейти к программе
Введение
Основы Google Sheets
Первая бизнес-задача
Визуализация
Вторая бизнес-задача
Направления в аналитике
Источники данных
Знакомство с SQL
Математика для аналитиков
Python в аналитике
Введение
Google Диск
Google Таблицы
Форматирование содержимого ячейки
Форматирование таблицы
Автозаполнение
Агрегация данных
Введение
График
Масштаб осей графика
Столбчатая диаграмма
Нормированная столбчатая диаграмма
График «Японские свечи»
Круговая диаграмма
Точечная диаграмма
Воронкообразные диаграммы
Агрегации в аналитике
Линия тренда
Сопоставление данных нескольких вкладок
Обзор диаграмм
Одна задача — несколько диаграмм
Введение
Реляционные базы данных
Структура баз данных
Язык SQL
Подключение к БД с помощью psql
Таблицы
Первичный ключ и автоинкремент
Запросы на выборку
Фильтрация данных
Обработка особых значений
Фильтрация строк
Регулярные выражения
Сложные условия фильтрации
Фильтрация данных по диапазону
Поиск строк по значениям из набора
Сортировка данных
Ограничение выборки
Уникальные строки
Агрегатные функции
Группировка по выборке
Фильтрация c помощью оператора HAVING
Вставка и модификация данных
Основные ограничения полей
Изменение структуры таблицы (ALTER)
Транзакционность
Введение
Язык SQL
Агрегация с помощью оператора COUNT
Агрегация с помощью операторов SUM, MAX и AVG
Фильтрация данных
Группировка результатов
Сортировка результатов
Объединение нескольких таблиц
Объединение обработкой пропусков
Риски и опасности NULL
Введение
Концепция витрины
Как устроены графики
Агрегация для визуализации
Агрегация для столбчатой диаграммы
Агрегация для candlestick-диаграмм
Агрегация для Pie Chart
Агрегация для Scatter Chart
Агрегация для Funnel analysis
Таблица как визуализация
Введение
Несколько таблиц
Типы соединения таблиц
CROSS JOIN (перекрестное соединение)
INNER JOIN (внутреннее соединение)
Псевдонимы (aliases)
INNER JOIN и WHERE
INNER JOIN и GROUP BY
LEFT JOIN (Левое внешнее соединение)
ANTI JOIN (левое соединение с NULL)
FULL JOIN (полное соединение)
SELF JOIN (соединение таблицы с собой)
Соединение трех и более таблиц
Подзапросы
Подзапросы и соединения
VIEW и CTE
Заключение
Введение
Вспомним JOIN
Подзапрос
Объединение подзапросов
Common Table Expression и Конструкция WITH
Условная агрегация CASE
Введение
Множества
Объединение запросов
Пересечение запросов
Разность запросов
Введение
ROW_NUMBER
PREV_VALUE
MIN и MAX
SUM, COUNT и AVG
FIRST_VALUE и LAST_VALUE
NTILE
Агрегация с помощью SUM и COUNT
Другие функции
Введение
Подключение данных
Линейный график
Столбчатые диаграммы
Воронкообразные диаграммы
Круговая диаграмма
GeoMap и точечная диаграмма
Дашборды
Drilldown и интерактивные фильтры
Вычисляемые поля и смешивание данных
Публикация
Введение
Классификация направлений аналитики
Инструменты маркетинговой аналитики
Маркетинговая аналитика
Маркетинговая аналитика
Знакомство с продуктовой аналитикой
Когортный анализ в продуктовой аналитике
Метрики в продуктовой аналитике
Продуктовая аналитика и A/B-тесты
Финансовая аналитика
Юнит-экономика
Управленческая финансовая аналитика
Введение
Процент
Среднее значение
Методы работы с вероятностью
Основы статистического распределения
Корреляция
Разница между причинностью и совпадением
Комбинаторика
Введение
Поиск и обоснование гипотез
Постановка задачи
АА-тесты
AB-тесты
Статистические тесты и P-значение
Оценка размера эксперимента
Ошибка подглядывания
Введение
Объяснение концепции и постановка задачи
Сопоставление данных из разных систем
Оцениваем эффективность рекламы
Расходы на рекламу
Реальные данные визитов
Сценарии атрибуции
Выбор канала привлечения
Введение
Hello, World!
Комментарии
Инструкции (Statements)
Как мы проверяем ваши решения
Синтаксические ошибки
Арифметические операции
Операторы
Коммутативная операция
Композиция операций
Приоритет
Числа с плавающей точкой
Линтер
Строки
Экранированные последовательности
Конкатенация
Кодировка
Что такое переменная
Изменение переменной
Выбор имени переменной
Выражения в определениях
Переменные и конкатенация
Именование переменных
Магические числа
Константы
Интерполяция
Извлечение символов из строки
Срезы строк
Multi-line строки
Типы данных
Сильная (или Строгая) типизация
Неизменяемость примитивных типов
Явное преобразование типов
Функции и их вызов
Параметры по умолчанию
Вызов функции — выражение
Функции с переменным числом параметров
Детерминированность
Объекты
Неизменяемость
Цепочка вызовов
Создание (определение) функций
Возврат значений
Необязательные параметры функций
Именованные аргументы
Аннотации типов
Логический тип
Сравнение строк
Комбинирование операций и функций
Логические операторы
Отрицание
Результат логических выражений
Условная конструкция (if)
Условная конструкция else
Конструкция else + if = elif
Тернарный оператор
Оператор Match
Цикл While
Агрегация данных (Числа)
Агрегация данных (Строки)
Обход строк
Условия внутри тела цикла
Синтаксический сахар
Возврат из циклов
Цикл For
Цикл for и функция range
Отладка
Модули
Модули поглубже
Пакеты
Модуль random
Кортежи
История развития языка Python
Введение
Синтаксис
Модификация
Проверка существования значения
Цикл for и списки
Циклы с индексами
Ссылки
Агрегация
Удаление элементов списка
Управляющие инструкции
Вложенные списки
Теория множеств
Генерация строки в цикле
Обработка строк через преобразование в список
Вложенные циклы
Сортировка списков
Стек
Big O
Срезы
Деструктуризация
Деструктуризация и оператор упаковки
Создание новых списков и оператор распаковки
Массивы в памяти компьютера
Введение
Операционные системы
Командная строка
Навигация
Интерфейс командной строки
Файловая структура
Чтение файлов
Grep
Редактирование файлов
Потоки
Пайплайн
Манипулирование файловой структурой
Переменные окружения
История
Пользователи и группы
Sudo
Права доступа
Пакетный менеджер
Выполнение программ
Введение
Рабочий процесс
Интеграция с GitHub
Рабочая директория
Анализ сделанных изменений
Анализ истории изменений
Отмена изменений в рабочей директории
Отмена коммитов
Изменение последнего коммита
Индекс
Перемещение по истории
Понимание Git
Игнорирование файлов
Stash
Открытые проекты
Введение
Синтаксис
Изменение данных в словаре
Инициализация новых значений и defaultdicts
Множества
Изменение множеств
Операции над множествами
Методы объектов множеств
Хеш-таблицы
Введение
Многомерные массивы в Numpy
Индексы, срезы и итеративный обход
Переформатирование, изменение формы
Переформатирование и слияние
Фильтрация значений и вырезание
Быстрые поэлементные операции
Уход от циклов и векторизованные вычисления
Применение математических и статистических функций
Введение
Использование Pandas для работы с табличными данными
Чтение и запись табличных данных в файловую систему
Работа с индексами
Фильтрация значений и подготовка данных для анализа
Применение функций к столбцам и строкам таблицы
Визуализация данных
Сводные таблицы
Изменение формы и объединение таблиц
Работа с Excel-файлами в Pandas
Введение в визуализацию данных
Создание базовых графиков
Библиотека Matplotlib
Модуль Pyplot
Визуализация статистических данных
Упрощение работы с Seaborn
Интерактивные графики с Plotly
Создание Dashboard c Dash и Plotly
Фреймворк Anaconda
Язык Python
Установка Anaconda
Обзор доступных сред разработки
Решение аналитической задачи с помощью Jupyter Notebook
Виртуальные окружения и установка пакетов. Anaconda Navigator
Виртуальные окружения и установка пакетов. Conda
Введение
Установка Jupyter Notebook
Код, формулы и два понятных графика
Ячейки кода
Ячейки markdown
Магические команды
Отчеты с визуализацией результатов
Приемы работы с высоконагруженными операциями в Jupyter Notebook
Введение
Начало карьеры в IT
Резюме
Эффективное сопроводительное письмо
Поиск работы в IT
Подготовка к интервью
Борьба со стрессом
Интервью
Работа с отказами
Вхождение в рабочий процесс
Развитие soft skills
Нетворкинг
Профиль LinkedIn как инструмент поиска работы
Профиль на Хабр Карьере
Заключение
Введение
Оформление профиля на GitHub
Портфолио: стажировка в открытых проектах
Подготовка к интервью
Онлайн-буткемп. Фронтенд-разработчик
Перейти к программе
О курсе
Синтаксис
Модификация
Ссылки
Объекты в действии
Проверка существования свойства
Обход свойств объекта
Вложенные объекты
Слияние
Клонирование и копирование
Создание новых объектов и spread
Деструктуризация
Хеш-таблицы
О курсе
Чистые функции
Область видимости и замыкания
Разделение команд и запросов
Оператор Rest (упаковка аргументов)
Оператор Spread (распаковка аргументов)
Деструктуризация параметров
Объекты первого класса
Функции высшего порядка
Отображение (map)
Фильтрация (filter)
Агрегация (reduce)
Цепочка операций
Парадигмы программирования
Рекурсия
Итеративный процесс
Абстракция с помощью функций
Введение
Причины тестирования
Утверждения
Библиотека power-assert
Jest
Матчеры
Модульные тесты
Подготовка данных
Плохие и хорошие практики тестирования
Покрытие кода тестами
Разработка через тестирование
Фикстуры
Введение
Онтология
Точки на координатной плоскости
Семантика массивов
Создание абстракции
Интерфейсы
Уровневое проектирование
Инварианты
Введение
Определения
Виртуальная файловая система
Манипуляции с виртуальной файловой системой
Обход дерева
Агрегация
Агрегация 2
Аккумулятор
HTML-дерево
О курсе
Инкапсуляция
Контекст (This)
Связывание (bind)
Особенности работы this со стрелочными функциями
Конструктор
Прототипы
Упаковка и Распаковка (Boxing)
toString()
Класс
Статические свойства и методы
Исключения
Место и понимание ООП в программировании
О курсе
Шаблоны проектирования
Конфигурация
Изменяемая конфигурация
Объекты-Сущности, Объекты-Значения и внедренные объекты
Fluent Interface
Сборщики
Прокси
Пишем код правильно
О курсе
HTTP 1.0
HTTP 1.1
Тело HTTP-запроса
Отправка форм
Transfer-Encoding
Передача данных query string
Перенаправления
Базовая аутентификация
Curl
Cookies
HTTPS
HTTP2 и HTTP3
Введение
Стек вызовов (Call Stack)
Асинхронный код
Возврат в асинхронном коде
Упорядочивание асинхронных операций
Обработка ошибок
Параллельное выполнение операций
Таймеры
Промисы (Promise)
Обработка ошибок в промисах
Цепочка промисов
Promise.all
new Promise
Async и Await
HTTP-запросы
Введение
JavaScript в браузере
Глобальный объект Window
BOM-объекты
DOM
Навигация по DOM-дереву
Декларативный поиск по DOM-дереву
Консоль разработчика
Манипулирование DOM-деревом
Управление узлами DOM
Полифиллы
Введение в события
События на практике
Формы
Перехват и всплытие
События документа
AJAX
JQuery
Введение
Представление символов и метасимвол
Символьные классы
Позиция внутри строки
Альтернатива
Квантификация
Жадность
Группировка и обратная связь
Модификаторы
Просмотр вперед и назад
Поиск по условию
Флаги
Введение
Состояние приложения
Комплексное состояние
Отрисовка (рендеринг) состояния
Состояние отображения (UI State)
Программирование с явно выделенным состоянием
Нормализация данных
MVC
Состояние форм
Организация текстов интерфейса
Инициализация приложения
Введение
Тестирование ошибок
Побочные эффекты
Тестирование кода, взаимодействующего с файлами
Инверсия зависимостей
Тестирование HTTP-запросов
Манкипатчинг
Моки
Property-based тестирование
Введение
Введение в HTML
Блочная модель
Семантический HTML
Базовая структура HTML документа
Основы CSS
Каскадность в CSS
Chrome DevTools
Редакторы кода
Emmet
Публикация в интернете
Графические редакторы
Введение
Блочная модель и CSS
Стили текста
Шрифты и работа с ними
Списки
Колонки
Единицы измерения
Медиаэлементы
Таблицы
Формы
Селекторы
Псевдоклассы
Псевдоэлементы
Переполнение
CSS Переменные
Фон
Градиенты
Введение
Поток документа
Относительное позиционирование
Абсолютное позиционирование
Относительное и абсолютное позиционирование
Фиксированное позиционирование
Плавающие элементы
Наложение элементов
Введение
Что такое Flex?
Флекс-контейнер
Перенос элементов в контейнере
Выравнивание элементов по главной оси
Выравнивание элементов по поперечной оси
Свойства Flex-элементов. Гибкость. Flex-grow
Свойства Flex-элементов. Гибкость
Свойства Flex-элементов. Расположение
О курсе
Параметрический полиморфизм
Диспетчеризация по ключу (данные)
Диспетчеризация по ключу (функции)
Диспетчеризация по имени файла
Утиная типизация
Null Object Pattern
Код, который убивает полиморфизм
Инверсия зависимостей
Паттерн Стратегия
Паттерн Фабрика
Шаблоны проектирования
Объектная композиция
Паттерн Состояние (State)
Управление зависимостями
О курсе
Наследование
Позднее связывание
Шаблонный метод
Переопределение методов
Принцип подстановки Лисков
Исключения
Композиция вместо наследования
Введение
Компоненты
JSX
Props
Работа с коллекциями
Различия jsx и html
Обработка имён классов
Children
Состояние
События
Автоматное программирование
Формы
Неизменяемость
Вложенные компоненты
Функциональные компоненты
Контекст (Context API)
Virtual Dom
Тестирование
Асинхронная обработка
Жизненный цикл компонента
Производительность
Refs
Введение в хуки
Хук useState
Хук useEffect
Хук useContext
Хук useRef
Хуки useCallback и useMemo
Композиция компонентов
Заключение
Введение
Redux
Редьюсеры
Мидлвары
Подключение Redux Toolkit к React
Подробнее о слайсах
Нормализация данных в Redux
Механизм Entity Adapter
Механизм ExtraReducers
Асинхронные запросы
RTK Query
О курсе
Для чего используется HTTP API
HTTP-запросы в браузере
Пример HTTP API
CRUD
HTTPie
Виды API
Аутентификация в HTTP API
Авторизация в API
OpenAPI (Swagger)
Postman
Введение
Начало карьеры в IT
Резюме
Эффективное сопроводительное письмо
Поиск работы в IT
Подготовка к интервью
Борьба со стрессом
Интервью
Работа с отказами
Вхождение в рабочий процесс
Развитие soft skills
Нетворкинг
Профиль LinkedIn как инструмент поиска работы
Профиль на Хабр Карьере
Заключение
Введение
Оформление профиля на GitHub
Портфолио: стажировка в открытых проектах
Подготовка к интервью
Интервью
Заключение
Ansible
Перейти к программе
Введение
Ad-Hoc
Файл инвентаризации
Плейбук
Теги
Обработчики (Handlers)
Переменные
Переменные в файле инвентаризации
Факты
Циклы
Условия
Фильтры
Регистрация результата
Роли
Устройство ролей
Коллекции
Ansible Vault
Введение
GitHub Actions
Задания
Экшены
Введение
Деплой на PaaS
12 Факторов
Сборка проекта
Деплой
Прокси-сервер (Caddy)
Горизонтальное масштабирование
Организация работы с базой данных
Мониторинг
SQL для программистов
Перейти к программе
Введение
Реляционные базы данных
Структура баз данных
Язык SQL
Подключение к БД с помощью psql
Таблицы
Первичный ключ и автоинкремент
Запросы на выборку
Фильтрация данных
Обработка особых значений
Фильтрация строк
Регулярные выражения
Сложные условия фильтрации
Фильтрация данных по диапазону
Поиск строк по значениям из набора
Сортировка данных
Ограничение выборки
Уникальные строки
Агрегатные функции
Группировка по выборке
Фильтрация c помощью оператора HAVING
Вставка и модификация данных
Основные ограничения полей
Изменение структуры таблицы (ALTER)
Транзакционность
Введение
Несколько таблиц
Типы соединения таблиц
CROSS JOIN (перекрестное соединение)
INNER JOIN (внутреннее соединение)
Псевдонимы (aliases)
INNER JOIN и WHERE
INNER JOIN и GROUP BY
LEFT JOIN (Левое внешнее соединение)
ANTI JOIN (левое соединение с NULL)
FULL JOIN (полное соединение)
SELF JOIN (соединение таблицы с собой)
Соединение трех и более таблиц
Подзапросы
Подзапросы и соединения
VIEW и CTE
Заключение
Введение
Множества
Объединение запросов
Пересечение запросов
Разность запросов
Реляционная модель данных
Первая нормальная форма
Вторая нормальная форма
Третья нормальная форма
Онтология
Внешние ключи
Производительность
HTTP API
Перейти к программе
О курсе
HTTP 1.0
HTTP 1.1
Тело HTTP-запроса
Отправка форм
Transfer-Encoding
Передача данных query string
Перенаправления
Базовая аутентификация
Curl
Cookies
HTTPS
HTTP2 и HTTP3
О курсе
Для чего используется HTTP API
HTTP-запросы в браузере
Пример HTTP API
CRUD
HTTPie
Виды API
Аутентификация в HTTP API
Авторизация в API
OpenAPI (Swagger)
Postman
Линейная алгебра
Перейти к программе
Системы уравнений
Матрицы
Векторы
Линейные операции
Нелинейные операции
Обратная матрица
Определитель
Ранг матрицы
Совместность СЛАУ
Общий случай СЛАУ
Числовые последовательности
Производная в математике
Таблица производных
Правила дифференцирования
Уравнение касательной
Монотонность функции
Исследование функции
Ряды в математике
Степенные и функциональные ряды
Интегралы
Определенный интеграл
Таблица интегралов в математике
Формула Ньютона-Лейбница
Площадь фигуры, ограниченной линиями
Google Sheets
Перейти к программе
Введение
Google Диск
Google Таблицы
Форматирование содержимого ячейки
Форматирование таблицы
Автозаполнение
Агрегация данных
Pytest
Перейти к программе
Введение
Цели тестирования
Утверждения
Фреймворк Pytest
Модульные тесты
Фикстуры
Плохие и хорошие практики тестирования
Тестирование через документацию
Покрытие кода тестами
Разработка через тестирование
Тестовые данные
Введение
Тестирование ошибок
Побочные эффекты
Тестирование кода, взаимодействующего с файлами
Инверсия зависимостей
Тестирование HTTP-запросов
Манкипатчинг
Мокинг
Typescript
Перейти к программе
Введение
Привет, Мир!
TypeScript
Переменные
Именованные функции
Анонимные функции
Массивы
Объектные типы
Перечисления
Псевдонимы типов
Тип Any
Система модулей
Функции как параметры
Опциональные параметры в функциях
Тип Void
Возврат из функции
Тип Unknown
Деструктуризация
Операции Rest и Spread
Перегрузка функций
Сужение типов
Аннотации типов
Многомерные массивы
Неизменяемые массивы
Кортежи
Типы как множества
Объединения
Null и Undefined
Литералы
Пересечение
Присваивание значения
Иерархия типов
Структурная типизация
Ковариантность и контравариантность
Классы
Классы как типы
Защита свойств и методов
Свойства параметров
Наследование
Статические методы и свойства
Абстрактные классы
Интерфейсы
Использование интерфейсов
Реализация интерфейсов классами
Введение в дженерики
Дженерики (Типы)
Дженерики (Функции)
Дженерики с несколькими параметрами
Асинхронные функции
Дженерики на классах
Тип object
Динамические ключи
Сопоставление типов
Модификаторы сопоставления типов
Записи
Django
Перейти к программе
Введение
Hello World
Запрос-Ответ
Приложения
Шаблонизация
Наследование шаблонов (Extends)
Представления (Views)
Маршрутизация
Django ORM
Работа с моделями
Конфигурация
Django Admin
Интеграционные тесты
Список (CRUD)
Просмотр (CRUD)
Работа с формами
Создание (CRUD)
Обновление (CRUD)
Удаление (CRUD)
Введение
Настройка Django ORM
Основные концепции
Модель
Запрос данных из базы
Связи
Многие ко Многим
Аннотирование и агрегация
Транзакции
Эффективное использование ORM
Трудоустройство для разработчиков
Перейти к программе
Введение
Оформление профиля на GitHub
Портфолио: стажировка в открытых проектах
Подготовка к интервью
Интервью
Заключение
Python для анализа данных
Перейти к программе
Введение
Hello, World!
Комментарии
Инструкции (Statements)
Как мы проверяем ваши решения
Синтаксические ошибки
Арифметические операции
Операторы
Коммутативная операция
Композиция операций
Приоритет
Числа с плавающей точкой
Линтер
Строки
Экранированные последовательности
Конкатенация
Кодировка
Что такое переменная
Изменение переменной
Выбор имени переменной
Выражения в определениях
Переменные и конкатенация
Именование переменных
Магические числа
Константы
Интерполяция
Извлечение символов из строки
Срезы строк
Multi-line строки
Типы данных
Сильная (или Строгая) типизация
Неизменяемость примитивных типов
Явное преобразование типов
Функции и их вызов
Параметры по умолчанию
Вызов функции — выражение
Функции с переменным числом параметров
Детерминированность
Объекты
Неизменяемость
Цепочка вызовов
Создание (определение) функций
Возврат значений
Необязательные параметры функций
Именованные аргументы
Аннотации типов
Логический тип
Сравнение строк
Комбинирование операций и функций
Логические операторы
Отрицание
Результат логических выражений
Условная конструкция (if)
Условная конструкция else
Конструкция else + if = elif
Тернарный оператор
Оператор Match
Цикл While
Агрегация данных (Числа)
Агрегация данных (Строки)
Обход строк
Условия внутри тела цикла
Синтаксический сахар
Возврат из циклов
Цикл For
Цикл for и функция range
Отладка
Модули
Модули поглубже
Пакеты
Модуль random
Кортежи
История развития языка Python
Введение
Синтаксис
Модификация
Проверка существования значения
Цикл for и списки
Циклы с индексами
Ссылки
Агрегация
Удаление элементов списка
Управляющие инструкции
Вложенные списки
Теория множеств
Генерация строки в цикле
Обработка строк через преобразование в список
Вложенные циклы
Сортировка списков
Стек
Big O
Срезы
Деструктуризация
Деструктуризация и оператор упаковки
Создание новых списков и оператор распаковки
Массивы в памяти компьютера
Введение
Операционные системы
Командная строка
Навигация
Интерфейс командной строки
Файловая структура
Чтение файлов
Grep
Редактирование файлов
Потоки
Пайплайн
Манипулирование файловой структурой
Переменные окружения
История
Пользователи и группы
Sudo
Права доступа
Пакетный менеджер
Выполнение программ
Введение
Рабочий процесс
Интеграция с GitHub
Рабочая директория
Анализ сделанных изменений
Анализ истории изменений
Отмена изменений в рабочей директории
Отмена коммитов
Изменение последнего коммита
Индекс
Перемещение по истории
Понимание Git
Игнорирование файлов
Stash
Открытые проекты
Введение
Синтаксис
Изменение данных в словаре
Инициализация новых значений и defaultdicts
Множества
Изменение множеств
Операции над множествами
Методы объектов множеств
Хеш-таблицы
Введение
Многомерные массивы в Numpy
Индексы, срезы и итеративный обход
Переформатирование, изменение формы
Переформатирование и слияние
Фильтрация значений и вырезание
Быстрые поэлементные операции
Уход от циклов и векторизованные вычисления
Применение математических и статистических функций
Введение
Использование Pandas для работы с табличными данными
Чтение и запись табличных данных в файловую систему
Работа с индексами
Фильтрация значений и подготовка данных для анализа
Применение функций к столбцам и строкам таблицы
Визуализация данных
Сводные таблицы
Изменение формы и объединение таблиц
Работа с Excel-файлами в Pandas
Введение в визуализацию данных
Создание базовых графиков
Библиотека Matplotlib
Модуль Pyplot
Визуализация статистических данных
Упрощение работы с Seaborn
Интерактивные графики с Plotly
Создание Dashboard c Dash и Plotly
Фреймворк Anaconda
Язык Python
Установка Anaconda
Обзор доступных сред разработки
Решение аналитической задачи с помощью Jupyter Notebook
Виртуальные окружения и установка пакетов. Anaconda Navigator
Виртуальные окружения и установка пакетов. Conda
Введение
Установка Jupyter Notebook
Код, формулы и два понятных графика
Ячейки кода
Ячейки markdown
Магические команды
Отчеты с визуализацией результатов
Приемы работы с высоконагруженными операциями в Jupyter Notebook
Веб-разработка на Node.JS
Перейти к программе
О курсе
HTTP 1.0
HTTP 1.1
Тело HTTP-запроса
Отправка форм
Transfer-Encoding
Передача данных query string
Перенаправления
Базовая аутентификация
Curl
Cookies
HTTPS
HTTP2 и HTTP3
О курсе
Для чего используется HTTP API
HTTP-запросы в браузере
Пример HTTP API
CRUD
HTTPie
Виды API
Аутентификация в HTTP API
Авторизация в API
OpenAPI (Swagger)
Postman
Введение
Архитектура Веба
Микрофреймворк Fastify
Обработчики запросов
HTTP Сессия
Динамические маршруты
Шаблоны
Лейауты в Pug
Безопасность
Поисковые формы
Хранение данных
Модифицирующие формы
Валидация
Именованные маршруты
Создание CRUD на Fastify
Model-View-Controller (MVC)
Middlewares
Cookies
Сессия
Флеш-сообщения (Flash)
Декораторы
Работа с базой данных в Fastify
Деплой
Redis
Перейти к программе
Введение и установка
KV хранилище
Кэш
Счетчики онлайн событий
Хранение списков с Lists
Составные структуры с Hashes
Проверка на уникальность с Sets
Организация рейтингов с Sorted Sets
Проверка на уникальность в больших данных с HyperLogLog
Брокер сообщений Redis
Реалтайм чат с Redis PubSub
ООП на Javascript
Перейти к программе
Введение
Онтология
Точки на координатной плоскости
Семантика массивов
Создание абстракции
Интерфейсы
Уровневое проектирование
Инварианты
О курсе
Инкапсуляция
Контекст (This)
Связывание (bind)
Особенности работы this со стрелочными функциями
Конструктор
Прототипы
Упаковка и Распаковка (Boxing)
toString()
Класс
Статические свойства и методы
Исключения
Место и понимание ООП в программировании
О курсе
Шаблоны проектирования
Конфигурация
Изменяемая конфигурация
Объекты-Сущности, Объекты-Значения и внедренные объекты
Fluent Interface
Сборщики
Прокси
Пишем код правильно
О курсе
Параметрический полиморфизм
Диспетчеризация по ключу (данные)
Диспетчеризация по ключу (функции)
Диспетчеризация по имени файла
Утиная типизация
Null Object Pattern
Код, который убивает полиморфизм
Инверсия зависимостей
Паттерн Стратегия
Паттерн Фабрика
Шаблоны проектирования
Объектная композиция
Паттерн Состояние (State)
Управление зависимостями
О курсе
Наследование
Позднее связывание
Шаблонный метод
Переопределение методов
Принцип подстановки Лисков
Исключения
Композиция вместо наследования
Автоматизатор тестирования на JavaScript
Перейти к программе
Введение
Hello, World!
Инструкции
Арифметические операции
Ошибки оформления (синтаксиса и линтера)
Строки
Переменные
Выражения в определениях
Именование
Интерполяция
Извлечение символов из строки
Типы данных
Неизменяемость и примитивные типы
Функции и их вызов
Сигнатура функции
Вызов функции — выражение
Функции с переменным числом параметров
Детерминированность
Стандартная библиотека
Свойства и методы
Цепочка вызовов
Определение функций
Возврат значений
Параметры функций
Необязательные параметры функций
Упрощенный синтаксис функций
Логика
Логические операторы
Результат логических операций
Условные конструкции
Тернарный оператор
Конструкция Switch
Цикл while
Агрегация данных
Обход строк в цикле
Условия внутри тела цикла
Инкремент и декремент
Цикл for
Модули
О курсе
Синтаксис
Модификация
Проверка существования значения
Цикл for
Ссылки
Агрегация
Цикл for...of
Удаление элементов массива
Управляющие инструкции
Вложенные массивы
Генерация строки в цикле
Обработка строк через преобразование в массив
Вложенные циклы
Теория множеств
Сортировка массивов
Стек
Big O
Деструктуризация
Rest и деструктуризация
Spread и создание новых массивов
Массивы в памяти компьютера
Введение
Операционные системы
Командная строка
Навигация
Интерфейс командной строки
Файловая структура
Чтение файлов
Grep
Редактирование файлов
Потоки
Пайплайн
Манипулирование файловой структурой
Переменные окружения
История
Пользователи и группы
Sudo
Права доступа
Пакетный менеджер
Выполнение программ
Введение
Рабочий процесс
Интеграция с GitHub
Рабочая директория
Анализ сделанных изменений
Анализ истории изменений
Отмена изменений в рабочей директории
Отмена коммитов
Изменение последнего коммита
Индекс
Перемещение по истории
Понимание Git
Игнорирование файлов
Stash
Открытые проекты
Введение
Что такое JS?
Установка JavaScript
NPM
Зависимости
Зависимости для разработки
Lock-файл
Глобальная установка пакетов
NPX
Точка входа
Линтинг
О курсе
Синтаксис
Модификация
Ссылки
Объекты в действии
Проверка существования свойства
Обход свойств объекта
Вложенные объекты
Слияние
Клонирование и копирование
Создание новых объектов и spread
Деструктуризация
Хеш-таблицы
О курсе
Чистые функции
Область видимости и замыкания
Разделение команд и запросов
Оператор Rest (упаковка аргументов)
Оператор Spread (распаковка аргументов)
Деструктуризация параметров
Объекты первого класса
Функции высшего порядка
Отображение (map)
Фильтрация (filter)
Агрегация (reduce)
Цепочка операций
Парадигмы программирования
Рекурсия
Итеративный процесс
Абстракция с помощью функций
О курсе
Инкапсуляция
Контекст (This)
Связывание (bind)
Особенности работы this со стрелочными функциями
Конструктор
Прототипы
Упаковка и Распаковка (Boxing)
toString()
Класс
Статические свойства и методы
Исключения
Место и понимание ООП в программировании
Введение
Причины тестирования
Утверждения
Библиотека power-assert
Jest
Матчеры
Модульные тесты
Подготовка данных
Плохие и хорошие практики тестирования
Покрытие кода тестами
Разработка через тестирование
Фикстуры
Введение
GitHub Actions
Задания
Экшены
Введение
Представление символов и метасимвол
Символьные классы
Позиция внутри строки
Альтернатива
Квантификация
Жадность
Группировка и обратная связь
Модификаторы
Просмотр вперед и назад
Поиск по условию
Флаги
Введение
Что такое интернет
Как соединяются компьютеры
Локальные и глобальные сети
Компьютерные адреса
Обмен информацией между компьютерами
Клиент-серверная архитектура
Сайт в интернете
Безопасность в интернете. Протокол HTTPS
Безопасность в интернете и цифровой след
Приватность и безопасность в интернете
Заключение
О курсе
HTTP 1.0
HTTP 1.1
Тело HTTP-запроса
Отправка форм
Transfer-Encoding
Передача данных query string
Перенаправления
Базовая аутентификация
Curl
Cookies
HTTPS
HTTP2 и HTTP3
О курсе
Для чего используется HTTP API
HTTP-запросы в браузере
Пример HTTP API
CRUD
HTTPie
Виды API
Аутентификация в HTTP API
Авторизация в API
OpenAPI (Swagger)
Postman
Введение
Начало работы
Отправка запросов
Куки
Авторизация
Коллекции
Окружения
API
Мок сервер
Тесты
Введение
Введение в HTML
Блочная модель
Семантический HTML
Базовая структура HTML документа
Основы CSS
Каскадность в CSS
Chrome DevTools
Редакторы кода
Emmet
Публикация в интернете
Графические редакторы
Введение
Блочная модель и CSS
Стили текста
Шрифты и работа с ними
Списки
Колонки
Единицы измерения
Медиаэлементы
Таблицы
Формы
Селекторы
Псевдоклассы
Псевдоэлементы
Переполнение
CSS Переменные
Фон
Градиенты
Введение
Поток документа
Относительное позиционирование
Абсолютное позиционирование
Относительное и абсолютное позиционирование
Фиксированное позиционирование
Плавающие элементы
Наложение элементов
Введение
Стек вызовов (Call Stack)
Асинхронный код
Возврат в асинхронном коде
Упорядочивание асинхронных операций
Обработка ошибок
Параллельное выполнение операций
Таймеры
Промисы (Promise)
Обработка ошибок в промисах
Цепочка промисов
Promise.all
new Promise
Async и Await
HTTP-запросы
Введение
Тестирование ошибок
Побочные эффекты
Тестирование кода, взаимодействующего с файлами
Инверсия зависимостей
Тестирование HTTP-запросов
Манкипатчинг
Моки
Property-based тестирование
Введение
JavaScript в браузере
Глобальный объект Window
BOM-объекты
DOM
Навигация по DOM-дереву
Декларативный поиск по DOM-дереву
Консоль разработчика
Манипулирование DOM-деревом
Управление узлами DOM
Полифиллы
Введение в события
События на практике
Формы
Перехват и всплытие
События документа
AJAX
JQuery
Введение
Установка
Рабочий процесс
Запросы (Queries)
События (User Events)
Ожидания (Matchers)
Появление и Пропадание
Введение
Подготовка
Рабочий процесс
Локаторы
События
Утверждения
Скриншот тестирование
Генерация тестов
Page Object Models
Структура тестов
Состояние
Мок HTTP-запросов
Тестирование API
Встроенные Репортеры + Allure
Непрерывная интеграция
Введение
Запуск
Приложение в контейнере
Работа с образами
Управление контейнерами
Сеть
Шаринг данных
Подготовка собственного образа
Слои, кеширование и оптимизации
Docker Compose
Введение
Реляционные базы данных
Структура баз данных
Язык SQL
Подключение к БД с помощью psql
Таблицы
Первичный ключ и автоинкремент
Запросы на выборку
Фильтрация данных
Обработка особых значений
Фильтрация строк
Регулярные выражения
Сложные условия фильтрации
Фильтрация данных по диапазону
Поиск строк по значениям из набора
Сортировка данных
Ограничение выборки
Уникальные строки
Агрегатные функции
Группировка по выборке
Фильтрация c помощью оператора HAVING
Вставка и модификация данных
Основные ограничения полей
Изменение структуры таблицы (ALTER)
Транзакционность
Введение
Несколько таблиц
Типы соединения таблиц
CROSS JOIN (перекрестное соединение)
INNER JOIN (внутреннее соединение)
Псевдонимы (aliases)
INNER JOIN и WHERE
INNER JOIN и GROUP BY
LEFT JOIN (Левое внешнее соединение)
ANTI JOIN (левое соединение с NULL)
FULL JOIN (полное соединение)
SELF JOIN (соединение таблицы с собой)
Соединение трех и более таблиц
Подзапросы
Подзапросы и соединения
VIEW и CTE
Заключение
Введение
Общие принципы работы
Плейсхолдеры
Пул подключений
Транзакции
Введение
Начало карьеры в IT
Резюме
Эффективное сопроводительное письмо
Поиск работы в IT
Подготовка к интервью
Борьба со стрессом
Интервью
Работа с отказами
Вхождение в рабочий процесс
Развитие soft skills
Нетворкинг
Профиль LinkedIn как инструмент поиска работы
Профиль на Хабр Карьере
Заключение
Введение
Оформление профиля на Github
Портфолио: стажировка в открытых проектах
Подготовка к интервью
Интервью
Заключение
Анимация CSS
Перейти к программе
Введение
2D трансформации. Перемещение
2D трансформации. Вращение
2D трансформации. Масштабирование
2D трансформации. Наклон
3D трансформации. Основы
3D трансформации. Функции
Веб-разработка на Go
Перейти к программе
Введение
Привет, Мир!
Go, Go, Go
Переменные
Функции
Логический тип
Математика и числа
Строки
Полезные функции для строк
Условные конструкции
Альтернативная условная конструкция
Константы
Цикл For
Структуры и методы в Go
Генерация строк в циклах
Указатели
Возврат структур из функций
Nil
Преобразование типов
Ошибки
Анонимные функции (Лямбды)
Массивы
Срезы
Цикл for и срезы
Структуры в срезах
Сравнение срезов
Слайсы из срезов
Множественные операции над слайсами
Копирование срезов
Передача срезов в функцию
Сортировка срезов
Карты
Обход карт
Хранение структур в картах
Вложенные карты
Практики использования карт
Введение
Запуск первой программы на Go
Пакеты
Модули и зависимости
Публикация модулей
Введение
Веб-разработка на Go
Логирование в веб-приложении
Веб-приложение на микрофреймворке Fiber
Роутинг в Fiber веб-приложении
Сериализация данных в JSON
Хранение данных в памяти Go-приложения
CRUD-операции в Fiber
Валидация HTTP-запросов
HTTP Middleware
JWT-авторизация на сервере
Шаблонизация в Go
Обработка ошибок в веб-приложении
DDD на Javascript
Перейти к программе
О курсе
Шаблоны проектирования
Конфигурация
Изменяемая конфигурация
Объекты-Сущности, Объекты-Значения и внедренные объекты
Fluent Interface
Сборщики
Прокси
Пишем код правильно
Введение
Use cases
Сущности и связи
Архитектура
Валидация
Dependency Injection Container
Предметная область
Изменяемость
Java-разработчик
Перейти к программе
Введение
Привет, Мир!
Комментарии
Инструкции (Statements)
Как мы проверяем ваши решения
Ошибки оформления (синтаксиса)
Арифметические операции
Операторы
Коммутативная операция
Композиция операций
Приоритет операций
Числа с плавающей точкой
Линтер
Кавычки
Экранирующие последовательности
Конкатенация
Что такое переменная
Изменение переменной
Выбор имени переменной
Ошибки при работе с переменными
Выражения в определениях
Переменные и конкатенация
Именование переменных
Магические числа
Константы
Зачем нужны типы данных
Явная типизация
Какие бывают типы
Значение null
Явное преобразование типов
Методы и их вызов
Параметры методов
Вызов метода — выражение
Неизменяемость строк
Цепочки вызовов методов
Детерминированность
Стандартная библиотека
Какие бывают методы
Создание (определение) метода
Метод main
Возврат значений
Определение методов
Необязательные параметры методов
Логический тип
Сравнение строк
Комбинирование операций и методов
Логические операторы
Отрицание
Условная конструкция (if)
Конструкция if-else
Конструкция else if
Тернарный оператор
Конструкция Switch
Цикл while
Агрегация данных (Числа)
Агрегация данных (Строки)
Обход строк
Условия внутри цикла
Формирование строк в циклах
Синтаксический сахар
Инкремент и декремент
Возврат из циклов
Цикл for
Пакеты
О курсе
Синтаксис
Модификация
Цикл For
Агрегация
Цикл for-each
Удаление элементов массива
Управляющие инструкции
Вложенные массивы
StringBuilder
Обработка строк через преобразование в массив
Вложенные циклы
Теория множеств
Сортировка массивов
Big O
Реализация массивов
Введение
Операционные системы
Командная строка
Навигация
Интерфейс командной строки
Файловая структура
Чтение файлов
Grep
Редактирование файлов
Потоки
Пайплайн
Манипулирование файловой структурой
Переменные окружения
История
Пользователи и группы
Sudo
Права доступа
Пакетный менеджер
Выполнение программ
Введение
Рабочий процесс
Интеграция с GitHub
Рабочая директория
Анализ сделанных изменений
Анализ истории изменений
Отмена изменений в рабочей директории
Отмена коммитов
Изменение последнего коммита
Индекс
Перемещение по истории
Понимание Git
Игнорирование файлов
Stash
Открытые проекты
Введение
Запуск первой программы на Java
Работа с несколькими файлами
JAR файлы
Зависимости
Инициализация Gradle-проекта
Gradle
Установка зависимостей
JDK, JRE, JVM
О курсе
Статические методы
Объекты
Классы
Доступ к свойствам объекта
Ссылочные типы данных
Строки
Классы обертки
Интерфейсы
Исключения
Пакеты
О курсе
Создание собственных типов
Класс Объект
Сравнение объектов
Lombok
Data-классы
Состояние объектов
Статические поля
Введение
ArrayList
Обход списков
Списки в действии
Списки в определении типов
Множественные операции над списками
Сортировка списков
Связанный список (LinkedList)
Введение
HashMap
Обход Map
Структура Map в действии
Введение
Лямбда-функции
Сортировка списков
Методы Compute в Map
Функциональный интерфейс (Functional Interface)
Ссылки на методы (Method References)
Функции высших порядков
Введение в курс
Как работают дженерики
Примеры встроенных дженериков
Реализация дженериков
Параметрический полиморфизм
Обобщенные методы
Статические обобщенные методы
Wildcard для спецификации подтипов
Введение
Декларативное программирование
Отображение (map)
Фильтрация
Свертка (reduce)
Цепочка вызовов
Стандартные методы свертки (Collectors)
Выравнивание данных (Flat Map)
Поиск элементов (find)
Как эффективно работать со стримами
Введение
Причины тестирования
Утверждения
Библиотека AssertJ
Матчеры
Модульные тесты
JUnit
Подготовка данных
Плохие и хорошие практики тестирования
Покрытие кода тестами
Разработка через тестирование
Фикстуры
Введение
GitHub Actions
Задания
Экшены
О курсе
Билдер (Builder)
Синглтон (Singleton)
Моделирование предметной области
Связь многие ко многим
Введение
Классы и объекты
Интерфейсы
Полиморфизм
Паттерны
Наследование
Ошибки
Рефлексия
Паттерны (продолжение)
Введение
Что такое интернет
Как соединяются компьютеры
Локальные и глобальные сети
Компьютерные адреса
Обмен информацией между компьютерами
Клиент-серверная архитектура
Сайт в интернете
Безопасность в интернете. Протокол HTTPS
Безопасность в интернете и цифровой след
Приватность и безопасность в интернете
Заключение
Введение
Введение в HTML
Блочная модель
Семантический HTML
Базовая структура HTML документа
Основы CSS
Каскадность в CSS
Chrome DevTools
Редакторы кода
Emmet
Публикация в интернете
Графические редакторы
Введение
Блочная модель и CSS
Стили текста
Шрифты и работа с ними
Списки
Колонки
Единицы измерения
Медиаэлементы
Таблицы
Формы
Селекторы
Псевдоклассы
Псевдоэлементы
Переполнение
CSS Переменные
Фон
Градиенты
О курсе
HTTP 1.0
HTTP 1.1
Тело HTTP-запроса
Отправка форм
Transfer-Encoding
Передача данных query string
Перенаправления
Базовая аутентификация
Curl
Cookies
HTTPS
HTTP2 и HTTP3
Введение
Реляционные базы данных
Структура баз данных
Язык SQL
Подключение к БД с помощью psql
Таблицы
Первичный ключ и автоинкремент
Запросы на выборку
Фильтрация данных
Обработка особых значений
Фильтрация строк
Регулярные выражения
Сложные условия фильтрации
Фильтрация данных по диапазону
Поиск строк по значениям из набора
Сортировка данных
Ограничение выборки
Уникальные строки
Агрегатные функции
Группировка по выборке
Фильтрация c помощью оператора HAVING
Вставка и модификация данных
Основные ограничения полей
Изменение структуры таблицы (ALTER)
Транзакционность
Введение
Несколько таблиц
Типы соединения таблиц
CROSS JOIN (перекрестное соединение)
INNER JOIN (внутреннее соединение)
Псевдонимы (aliases)
INNER JOIN и WHERE
INNER JOIN и GROUP BY
LEFT JOIN (Левое внешнее соединение)
ANTI JOIN (левое соединение с NULL)
FULL JOIN (полное соединение)
SELF JOIN (соединение таблицы с собой)
Соединение трех и более таблиц
Подзапросы
Подзапросы и соединения
VIEW и CTE
Заключение
Реляционная модель данных
Первая нормальная форма
Вторая нормальная форма
Третья нормальная форма
Онтология
Внешние ключи
Производительность
Введение
Общие принципы работы
Конструкция try-with-resources
Стейтменты
Паттерн DAO
Введение
Архитектура веба
Микрофреймворк Javalin
Обработчики запросов
HTTP-сессия
Динамические маршруты
Шаблонизатор
Лейауты в JTE
Безопасность
Поисковые формы
Хранение данных
Модифицирующие формы
Валидация
Именованные маршруты
Создание CRUD на Javalin
Model-View-Controller (MVC)
Middlewares
Cookies
Сессия
Флеш-сообщения
Работа с базой данных в Javalin
Деплой
Сервлеты
Введение
Представление символов и метасимвол
Символьные классы
Позиция внутри строки
Альтернатива
Квантификация
Жадность
Группировка и обратная связь
Модификаторы
Просмотр вперед и назад
Поиск по условию
Флаги
О курсе
Для чего используется HTTP API
HTTP-запросы в браузере
Пример HTTP API
CRUD
HTTPie
Виды API
Аутентификация в HTTP API
Авторизация в API
OpenAPI (Swagger)
Postman
Введение
Знакомство с Spring Boot
Аннотации
HTTP и CRUD приложения
Объект ResponseEntity
REST API в Spring Boot
Конфигурация
Спецификация JPA Entity
Обработка ошибок
Сравнение сущностей
Аудит в JPA
Возможности JPA Repository
Инверсия зависимостей
Бины и область видимости
Интеграционные тесты
Шаблон проектирования DTO
Преобразование DTO в сущность
Преобразование DTO в сущность для обновления
Автоматическая конвертация сущностей в DTO и обратно
Валидация сущностей
Частичное обновление
Связь «Один ко многим»
CRUD на Spring Boot
Поиск
Слой сервисов
Аутентификация
Профили
Работа со статическими ресурсами
Введение
Многопоточность
Многопоточность в Java
Примитивы синхронизации
Асинхронность
Многопоточность в Spring
Docker
Testcontainers
Введение
Супервизор
TCP/IP
Интерфейсы
Пользователи и права доступа
Файловая система
Процессы и сигналы
Введение
Запуск
Приложение в контейнере
Работа с образами
Управление контейнерами
Сеть
Шаринг данных
Подготовка собственного образа
Слои, кеширование и оптимизации
Docker Compose
Введение и установка
KV хранилище
Кэш
Счетчики онлайн событий
Хранение списков с Lists
Составные структуры с Hashes
Проверка на уникальность с Sets
Организация рейтингов с Sorted Sets
Проверка на уникальность в больших данных с HyperLogLog
Брокер сообщений Redis
Реалтайм чат с Redis PubSub
Введение
Начало карьеры в IT
Резюме
Эффективное сопроводительное письмо
Поиск работы в IT
Подготовка к интервью
Борьба со стрессом
Интервью
Работа с отказами
Вхождение в рабочий процесс
Развитие soft skills
Нетворкинг
Профиль LinkedIn как инструмент поиска работы
Профиль на Хабр Карьере
Заключение
Введение
Оформление профиля на GitHub
Портфолио: стажировка в открытых проектах
Подготовка к интервью
Интервью
Заключение
Автоматизация деплоя
Перейти к программе
Введение
Ad-Hoc
Файл инвентаризации
Плейбук
Теги
Обработчики (Handlers)
Переменные
Переменные в файле инвентаризации
Факты
Циклы
Условия
Фильтры
Регистрация результата
Роли
Устройство ролей
Коллекции
Ansible Vault
Введение
GitHub Actions
Задания
Экшены
Введение
Деплой на PaaS
12 Факторов
Сборка проекта
Деплой
Прокси-сервер (Caddy)
Горизонтальное масштабирование
Организация работы с базой данных
Мониторинг
СИКП на JS
Перейти к программе
Введение
Guard Expression
Параметры по умолчанию
Выполнение функций
Объекты первого класса
Лексическое окружение (LexicalEnvironment)
Возврат функций из функций
Частичное применение
Каррирование
Введение
Точки
Пары
Моделирование
Барьеры абстракции
Реализация пар
Рациональные числа
Введение
Представление последовательностей
Разметка
Отображение списков
Фильтрация списков
Свертка
Стандартные интерфейсы
Иерархические структуры
Уровневое проектирование
Введение
Игровой дизайн: карточный бой
Инверсия
Помеченные данные
Диспетчеризация по типу. Аддитивность.
Объекты
Нативные объекты
Классы
Полиморфизм
Введение
Массив
Map
Set
Fluent interface
Неизменяемость
Ленивые вычисления
getter и мемоизация
Операция rest
Операция spread
Дестракчеринг
Асинхронное программирование на JS
Перейти к программе
Введение
Стек вызовов (Call Stack)
Асинхронный код
Возврат в асинхронном коде
Упорядочивание асинхронных операций
Обработка ошибок
Параллельное выполнение операций
Таймеры
Промисы (Promise)
Обработка ошибок в промисах
Цепочка промисов
Promise.all
new Promise
Async и Await
HTTP-запросы
Введение
Event loop
Таймеры
Callback hell
Функция each
Раннее связывание
Работа с ошибками
Event emitter
Основы JavaScript
Перейти к программе
Введение
Hello, World!
Инструкции
Арифметические операции
Ошибки оформления (синтаксиса и линтера)
Строки
Переменные
Выражения в определениях
Именование
Интерполяция
Извлечение символов из строки
Типы данных
Неизменяемость и примитивные типы
Функции и их вызов
Сигнатура функции
Вызов функции — выражение
Функции с переменным числом параметров
Детерминированность
Стандартная библиотека
Свойства и методы
Цепочка вызовов
Определение функций
Возврат значений
Параметры функций
Необязательные параметры функций
Упрощенный синтаксис функций
Логика
Логические операторы
Результат логических операций
Условные конструкции
Тернарный оператор
Конструкция Switch
Цикл while
Агрегация данных
Обход строк в цикле
Условия внутри тела цикла
Инкремент и декремент
Цикл for
Модули
Laravel
Перейти к программе
О курсе
Hello World
Запрос-Ответ
Шаблонизатор Blade
Макеты (Layout)
Консоль (Tinker)
Конфигурация
ORM
Модель
Контроллер
Список (CRUD)
Просмотр (CRUD)
Работа с формами
Создание (CRUD)
Обновление (CRUD)
Удаление (CRUD)
Ресурсная маршрутизация
О курсе
Настройка ORM
Основные концепции
Схема
Модель
Массовое присвоение
Построение запросов (Query Builder)
Связи
Коллекции
Скоупы
React
Перейти к программе
Введение
Компоненты
JSX
Props
Работа с коллекциями
Различия jsx и html
Обработка имён классов
Children
Состояние
События
Автоматное программирование
Формы
Неизменяемость
Вложенные компоненты
Функциональные компоненты
Контекст (Context API)
Virtual Dom
Тестирование
Асинхронная обработка
Жизненный цикл компонента
Производительность
Refs
Введение в хуки
Хук useState
Хук useEffect
Хук useContext
Хук useRef
Хуки useCallback и useMemo
Композиция компонентов
Заключение
Введение
Redux
Редьюсеры
Мидлвары
Подключение Redux Toolkit к React
Подробнее о слайсах
Нормализация данных в Redux
Механизм Entity Adapter
Механизм ExtraReducers
Асинхронные запросы
RTK Query
Основы аналитики данных
Перейти к программе
Введение
Основы Google Sheets
Первая бизнес-задача
Визуализация
Вторая бизнес-задача
Направления в аналитике
Источники данных
Знакомство с SQL
Математика для аналитиков
Python в аналитике
Postman
Перейти к программе
Введение
Начало работы
Отправка запросов
Куки
Авторизация
Коллекции
Окружения
API
Мок сервер
Тесты
Jest
Перейти к программе
Введение
Причины тестирования
Утверждения
Библиотека power-assert
Jest
Матчеры
Модульные тесты
Подготовка данных
Плохие и хорошие практики тестирования
Покрытие кода тестами
Разработка через тестирование
Фикстуры
Введение
Тестирование ошибок
Побочные эффекты
Тестирование кода, взаимодействующего с файлами
Инверсия зависимостей
Тестирование HTTP-запросов
Манкипатчинг
Моки
Property-based тестирование
Веб-разработка на Express
Перейти к программе
Введение
Маршруты
Тесты
Логирование
Отладка
Шаблоны
Assets
REST
Middlewares
Ошибки
Сессии
Авторизация
Flash
Основы HTTP
Перейти к программе
СИКП на PHP
Перейти к программе
Введение
Map: Отображение списков
Фильтрация коллекций
Функция zip
Функция reduce
Сортировка
Частичное применение функции
Partition
Группировка
Введение
Точки
Пары
Моделирование
Барьеры абстракции
Реализация пар
Рациональные числа
Введение
Представление последовательностей
Разметка
Отображение списков
Фильтрация списков
Свертка
Стандартные интерфейсы
Иерархические структуры
Уровневое проектирование
Введение
Hello World
Абстракция с помощью функций
Комбинирование функций
Линейно-рекурсивный процесс
Линейно-итеративный процесс
Функции первого класса и передача функций как аргументов
Функции первого класса и возврат как значения
Данные
Абстракция данных
Замкнутые множества
Map
Фильтрация
Свертка
Деревья
Стандартные интерфейсы
Оператор присваивания
Объекты
Преимущества присваивания
Недостатки присваивания
Bootstrap
Перейти к программе
Введение
Что такое JS?
Установка JavaScript
NPM
Зависимости
Зависимости для разработки
Lock-файл
Глобальная установка пакетов
NPX
Точка входа
Линтинг
Введение
Установка
Расширение CSS
Шаблонные селекторы
Переменные
Миксины
Введение
Миксины как функции
Типы данных
Функции
Условные конструкции
Сложные типы данных
Циклы
Введение
Установка
Теги и контент
Подключение файлов
JavaScript
Условные конструкции
Циклы
Миксины
Введение
Почему Bootstrap
Установка Bootstrap
Сетка
Адаптивность
Работа с текстом
Таблицы
Компоненты
Утилиты
Bootstrap Icons
Введение
Установка
Gulpfile
Базовые функции Gulp
Watch
Сторонние пакеты
Введение
Установка
Создание пользовательского компонента
Создание пользовательских утилит
Цветовые схемы Bootstrap
Темная и светлая тема
Оптимизация проекта
Тестирование на Playwright (JS/TS)
Перейти к программе
Введение
Подготовка
Рабочий процесс
Локаторы
События
Утверждения
Скриншот тестирование
Генерация тестов
Page Object Models
Структура тестов
Состояние
Мок HTTP-запросов
Тестирование API
Встроенные Репортеры + Allure
Непрерывная интеграция
Основы Go
Перейти к программе
Введение
Привет, Мир!
Go, Go, Go
Переменные
Функции
Логический тип
Математика и числа
Строки
Полезные функции для строк
Условные конструкции
Альтернативная условная конструкция
Константы
Цикл For
Структуры и методы в Go
Генерация строк в циклах
Указатели
Возврат структур из функций
Nil
Преобразование типов
Ошибки
Анонимные функции (Лямбды)
Массивы
Срезы
Цикл for и срезы
Структуры в срезах
Сравнение срезов
Слайсы из срезов
Множественные операции над слайсами
Копирование срезов
Передача срезов в функцию
Сортировка срезов
Карты
Обход карт
Хранение структур в картах
Вложенные карты
Практики использования карт
Непрерывная интеграция (CI)
Перейти к программе
Введение
GitHub Actions
Задания
Экшены
Python-разработчик
Перейти к программе
Введение
Hello, World!
Комментарии
Инструкции (Statements)
Как мы проверяем ваши решения
Синтаксические ошибки
Арифметические операции
Операторы
Коммутативная операция
Композиция операций
Приоритет
Числа с плавающей точкой
Линтер
Строки
Экранированные последовательности
Конкатенация
Кодировка
Что такое переменная
Изменение переменной
Выбор имени переменной
Выражения в определениях
Переменные и конкатенация
Именование переменных
Магические числа
Константы
Интерполяция
Извлечение символов из строки
Срезы строк
Multi-line строки
Типы данных
Сильная (или Строгая) типизация
Неизменяемость примитивных типов
Явное преобразование типов
Функции и их вызов
Параметры по умолчанию
Вызов функции — выражение
Функции с переменным числом параметров
Детерминированность
Объекты
Неизменяемость
Цепочка вызовов
Создание (определение) функций
Возврат значений
Необязательные параметры функций
Именованные аргументы
Аннотации типов
Логический тип
Сравнение строк
Комбинирование операций и функций
Логические операторы
Отрицание
Результат логических выражений
Условная конструкция (if)
Условная конструкция else
Конструкция else + if = elif
Тернарный оператор
Оператор Match
Цикл While
Агрегация данных (Числа)
Агрегация данных (Строки)
Обход строк
Условия внутри тела цикла
Синтаксический сахар
Возврат из циклов
Цикл For
Цикл for и функция range
Отладка
Модули
Модули поглубже
Пакеты
Модуль random
Кортежи
История развития языка Python
Введение
Синтаксис
Модификация
Проверка существования значения
Цикл for и списки
Циклы с индексами
Ссылки
Агрегация
Удаление элементов списка
Управляющие инструкции
Вложенные списки
Теория множеств
Генерация строки в цикле
Обработка строк через преобразование в список
Вложенные циклы
Сортировка списков
Стек
Big O
Срезы
Деструктуризация
Деструктуризация и оператор упаковки
Создание новых списков и оператор распаковки
Массивы в памяти компьютера
Введение
Синтаксис
Изменение данных в словаре
Инициализация новых значений и defaultdicts
Множества
Изменение множеств
Операции над множествами
Методы объектов множеств
Хеш-таблицы
Введение
Операционные системы
Командная строка
Навигация
Интерфейс командной строки
Файловая структура
Чтение файлов
Grep
Редактирование файлов
Потоки
Пайплайн
Манипулирование файловой структурой
Переменные окружения
История
Пользователи и группы
Sudo
Права доступа
Пакетный менеджер
Выполнение программ
Введение
Рабочий процесс
Интеграция с GitHub
Рабочая директория
Анализ сделанных изменений
Анализ истории изменений
Отмена изменений в рабочей директории
Отмена коммитов
Изменение последнего коммита
Индекс
Перемещение по истории
Понимание Git
Игнорирование файлов
Stash
Открытые проекты
Введение
Подробнее о Python
Установка Python
Подготовка проекта
Зависимости
Зависимости для разработки
Lock-файл
Виртуальные окружения
Глобальная установка пакетов
Локальный запуск пакетов
Точка входа
Линтинг
Введение
Окружение
Чистые функции
Разделение команд и запросов
Именованные параметры
Операторы упаковки
Операторы распаковки
Объекты первого класса
Функции высшего порядка
Декораторы
Ленивые вычисления
Отображение (map)
Фильтрация (filter)
Агрегация (reduce)
Comprehensions
Введение
Цели тестирования
Утверждения
Фреймворк Pytest
Модульные тесты
Фикстуры
Плохие и хорошие практики тестирования
Тестирование через документацию
Покрытие кода тестами
Разработка через тестирование
Тестовые данные
Введение
Онтология
Точки на координатной плоскости
Семантика списков и словарей
Создание абстракции
Интерфейсы
Уровневое проектирование
Инварианты
Введение
Рекурсия
Итеративный процесс
Определения
Виртуальная файловая система
Манипуляции с виртуальной файловой системой
Обход дерева
Агрегация
Агрегация 2
Аккумулятор
Введение
Концепции ООП
Классы, пространства имен, атрибуты
Объекты-одиночки и глобальные переменные
Инстанцирование классов и экземпляры
Методы
Инициализация и протоколы
Свойства
Наследование
Исключения
Введение
Шаблоны Проектирования
Конфигурация
Изменяемая конфигурация
Объекты-сущности, Объекты-значения и внедренные объекты
Fluent Interface
Сборщики (Builders)
Пишем код правильно
Введение
GitHub Actions
Задания
Экшены
Введение
Что такое интернет
Как соединяются компьютеры
Локальные и глобальные сети
Компьютерные адреса
Обмен информацией между компьютерами
Клиент-серверная архитектура
Сайт в интернете
Безопасность в интернете. Протокол HTTPS
Безопасность в интернете и цифровой след
Приватность и безопасность в интернете
Заключение
Введение
Представление символов и метасимвол
Символьные классы
Позиция внутри строки
Альтернатива
Квантификация
Жадность
Группировка и обратная связь
Модификаторы
Просмотр вперед и назад
Поиск по условию
Флаги
Введение
Введение в HTML
Блочная модель
Семантический HTML
Базовая структура HTML документа
Основы CSS
Каскадность в CSS
Chrome DevTools
Редакторы кода
Emmet
Публикация в интернете
Графические редакторы
Введение
Блочная модель и CSS
Стили текста
Шрифты и работа с ними
Списки
Колонки
Единицы измерения
Медиаэлементы
Таблицы
Формы
Селекторы
Псевдоклассы
Псевдоэлементы
Переполнение
CSS Переменные
Фон
Градиенты
О курсе
HTTP 1.0
HTTP 1.1
Тело HTTP-запроса
Отправка форм
Transfer-Encoding
Передача данных query string
Перенаправления
Базовая аутентификация
Curl
Cookies
HTTPS
HTTP2 и HTTP3
О курсе
Для чего используется HTTP API
HTTP-запросы в браузере
Пример HTTP API
CRUD
HTTPie
Виды API
Аутентификация в HTTP API
Авторизация в API
OpenAPI (Swagger)
Postman
Введение
Реляционные базы данных
Структура баз данных
Язык SQL
Подключение к БД с помощью psql
Таблицы
Первичный ключ и автоинкремент
Запросы на выборку
Фильтрация данных
Обработка особых значений
Фильтрация строк
Регулярные выражения
Сложные условия фильтрации
Фильтрация данных по диапазону
Поиск строк по значениям из набора
Сортировка данных
Ограничение выборки
Уникальные строки
Агрегатные функции
Группировка по выборке
Фильтрация c помощью оператора HAVING
Вставка и модификация данных
Основные ограничения полей
Изменение структуры таблицы (ALTER)
Транзакционность
Введение
Несколько таблиц
Типы соединения таблиц
CROSS JOIN (перекрестное соединение)
INNER JOIN (внутреннее соединение)
Псевдонимы (aliases)
INNER JOIN и WHERE
INNER JOIN и GROUP BY
LEFT JOIN (Левое внешнее соединение)
ANTI JOIN (левое соединение с NULL)
FULL JOIN (полное соединение)
SELF JOIN (соединение таблицы с собой)
Соединение трех и более таблиц
Подзапросы
Подзапросы и соединения
VIEW и CTE
Заключение
Реляционная модель данных
Первая нормальная форма
Вторая нормальная форма
Третья нормальная форма
Онтология
Внешние ключи
Производительность
Введение
Стандартный workflow
Контекстные менеджеры
Запросы
Курсор
Транзакции
DAO
Введение в асинхронность
Основы async/await
Задачи и структурная конкурентность
Таймауты и отмена задач
Конкурентные шаблоны
Очереди и синхронизация
Работа с сетью
Асинхронные базы данных
Блокирующие операции и адаптеры
Тестирование асинхронного кода
О курсе
Архитектура Веба
Веб-сервер
Встроенный веб-сервер
Flask
Обработчики запросов
HTTP Сессия (запрос и ответ)
Динамические маршруты
Middlewares
Шаблонизатор
Наследование шаблонов
Безопасность
Поисковые формы
Персистентность
Модифицирующие формы
Логирование
Именованные маршруты
Flash
CRUD
CRUD: Создание
CRUD: Обновление
CRUD: Удаление
Model-View-Controller (MVC)
Cookies
Сессия
Работа с базой данных в Flask
Деплой
Введение
Тестирование ошибок
Побочные эффекты
Тестирование кода, взаимодействующего с файлами
Инверсия зависимостей
Тестирование HTTP-запросов
Манкипатчинг
Мокинг
Введение
Hello World
Запрос-Ответ
Приложения
Шаблонизация
Наследование шаблонов (Extends)
Представления (Views)
Маршрутизация
Django ORM
Работа с моделями
Конфигурация
Django Admin
Интеграционные тесты
Список (CRUD)
Просмотр (CRUD)
Работа с формами
Создание (CRUD)
Обновление (CRUD)
Удаление (CRUD)
Введение
Настройка Django ORM
Основные концепции
Модель
Запрос данных из базы
Связи
Многие ко Многим
Аннотирование и агрегация
Транзакции
Эффективное использование ORM
Введение
Параметрический полиморфизм
Диспетчеризация по ключу (данные)
Диспетчеризация по ключу (функции)
Диспетчеризация по имени файла
Полиморфизм (утиная типизация)
Null Object Pattern
Код, который убивает полиморфизм
Инверсия зависимостей
Стратегия (Паттерн)
Динамическая диспетчеризация
Фабрика (Паттерн)
Декоратор (Паттерн)
Шаблоны проектирования (Паттерны)
Объектная композиция
Состояние (Паттерн)
Множественное наследование и миксины
О курсе
Наследование
Модификаторы доступа
Позднее связывание
Шаблонный метод
Переопределение методов
Принцип подстановки Лисков
Исключения
Динамическая диспетчеризация
Абстрактные классы
Позднее статическое связывание
Метаклассы
Композиция вместо наследования
Миксины
Введение
Супервизор
TCP/IP
Интерфейсы
Пользователи и права доступа
Файловая система
Процессы и сигналы
Введение
Запуск
Приложение в контейнере
Работа с образами
Управление контейнерами
Сеть
Шаринг данных
Подготовка собственного образа
Слои, кеширование и оптимизации
Docker Compose
Введение и установка
KV хранилище
Кэш
Счетчики онлайн событий
Хранение списков с Lists
Составные структуры с Hashes
Проверка на уникальность с Sets
Организация рейтингов с Sorted Sets
Проверка на уникальность в больших данных с HyperLogLog
Брокер сообщений Redis
Реалтайм чат с Redis PubSub
Введение
Начало карьеры в IT
Резюме
Эффективное сопроводительное письмо
Поиск работы в IT
Подготовка к интервью
Борьба со стрессом
Интервью
Работа с отказами
Вхождение в рабочий процесс
Развитие soft skills
Нетворкинг
Профиль LinkedIn как инструмент поиска работы
Профиль на Хабр Карьере
Заключение
Введение
Оформление профиля на GitHub
Портфолио: стажировка в открытых проектах
Подготовка к интервью
Интервью
Заключение
PHP-разработчик
Перейти к программе
Введение
Hello, World!
Инструкции
Арифметические операции
Линтер
Строки
Типы данных
Переменные
Выражения в определениях
Интерполяция
Извлечение символов из строки
Функции и их вызов
Сигнатура функции
Вызов функции — выражение
Функции с переменным числом параметров
Детерминированность и побочные эффекты
Стандартная библиотека
Определение функции
Возврат значений из функции
Параметры функций
Необязательные параметры функций
Окружение
Именование
Логические операции
Условные конструкции if и if-else
Тернарный оператор и Элвис
Конструкция Switch
Цикл while
Использование циклов
Пограничные случаи
Цикл for
Погружаясь в строки
Дата и время
Отладка
Ошибки
Включение файлов
Пространство имен
Вложенные пространства имен
Импорт функций
Описание типов
Ссылки
История PHP
Введение
Синтаксис
Проверка существования значения
Цикл for
Обмен значений
Цикл Foreach
Агрегация
Управляющие инструкции
Удаление элементов массива
Вложенные массивы
Генерация строки в цикле
Обработка строк через преобразование в массив
Вложенные циклы
Теория множеств
Сортировка массивов
Ссылки
Стек
Оценка Big O
Деструктуризация
Оператор Spread
Массивы в памяти компьютера
О курсе
Синтаксис
Модификация
Ассоциативный массив в действии
Проверка существования ключа
Цикл foreach
Вложенные массивы
Популярные функции для работы с ассоциативными массивами
Деструктуризация
Хеш-таблицы
Массив и ассоциативный массив
Введение
Операционные системы
Командная строка
Навигация
Интерфейс командной строки
Файловая структура
Чтение файлов
Grep
Редактирование файлов
Потоки
Пайплайн
Манипулирование файловой структурой
Переменные окружения
История
Пользователи и группы
Sudo
Права доступа
Пакетный менеджер
Выполнение программ
Введение
Рабочий процесс
Интеграция с GitHub
Рабочая директория
Анализ сделанных изменений
Анализ истории изменений
Отмена изменений в рабочей директории
Отмена коммитов
Изменение последнего коммита
Индекс
Перемещение по истории
Понимание Git
Игнорирование файлов
Stash
Открытые проекты
Введение
Установка PHP
Подробнее о PHP
Composer
Управление зависимостями
Автозагрузка
Lock-файл
Скрипты
Исполняемые файлы в пакетах
Введение
Веб внутри PHP
HTTP
Микрофреймворки
Шаблонизация
СУБД
ORM
MVC
Тесты
Коллекции
Другое
Фреймворки
Заключение
Введение
Чистые функции
Разделение команд и запросов
Именованные параметры
Упаковка аргументов
Распаковка аргументов
Полезные функции для работы с коллекциями
Объекты первого класса
Функции высшего порядка
Отображение
Фильтрация
Агрегация
Цепочка операций
Полезные функции высшего порядка
Замыкание
Парадигмы программирования
Абстракция с помощью функций
Введение
Причины писать тесты
Утверждения
PHPUnit
Матчеры
Модульные тесты
Подготовка данных
Data Provider
Плохие и хорошие практики тестирования
Покрытие кода тестами
Разработка через тестирование
Фикстуры
Введение
Онтология
Точки на координатной плоскости
Семантика массивов
Создание абстракции
Интерфейсы
Уровневое проектирование
Инварианты
Введение
Определения
Виртуальная файловая система
Манипуляции с виртуальной файловой системой
Обход дерева
Агрегация
Повторные вычисления
Аккумулятор
HTML-дерево
О курсе
Структуры
Классы
Автозагрузка классов
Свойства
Указатели
Сравнение объектов
Конструктор
Инкапсуляция
Сокрытие данных (Data Hiding)
Изменяемость
Магический метод __toString()
Константы классов
Статические свойства
Статические методы
Интерфейсы
Плюсы и минусы разных способов организации абстракций
Исключения
О курсе
Шаблоны Проектирования
Конфигурация
Изменяемая конфигурация
Класс stdClass
PHPUnit
DS
Collect
Объекты-Сущности, Объекты-Значения и встраиваемые объекты
Fluent Interface
Carbon
Symfony String
Пишем код правильно
Введение
GitHub Actions
Задания
Экшены
Введение
Представление символов и метасимвол
Символьные классы
Позиция внутри строки
Альтернатива
Квантификация
Жадность
Группировка и обратная связь
Модификаторы
Просмотр вперед и назад
Поиск по условию
Флаги
Введение
Что такое интернет
Как соединяются компьютеры
Локальные и глобальные сети
Компьютерные адреса
Обмен информацией между компьютерами
Клиент-серверная архитектура
Сайт в интернете
Безопасность в интернете. Протокол HTTPS
Безопасность в интернете и цифровой след
Приватность и безопасность в интернете
Заключение
Введение
Введение в HTML
Блочная модель
Семантический HTML
Базовая структура HTML документа
Основы CSS
Каскадность в CSS
Chrome DevTools
Редакторы кода
Emmet
Публикация в интернете
Графические редакторы
Введение
Блочная модель и CSS
Стили текста
Шрифты и работа с ними
Списки
Колонки
Единицы измерения
Медиаэлементы
Таблицы
Формы
Селекторы
Псевдоклассы
Псевдоэлементы
Переполнение
CSS Переменные
Фон
Градиенты
О курсе
HTTP 1.0
HTTP 1.1
Тело HTTP-запроса
Отправка форм
Transfer-Encoding
Передача данных query string
Перенаправления
Базовая аутентификация
Curl
Cookies
HTTPS
HTTP2 и HTTP3
О курсе
Для чего используется HTTP API
HTTP-запросы в браузере
Пример HTTP API
CRUD
HTTPie
Виды API
Аутентификация в HTTP API
Авторизация в API
OpenAPI (Swagger)
Postman
Введение
Реляционные базы данных
Структура баз данных
Язык SQL
Подключение к БД с помощью psql
Таблицы
Первичный ключ и автоинкремент
Запросы на выборку
Фильтрация данных
Обработка особых значений
Фильтрация строк
Регулярные выражения
Сложные условия фильтрации
Фильтрация данных по диапазону
Поиск строк по значениям из набора
Сортировка данных
Ограничение выборки
Уникальные строки
Агрегатные функции
Группировка по выборке
Фильтрация c помощью оператора HAVING
Вставка и модификация данных
Основные ограничения полей
Изменение структуры таблицы (ALTER)
Транзакционность
Введение
Несколько таблиц
Типы соединения таблиц
CROSS JOIN (перекрестное соединение)
INNER JOIN (внутреннее соединение)
Псевдонимы (aliases)
INNER JOIN и WHERE
INNER JOIN и GROUP BY
LEFT JOIN (Левое внешнее соединение)
ANTI JOIN (левое соединение с NULL)
FULL JOIN (полное соединение)
SELF JOIN (соединение таблицы с собой)
Соединение трех и более таблиц
Подзапросы
Подзапросы и соединения
VIEW и CTE
Заключение
Реляционная модель данных
Первая нормальная форма
Вторая нормальная форма
Третья нормальная форма
Онтология
Внешние ключи
Производительность
Введение
Общие принципы работы
Подготовленные запросы
Результат запроса в базу данных
Транзакции
Паттерн DAO
Введение
Архитектура Веба
Веб-сервер
Встроенный в PHP веб-сервер
PHP CGI
HTML в PHP
Микрофреймворк Slim
Обработчики запросов
HTTP-сессия (запрос и ответ)
Динамические маршруты
Шаблонизатор
Безопасность
Поисковые формы
Персистентность
Модифицирующие формы
Именованные маршруты
Стандарт PSR7
Flash
CRUD
CRUD: Создание
CRUD: Обновление
CRUD: Удаление
Model-View-Controller (MVC)
Middlewares
Cookies
Сессия
Работа с базой данныx в Slim
Деплой
Введение
Тестирование ошибок
Побочные эффекты
Тестирование кода, взаимодействующего с файлами
Инверсия зависимостей
Тестирование HTTP-запросов
Моки
О курсе
Hello World
Запрос-Ответ
Шаблонизатор Blade
Макеты (Layout)
Консоль (Tinker)
Конфигурация
ORM
Модель
Контроллер
Список (CRUD)
Просмотр (CRUD)
Работа с формами
Создание (CRUD)
Обновление (CRUD)
Удаление (CRUD)
Ресурсная маршрутизация
О курсе
Настройка ORM
Основные концепции
Схема
Модель
Массовое присвоение
Построение запросов (Query Builder)
Связи
Коллекции
Скоупы
О курсе
Параметрический полиморфизм
Диспетчеризация по ключу (данные)
Диспетчеризация по ключу (функции)
Диспетчеризация по имени файла
Полиморфизм и утиная типизация
Null Object Pattern
Код, который убивает полиморфизм
Инверсия зависимостей
Полиморфизм подтипов
Стратегия (Паттерн)
Динамическая диспетчеризация
Фабрика (Паттерн)
Шаблоны проектирования (Паттерны)
Объектная композиция
Паттерн Состояние (State)
Управление зависимостями
О курсе
Наследование
Модификаторы доступа
Позднее связывание
Шаблонный метод
Переопределение методов
Принцип подстановки Лисков
Исключения
Динамическая диспетчеризация
Абстрактные классы
Позднее статическое связывание
Композиция вместо наследования
Трейты
Введение
Супервизор
TCP/IP
Интерфейсы
Пользователи и права доступа
Файловая система
Процессы и сигналы
Введение
Запуск
Приложение в контейнере
Работа с образами
Управление контейнерами
Сеть
Шаринг данных
Подготовка собственного образа
Слои, кеширование и оптимизации
Docker Compose
Введение и установка
KV хранилище
Кэш
Счетчики онлайн событий
Хранение списков с Lists
Составные структуры с Hashes
Проверка на уникальность с Sets
Организация рейтингов с Sorted Sets
Проверка на уникальность в больших данных с HyperLogLog
Брокер сообщений Redis
Реалтайм чат с Redis PubSub
Введение
Начало карьеры в IT
Резюме
Эффективное сопроводительное письмо
Поиск работы в IT
Подготовка к интервью
Борьба со стрессом
Интервью
Работа с отказами
Вхождение в рабочий процесс
Развитие soft skills
Нетворкинг
Профиль LinkedIn как инструмент поиска работы
Профиль на Хабр Карьере
Заключение
Введение
Оформление профиля на GitHub
Портфолио: стажировка в открытых проектах
Подготовка к интервью
Интервью
Заключение
Профессиональная верстка
Перейти к программе
Введение
Введение в HTML
Блочная модель
Семантический HTML
Базовая структура HTML документа
Основы CSS
Каскадность в CSS
Chrome DevTools
Редакторы кода
Emmet
Публикация в интернете
Графические редакторы
Введение
Блочная модель и CSS
Стили текста
Шрифты и работа с ними
Списки
Колонки
Единицы измерения
Медиаэлементы
Таблицы
Формы
Селекторы
Псевдоклассы
Псевдоэлементы
Переполнение
CSS Переменные
Фон
Градиенты
Введение
Поток документа
Относительное позиционирование
Абсолютное позиционирование
Относительное и абсолютное позиционирование
Фиксированное позиционирование
Плавающие элементы
Наложение элементов
Введение
Что такое Flex?
Флекс-контейнер
Перенос элементов в контейнере
Выравнивание элементов по главной оси
Выравнивание элементов по поперечной оси
Свойства Flex-элементов. Гибкость. Flex-grow
Свойства Flex-элементов. Гибкость
Свойства Flex-элементов. Расположение
Введение
Операционные системы
Командная строка
Навигация
Интерфейс командной строки
Файловая структура
Чтение файлов
Grep
Редактирование файлов
Потоки
Пайплайн
Манипулирование файловой структурой
Переменные окружения
История
Пользователи и группы
Sudo
Права доступа
Пакетный менеджер
Выполнение программ
Введение
Рабочий процесс
Интеграция с GitHub
Рабочая директория
Анализ сделанных изменений
Анализ истории изменений
Отмена изменений в рабочей директории
Отмена коммитов
Изменение последнего коммита
Индекс
Перемещение по истории
Понимание Git
Игнорирование файлов
Stash
Открытые проекты
Введение
Что такое JS?
Установка JavaScript
NPM
Зависимости
Зависимости для разработки
Lock-файл
Глобальная установка пакетов
NPX
Точка входа
Линтинг
Введение
Проверка адаптивности сайта
Viewport
Гибкие элементы
Flex
Медиа-запросы
Медиа-запросы и другие устройства
Введение
Терминология
Первая сетка
Расположение элементов в сетке
Работа с сеткой
Неявная сетка
Позиционирование и Grid
Введение
Установка
Расширение CSS
Шаблонные селекторы
Переменные
Миксины
Введение
Миксины как функции
Типы данных
Функции
Условные конструкции
Сложные типы данных
Циклы
Введение
2D трансформации. Перемещение
2D трансформации. Вращение
2D трансформации. Масштабирование
2D трансформации. Наклон
3D трансформации. Основы
3D трансформации. Функции
Введение
Установка
Теги и контент
Подключение файлов
JavaScript
Условные конструкции
Циклы
Миксины
Введение
Почему Bootstrap
Установка Bootstrap
Сетка
Адаптивность
Работа с текстом
Таблицы
Компоненты
Утилиты
Bootstrap Icons
Введение
Установка
Gulpfile
Базовые функции Gulp
Watch
Сторонние пакеты
Введение
Установка
Создание пользовательского компонента
Создание пользовательских утилит
Цветовые схемы Bootstrap
Темная и светлая тема
Оптимизация проекта
Spring Boot
Перейти к программе
Введение
Знакомство с Spring Boot
Аннотации
HTTP и CRUD приложения
Объект ResponseEntity
REST API в Spring Boot
Конфигурация
Спецификация JPA Entity
Обработка ошибок
Сравнение сущностей
Аудит в JPA
Возможности JPA Repository
Инверсия зависимостей
Бины и область видимости
Интеграционные тесты
Шаблон проектирования DTO
Преобразование DTO в сущность
Преобразование DTO в сущность для обновления
Автоматическая конвертация сущностей в DTO и обратно
Валидация сущностей
Частичное обновление
Связь «Один ко многим»
CRUD на Spring Boot
Поиск
Слой сервисов
Аутентификация
Профили
Работа со статическими ресурсами
Основы Python
Перейти к программе
Введение
Hello, World!
Комментарии
Инструкции (Statements)
Как мы проверяем ваши решения
Синтаксические ошибки
Арифметические операции
Операторы
Коммутативная операция
Композиция операций
Приоритет
Числа с плавающей точкой
Линтер
Строки
Экранированные последовательности
Конкатенация
Кодировка
Что такое переменная
Изменение переменной
Выбор имени переменной
Выражения в определениях
Переменные и конкатенация
Именование переменных
Магические числа
Константы
Интерполяция
Извлечение символов из строки
Срезы строк
Multi-line строки
Типы данных
Сильная (или Строгая) типизация
Неизменяемость примитивных типов
Явное преобразование типов
Функции и их вызов
Параметры по умолчанию
Вызов функции — выражение
Функции с переменным числом параметров
Детерминированность
Объекты
Неизменяемость
Цепочка вызовов
Создание (определение) функций
Возврат значений
Необязательные параметры функций
Именованные аргументы
Аннотации типов
Логический тип
Сравнение строк
Комбинирование операций и функций
Логические операторы
Отрицание
Результат логических выражений
Условная конструкция (if)
Условная конструкция else
Конструкция else + if = elif
Тернарный оператор
Оператор Match
Цикл While
Агрегация данных (Числа)
Агрегация данных (Строки)
Обход строк
Условия внутри тела цикла
Синтаксический сахар
Возврат из циклов
Цикл For
Цикл for и функция range
Отладка
Модули
Модули поглубже
Пакеты
Модуль random
Кортежи
История развития языка Python
Docker
Перейти к программе
Введение
Запуск
Приложение в контейнере
Работа с образами
Управление контейнерами
Сеть
Шаринг данных
Подготовка собственного образа
Слои, кеширование и оптимизации
Docker Compose
Веб разработка на Python
Перейти к программе
О курсе
Архитектура Веба
Веб-сервер
Встроенный веб-сервер
Flask
Обработчики запросов
HTTP Сессия (запрос и ответ)
Динамические маршруты
Middlewares
Шаблонизатор
Наследование шаблонов
Безопасность
Поисковые формы
Персистентность
Модифицирующие формы
Логирование
Именованные маршруты
Flash
CRUD
CRUD: Создание
CRUD: Обновление
CRUD: Удаление
Model-View-Controller (MVC)
Cookies
Сессия
Работа с базой данных в Flask
Деплой
SASS
Перейти к программе
Введение
Установка
Расширение CSS
Шаблонные селекторы
Переменные
Миксины
Введение
Миксины как функции
Типы данных
Функции
Условные конструкции
Сложные типы данных
Циклы
Junit
Перейти к программе
Введение
Причины тестирования
Утверждения
Библиотека AssertJ
Матчеры
Модульные тесты
JUnit
Подготовка данных
Плохие и хорошие практики тестирования
Покрытие кода тестами
Разработка через тестирование
Фикстуры
Основы командной строки
Перейти к программе
Введение
Операционные системы
Командная строка
Навигация
Интерфейс командной строки
Файловая структура
Чтение файлов
Grep
Редактирование файлов
Потоки
Пайплайн
Манипулирование файловой структурой
Переменные окружения
История
Пользователи и группы
Sudo
Права доступа
Пакетный менеджер
Выполнение программ
Фронтенд-разработчик
Перейти к программе
Введение
Введение в HTML
Блочная модель
Семантический HTML
Базовая структура HTML документа
Основы CSS
Каскадность в CSS
Chrome DevTools
Редакторы кода
Emmet
Публикация в интернете
Графические редакторы
Введение
Блочная модель и CSS
Стили текста
Шрифты и работа с ними
Списки
Колонки
Единицы измерения
Медиаэлементы
Таблицы
Формы
Селекторы
Псевдоклассы
Псевдоэлементы
Переполнение
CSS Переменные
Фон
Градиенты
Введение
Поток документа
Относительное позиционирование
Абсолютное позиционирование
Относительное и абсолютное позиционирование
Фиксированное позиционирование
Плавающие элементы
Наложение элементов
Введение
Что такое Flex?
Флекс-контейнер
Перенос элементов в контейнере
Выравнивание элементов по главной оси
Выравнивание элементов по поперечной оси
Свойства Flex-элементов. Гибкость. Flex-grow
Свойства Flex-элементов. Гибкость
Свойства Flex-элементов. Расположение
Введение
Терминология
Первая сетка
Расположение элементов в сетке
Работа с сеткой
Неявная сетка
Позиционирование и Grid
Введение
Hello, World!
Инструкции
Арифметические операции
Ошибки оформления (синтаксиса и линтера)
Строки
Переменные
Выражения в определениях
Именование
Интерполяция
Извлечение символов из строки
Типы данных
Неизменяемость и примитивные типы
Функции и их вызов
Сигнатура функции
Вызов функции — выражение
Функции с переменным числом параметров
Детерминированность
Стандартная библиотека
Свойства и методы
Цепочка вызовов
Определение функций
Возврат значений
Параметры функций
Необязательные параметры функций
Упрощенный синтаксис функций
Логика
Логические операторы
Результат логических операций
Условные конструкции
Тернарный оператор
Конструкция Switch
Цикл while
Агрегация данных
Обход строк в цикле
Условия внутри тела цикла
Инкремент и декремент
Цикл for
Модули
О курсе
Синтаксис
Модификация
Проверка существования значения
Цикл for
Ссылки
Агрегация
Цикл for...of
Удаление элементов массива
Управляющие инструкции
Вложенные массивы
Генерация строки в цикле
Обработка строк через преобразование в массив
Вложенные циклы
Теория множеств
Сортировка массивов
Стек
Big O
Деструктуризация
Rest и деструктуризация
Spread и создание новых массивов
Массивы в памяти компьютера
О курсе
Синтаксис
Модификация
Ссылки
Объекты в действии
Проверка существования свойства
Обход свойств объекта
Вложенные объекты
Слияние
Клонирование и копирование
Создание новых объектов и spread
Деструктуризация
Хеш-таблицы
Введение
Операционные системы
Командная строка
Навигация
Интерфейс командной строки
Файловая структура
Чтение файлов
Grep
Редактирование файлов
Потоки
Пайплайн
Манипулирование файловой структурой
Переменные окружения
История
Пользователи и группы
Sudo
Права доступа
Пакетный менеджер
Выполнение программ
Введение
Рабочий процесс
Интеграция с GitHub
Рабочая директория
Анализ сделанных изменений
Анализ истории изменений
Отмена изменений в рабочей директории
Отмена коммитов
Изменение последнего коммита
Индекс
Перемещение по истории
Понимание Git
Игнорирование файлов
Stash
Открытые проекты
Введение
Что такое JS?
Установка JavaScript
NPM
Зависимости
Зависимости для разработки
Lock-файл
Глобальная установка пакетов
NPX
Точка входа
Линтинг
О курсе
Чистые функции
Область видимости и замыкания
Разделение команд и запросов
Оператор Rest (упаковка аргументов)
Оператор Spread (распаковка аргументов)
Деструктуризация параметров
Объекты первого класса
Функции высшего порядка
Отображение (map)
Фильтрация (filter)
Агрегация (reduce)
Цепочка операций
Парадигмы программирования
Рекурсия
Итеративный процесс
Абстракция с помощью функций
Введение
Причины тестирования
Утверждения
Библиотека power-assert
Jest
Матчеры
Модульные тесты
Подготовка данных
Плохие и хорошие практики тестирования
Покрытие кода тестами
Разработка через тестирование
Фикстуры
Введение
Онтология
Точки на координатной плоскости
Семантика массивов
Создание абстракции
Интерфейсы
Уровневое проектирование
Инварианты
Введение
Определения
Виртуальная файловая система
Манипуляции с виртуальной файловой системой
Обход дерева
Агрегация
Агрегация 2
Аккумулятор
HTML-дерево
О курсе
Инкапсуляция
Контекст (This)
Связывание (bind)
Особенности работы this со стрелочными функциями
Конструктор
Прототипы
Упаковка и Распаковка (Boxing)
toString()
Класс
Статические свойства и методы
Исключения
Место и понимание ООП в программировании
О курсе
Шаблоны проектирования
Конфигурация
Изменяемая конфигурация
Объекты-Сущности, Объекты-Значения и внедренные объекты
Fluent Interface
Сборщики
Прокси
Пишем код правильно
Введение
GitHub Actions
Задания
Экшены
Введение
Что такое интернет
Как соединяются компьютеры
Локальные и глобальные сети
Компьютерные адреса
Обмен информацией между компьютерами
Клиент-серверная архитектура
Сайт в интернете
Безопасность в интернете. Протокол HTTPS
Безопасность в интернете и цифровой след
Приватность и безопасность в интернете
Заключение
О курсе
HTTP 1.0
HTTP 1.1
Тело HTTP-запроса
Отправка форм
Transfer-Encoding
Передача данных query string
Перенаправления
Базовая аутентификация
Curl
Cookies
HTTPS
HTTP2 и HTTP3
О курсе
Для чего используется HTTP API
HTTP-запросы в браузере
Пример HTTP API
CRUD
HTTPie
Виды API
Аутентификация в HTTP API
Авторизация в API
OpenAPI (Swagger)
Postman
Введение
Стек вызовов (Call Stack)
Асинхронный код
Возврат в асинхронном коде
Упорядочивание асинхронных операций
Обработка ошибок
Параллельное выполнение операций
Таймеры
Промисы (Promise)
Обработка ошибок в промисах
Цепочка промисов
Promise.all
new Promise
Async и Await
HTTP-запросы
Введение
Тестирование ошибок
Побочные эффекты
Тестирование кода, взаимодействующего с файлами
Инверсия зависимостей
Тестирование HTTP-запросов
Манкипатчинг
Моки
Property-based тестирование
Введение
JavaScript в браузере
Глобальный объект Window
BOM-объекты
DOM
Навигация по DOM-дереву
Декларативный поиск по DOM-дереву
Консоль разработчика
Манипулирование DOM-деревом
Управление узлами DOM
Полифиллы
Введение в события
События на практике
Формы
Перехват и всплытие
События документа
AJAX
JQuery
Введение
Представление символов и метасимвол
Символьные классы
Позиция внутри строки
Альтернатива
Квантификация
Жадность
Группировка и обратная связь
Модификаторы
Просмотр вперед и назад
Поиск по условию
Флаги
Введение
Состояние приложения
Комплексное состояние
Отрисовка (рендеринг) состояния
Состояние отображения (UI State)
Программирование с явно выделенным состоянием
Нормализация данных
MVC
Состояние форм
Организация текстов интерфейса
Инициализация приложения
Введение
Компоненты
JSX
Props
Работа с коллекциями
Различия jsx и html
Обработка имён классов
Children
Состояние
События
Автоматное программирование
Формы
Неизменяемость
Вложенные компоненты
Функциональные компоненты
Контекст (Context API)
Virtual Dom
Тестирование
Асинхронная обработка
Жизненный цикл компонента
Производительность
Refs
Введение в хуки
Хук useState
Хук useEffect
Хук useContext
Хук useRef
Хуки useCallback и useMemo
Композиция компонентов
Заключение
Введение
Redux
Редьюсеры
Мидлвары
Подключение Redux Toolkit к React
Подробнее о слайсах
Нормализация данных в Redux
Механизм Entity Adapter
Механизм ExtraReducers
Асинхронные запросы
RTK Query
О курсе
Параметрический полиморфизм
Диспетчеризация по ключу (данные)
Диспетчеризация по ключу (функции)
Диспетчеризация по имени файла
Утиная типизация
Null Object Pattern
Код, который убивает полиморфизм
Инверсия зависимостей
Паттерн Стратегия
Паттерн Фабрика
Шаблоны проектирования
Объектная композиция
Паттерн Состояние (State)
Управление зависимостями
О курсе
Наследование
Позднее связывание
Шаблонный метод
Переопределение методов
Принцип подстановки Лисков
Исключения
Композиция вместо наследования
Введение
Привет, Мир!
TypeScript
Переменные
Именованные функции
Анонимные функции
Массивы
Объектные типы
Перечисления
Псевдонимы типов
Тип Any
Система модулей
Функции как параметры
Опциональные параметры в функциях
Тип Void
Возврат из функции
Тип Unknown
Деструктуризация
Операции Rest и Spread
Перегрузка функций
Сужение типов
Аннотации типов
Многомерные массивы
Неизменяемые массивы
Кортежи
Типы как множества
Объединения
Null и Undefined
Литералы
Пересечение
Присваивание значения
Иерархия типов
Структурная типизация
Ковариантность и контравариантность
Классы
Классы как типы
Защита свойств и методов
Свойства параметров
Наследование
Статические методы и свойства
Абстрактные классы
Интерфейсы
Использование интерфейсов
Реализация интерфейсов классами
Введение в дженерики
Дженерики (Типы)
Дженерики (Функции)
Дженерики с несколькими параметрами
Асинхронные функции
Дженерики на классах
Тип object
Динамические ключи
Сопоставление типов
Модификаторы сопоставления типов
Записи
Введение
Начало карьеры в IT
Резюме
Эффективное сопроводительное письмо
Поиск работы в IT
Подготовка к интервью
Борьба со стрессом
Интервью
Работа с отказами
Вхождение в рабочий процесс
Развитие soft skills
Нетворкинг
Профиль LinkedIn как инструмент поиска работы
Профиль на Хабр Карьере
Заключение
Введение
Оформление профиля на GitHub
Портфолио: стажировка в открытых проектах
Подготовка к интервью
Интервью
Заключение
ООП В PHP
Перейти к программе
Введение
Онтология
Точки на координатной плоскости
Семантика массивов
Создание абстракции
Интерфейсы
Уровневое проектирование
Инварианты
О курсе
Структуры
Классы
Автозагрузка классов
Свойства
Указатели
Сравнение объектов
Конструктор
Инкапсуляция
Сокрытие данных (Data Hiding)
Изменяемость
Магический метод __toString()
Константы классов
Статические свойства
Статические методы
Интерфейсы
Плюсы и минусы разных способов организации абстракций
Исключения
О курсе
Шаблоны Проектирования
Конфигурация
Изменяемая конфигурация
Класс stdClass
PHPUnit
DS
Collect
Объекты-Сущности, Объекты-Значения и встраиваемые объекты
Fluent Interface
Carbon
Symfony String
Пишем код правильно
О курсе
Параметрический полиморфизм
Диспетчеризация по ключу (данные)
Диспетчеризация по ключу (функции)
Диспетчеризация по имени файла
Полиморфизм и утиная типизация
Null Object Pattern
Код, который убивает полиморфизм
Инверсия зависимостей
Полиморфизм подтипов
Стратегия (Паттерн)
Динамическая диспетчеризация
Фабрика (Паттерн)
Шаблоны проектирования (Паттерны)
Объектная композиция
Паттерн Состояние (State)
Управление зависимостями
О курсе
Наследование
Модификаторы доступа
Позднее связывание
Шаблонный метод
Переопределение методов
Принцип подстановки Лисков
Исключения
Динамическая диспетчеризация
Абстрактные классы
Позднее статическое связывание
Композиция вместо наследования
Трейты
Fullstack-разработчик на Node.js
Перейти к программе
Введение
Введение в HTML
Блочная модель
Семантический HTML
Базовая структура HTML документа
Основы CSS
Каскадность в CSS
Chrome DevTools
Редакторы кода
Emmet
Публикация в интернете
Графические редакторы
Введение
Блочная модель и CSS
Стили текста
Шрифты и работа с ними
Списки
Колонки
Единицы измерения
Медиаэлементы
Таблицы
Формы
Селекторы
Псевдоклассы
Псевдоэлементы
Переполнение
CSS Переменные
Фон
Градиенты
Введение
Поток документа
Относительное позиционирование
Абсолютное позиционирование
Относительное и абсолютное позиционирование
Фиксированное позиционирование
Плавающие элементы
Наложение элементов
Введение
Что такое Flex?
Флекс-контейнер
Перенос элементов в контейнере
Выравнивание элементов по главной оси
Выравнивание элементов по поперечной оси
Свойства Flex-элементов. Гибкость. Flex-grow
Свойства Flex-элементов. Гибкость
Свойства Flex-элементов. Расположение
Введение
Терминология
Первая сетка
Расположение элементов в сетке
Работа с сеткой
Неявная сетка
Позиционирование и Grid
Введение
Hello, World!
Инструкции
Арифметические операции
Ошибки оформления (синтаксиса и линтера)
Строки
Переменные
Выражения в определениях
Именование
Интерполяция
Извлечение символов из строки
Типы данных
Неизменяемость и примитивные типы
Функции и их вызов
Сигнатура функции
Вызов функции — выражение
Функции с переменным числом параметров
Детерминированность
Стандартная библиотека
Свойства и методы
Цепочка вызовов
Определение функций
Возврат значений
Параметры функций
Необязательные параметры функций
Упрощенный синтаксис функций
Логика
Логические операторы
Результат логических операций
Условные конструкции
Тернарный оператор
Конструкция Switch
Цикл while
Агрегация данных
Обход строк в цикле
Условия внутри тела цикла
Инкремент и декремент
Цикл for
Модули
О курсе
Синтаксис
Модификация
Проверка существования значения
Цикл for
Ссылки
Агрегация
Цикл for...of
Удаление элементов массива
Управляющие инструкции
Вложенные массивы
Генерация строки в цикле
Обработка строк через преобразование в массив
Вложенные циклы
Теория множеств
Сортировка массивов
Стек
Big O
Деструктуризация
Rest и деструктуризация
Spread и создание новых массивов
Массивы в памяти компьютера
О курсе
Синтаксис
Модификация
Ссылки
Объекты в действии
Проверка существования свойства
Обход свойств объекта
Вложенные объекты
Слияние
Клонирование и копирование
Создание новых объектов и spread
Деструктуризация
Хеш-таблицы
Введение
Операционные системы
Командная строка
Навигация
Интерфейс командной строки
Файловая структура
Чтение файлов
Grep
Редактирование файлов
Потоки
Пайплайн
Манипулирование файловой структурой
Переменные окружения
История
Пользователи и группы
Sudo
Права доступа
Пакетный менеджер
Выполнение программ
Введение
Рабочий процесс
Интеграция с GitHub
Рабочая директория
Анализ сделанных изменений
Анализ истории изменений
Отмена изменений в рабочей директории
Отмена коммитов
Изменение последнего коммита
Индекс
Перемещение по истории
Понимание Git
Игнорирование файлов
Stash
Открытые проекты
Введение
Что такое JS?
Установка JavaScript
NPM
Зависимости
Зависимости для разработки
Lock-файл
Глобальная установка пакетов
NPX
Точка входа
Линтинг
О курсе
Чистые функции
Область видимости и замыкания
Разделение команд и запросов
Оператор Rest (упаковка аргументов)
Оператор Spread (распаковка аргументов)
Деструктуризация параметров
Объекты первого класса
Функции высшего порядка
Отображение (map)
Фильтрация (filter)
Агрегация (reduce)
Цепочка операций
Парадигмы программирования
Рекурсия
Итеративный процесс
Абстракция с помощью функций
Введение
Причины тестирования
Утверждения
Библиотека power-assert
Jest
Матчеры
Модульные тесты
Подготовка данных
Плохие и хорошие практики тестирования
Покрытие кода тестами
Разработка через тестирование
Фикстуры
Введение
Онтология
Точки на координатной плоскости
Семантика массивов
Создание абстракции
Интерфейсы
Уровневое проектирование
Инварианты
Введение
Определения
Виртуальная файловая система
Манипуляции с виртуальной файловой системой
Обход дерева
Агрегация
Агрегация 2
Аккумулятор
HTML-дерево
О курсе
Инкапсуляция
Контекст (This)
Связывание (bind)
Особенности работы this со стрелочными функциями
Конструктор
Прототипы
Упаковка и Распаковка (Boxing)
toString()
Класс
Статические свойства и методы
Исключения
Место и понимание ООП в программировании
О курсе
Шаблоны проектирования
Конфигурация
Изменяемая конфигурация
Объекты-Сущности, Объекты-Значения и внедренные объекты
Fluent Interface
Сборщики
Прокси
Пишем код правильно
Введение
GitHub Actions
Задания
Экшены
Введение
Что такое интернет
Как соединяются компьютеры
Локальные и глобальные сети
Компьютерные адреса
Обмен информацией между компьютерами
Клиент-серверная архитектура
Сайт в интернете
Безопасность в интернете. Протокол HTTPS
Безопасность в интернете и цифровой след
Приватность и безопасность в интернете
Заключение
Введение
Представление символов и метасимвол
Символьные классы
Позиция внутри строки
Альтернатива
Квантификация
Жадность
Группировка и обратная связь
Модификаторы
Просмотр вперед и назад
Поиск по условию
Флаги
О курсе
HTTP 1.0
HTTP 1.1
Тело HTTP-запроса
Отправка форм
Transfer-Encoding
Передача данных query string
Перенаправления
Базовая аутентификация
Curl
Cookies
HTTPS
HTTP2 и HTTP3
О курсе
Для чего используется HTTP API
HTTP-запросы в браузере
Пример HTTP API
CRUD
HTTPie
Виды API
Аутентификация в HTTP API
Авторизация в API
OpenAPI (Swagger)
Postman
Введение
Стек вызовов (Call Stack)
Асинхронный код
Возврат в асинхронном коде
Упорядочивание асинхронных операций
Обработка ошибок
Параллельное выполнение операций
Таймеры
Промисы (Promise)
Обработка ошибок в промисах
Цепочка промисов
Promise.all
new Promise
Async и Await
HTTP-запросы
Введение
Тестирование ошибок
Побочные эффекты
Тестирование кода, взаимодействующего с файлами
Инверсия зависимостей
Тестирование HTTP-запросов
Манкипатчинг
Моки
Property-based тестирование
Введение
JavaScript в браузере
Глобальный объект Window
BOM-объекты
DOM
Навигация по DOM-дереву
Декларативный поиск по DOM-дереву
Консоль разработчика
Манипулирование DOM-деревом
Управление узлами DOM
Полифиллы
Введение в события
События на практике
Формы
Перехват и всплытие
События документа
AJAX
JQuery
Введение
Состояние приложения
Комплексное состояние
Отрисовка (рендеринг) состояния
Состояние отображения (UI State)
Программирование с явно выделенным состоянием
Нормализация данных
MVC
Состояние форм
Организация текстов интерфейса
Инициализация приложения
Введение
Компоненты
JSX
Props
Работа с коллекциями
Различия jsx и html
Обработка имён классов
Children
Состояние
События
Автоматное программирование
Формы
Неизменяемость
Вложенные компоненты
Функциональные компоненты
Контекст (Context API)
Virtual Dom
Тестирование
Асинхронная обработка
Жизненный цикл компонента
Производительность
Refs
Введение в хуки
Хук useState
Хук useEffect
Хук useContext
Хук useRef
Хуки useCallback и useMemo
Композиция компонентов
Заключение
Введение
Redux
Редьюсеры
Мидлвары
Подключение Redux Toolkit к React
Подробнее о слайсах
Нормализация данных в Redux
Механизм Entity Adapter
Механизм ExtraReducers
Асинхронные запросы
RTK Query
Введение
Реляционные базы данных
Структура баз данных
Язык SQL
Подключение к БД с помощью psql
Таблицы
Первичный ключ и автоинкремент
Запросы на выборку
Фильтрация данных
Обработка особых значений
Фильтрация строк
Регулярные выражения
Сложные условия фильтрации
Фильтрация данных по диапазону
Поиск строк по значениям из набора
Сортировка данных
Ограничение выборки
Уникальные строки
Агрегатные функции
Группировка по выборке
Фильтрация c помощью оператора HAVING
Вставка и модификация данных
Основные ограничения полей
Изменение структуры таблицы (ALTER)
Транзакционность
Введение
Несколько таблиц
Типы соединения таблиц
CROSS JOIN (перекрестное соединение)
INNER JOIN (внутреннее соединение)
Псевдонимы (aliases)
INNER JOIN и WHERE
INNER JOIN и GROUP BY
LEFT JOIN (Левое внешнее соединение)
ANTI JOIN (левое соединение с NULL)
FULL JOIN (полное соединение)
SELF JOIN (соединение таблицы с собой)
Соединение трех и более таблиц
Подзапросы
Подзапросы и соединения
VIEW и CTE
Заключение
Реляционная модель данных
Первая нормальная форма
Вторая нормальная форма
Третья нормальная форма
Онтология
Внешние ключи
Производительность
Введение
Общие принципы работы
Плейсхолдеры
Пул подключений
Транзакции
Введение
Архитектура Веба
Микрофреймворк Fastify
Обработчики запросов
HTTP Сессия
Динамические маршруты
Шаблоны
Лейауты в Pug
Безопасность
Поисковые формы
Хранение данных
Модифицирующие формы
Валидация
Именованные маршруты
Создание CRUD на Fastify
Model-View-Controller (MVC)
Middlewares
Cookies
Сессия
Флеш-сообщения (Flash)
Декораторы
Работа с базой данных в Fastify
Деплой
О курсе
Параметрический полиморфизм
Диспетчеризация по ключу (данные)
Диспетчеризация по ключу (функции)
Диспетчеризация по имени файла
Утиная типизация
Null Object Pattern
Код, который убивает полиморфизм
Инверсия зависимостей
Паттерн Стратегия
Паттерн Фабрика
Шаблоны проектирования
Объектная композиция
Паттерн Состояние (State)
Управление зависимостями
О курсе
Наследование
Позднее связывание
Шаблонный метод
Переопределение методов
Принцип подстановки Лисков
Исключения
Композиция вместо наследования
Введение
Привет, Мир!
TypeScript
Переменные
Именованные функции
Анонимные функции
Массивы
Объектные типы
Перечисления
Псевдонимы типов
Тип Any
Система модулей
Функции как параметры
Опциональные параметры в функциях
Тип Void
Возврат из функции
Тип Unknown
Деструктуризация
Операции Rest и Spread
Перегрузка функций
Сужение типов
Аннотации типов
Многомерные массивы
Неизменяемые массивы
Кортежи
Типы как множества
Объединения
Null и Undefined
Литералы
Пересечение
Присваивание значения
Иерархия типов
Структурная типизация
Ковариантность и контравариантность
Классы
Классы как типы
Защита свойств и методов
Свойства параметров
Наследование
Статические методы и свойства
Абстрактные классы
Интерфейсы
Использование интерфейсов
Реализация интерфейсов классами
Введение в дженерики
Дженерики (Типы)
Дженерики (Функции)
Дженерики с несколькими параметрами
Асинхронные функции
Дженерики на классах
Тип object
Динамические ключи
Сопоставление типов
Модификаторы сопоставления типов
Записи
Введение
Начало карьеры в IT
Резюме
Эффективное сопроводительное письмо
Поиск работы в IT
Подготовка к интервью
Борьба со стрессом
Интервью
Работа с отказами
Вхождение в рабочий процесс
Развитие soft skills
Нетворкинг
Профиль LinkedIn как инструмент поиска работы
Профиль на Хабр Карьере
Заключение
Введение
Оформление профиля на GitHub
Портфолио: стажировка в открытых проектах
Подготовка к интервью
Интервью
Заключение
Введение
Супервизор
TCP/IP
Интерфейсы
Пользователи и права доступа
Файловая система
Процессы и сигналы
Введение
Запуск
Приложение в контейнере
Работа с образами
Управление контейнерами
Сеть
Шаринг данных
Подготовка собственного образа
Слои, кеширование и оптимизации
Docker Compose
Введение и установка
KV хранилище
Кэш
Счетчики онлайн событий
Хранение списков с Lists
Составные структуры с Hashes
Проверка на уникальность с Sets
Организация рейтингов с Sorted Sets
Проверка на уникальность в больших данных с HyperLogLog
Брокер сообщений Redis
Реалтайм чат с Redis PubSub
Регулярные выражения
Перейти к программе
Введение
Представление символов и метасимвол
Символьные классы
Позиция внутри строки
Альтернатива
Квантификация
Жадность
Группировка и обратная связь
Модификаторы
Просмотр вперед и назад
Поиск по условию
Флаги
SQL для анализа данных
Перейти к программе
Введение
Реляционные базы данных
Структура баз данных
Язык SQL
Подключение к БД с помощью psql
Таблицы
Первичный ключ и автоинкремент
Запросы на выборку
Фильтрация данных
Обработка особых значений
Фильтрация строк
Регулярные выражения
Сложные условия фильтрации
Фильтрация данных по диапазону
Поиск строк по значениям из набора
Сортировка данных
Ограничение выборки
Уникальные строки
Агрегатные функции
Группировка по выборке
Фильтрация c помощью оператора HAVING
Вставка и модификация данных
Основные ограничения полей
Изменение структуры таблицы (ALTER)
Транзакционность
Введение
Язык SQL
Агрегация с помощью оператора COUNT
Агрегация с помощью операторов SUM, MAX и AVG
Фильтрация данных
Группировка результатов
Сортировка результатов
Объединение нескольких таблиц
Объединение обработкой пропусков
Риски и опасности NULL
Введение
Концепция витрины
Как устроены графики
Агрегация для визуализации
Агрегация для столбчатой диаграммы
Агрегация для candlestick-диаграмм
Агрегация для Pie Chart
Агрегация для Scatter Chart
Агрегация для Funnel analysis
Таблица как визуализация
Введение
Несколько таблиц
Типы соединения таблиц
CROSS JOIN (перекрестное соединение)
INNER JOIN (внутреннее соединение)
Псевдонимы (aliases)
INNER JOIN и WHERE
INNER JOIN и GROUP BY
LEFT JOIN (Левое внешнее соединение)
ANTI JOIN (левое соединение с NULL)
FULL JOIN (полное соединение)
SELF JOIN (соединение таблицы с собой)
Соединение трех и более таблиц
Подзапросы
Подзапросы и соединения
VIEW и CTE
Заключение
Введение
Вспомним JOIN
Подзапрос
Объединение подзапросов
Common Table Expression и Конструкция WITH
Условная агрегация CASE
Введение
Множества
Объединение запросов
Пересечение запросов
Разность запросов
Введение
ROW_NUMBER
PREV_VALUE
MIN и MAX
SUM, COUNT и AVG
FIRST_VALUE и LAST_VALUE
NTILE
Агрегация с помощью SUM и COUNT
Другие функции
Трудоустройство
Перейти к программе
Введение
Начало карьеры в IT
Резюме
Эффективное сопроводительное письмо
Поиск работы в IT
Подготовка к интервью
Борьба со стрессом
Интервью
Работа с отказами
Вхождение в рабочий процесс
Развитие soft skills
Нетворкинг
Профиль LinkedIn как инструмент поиска работы
Профиль на Хабр Карьере
Заключение
Трудоустройство для аналитиков
Перейти к программе
Введение
Начало карьеры в IT
Резюме
Эффективное сопроводительное письмо
Поиск работы в IT
Подготовка к интервью
Борьба со стрессом
Интервью
Работа с отказами
Вхождение в рабочий процесс
Развитие soft skills
Нетворкинг
Профиль LinkedIn как инструмент поиска работы
Профиль на Хабр Карьере
Заключение
Введение
Оформление профиля на GitHub
Портфолио: стажировка в открытых проектах
Подготовка к интервью
Трудоустройство для тестировщиков
Перейти к программе
Введение
Начало карьеры в IT
Резюме
Эффективное сопроводительное письмо
Поиск работы в IT
Подготовка к интервью
Борьба со стрессом
Интервью
Работа с отказами
Вхождение в рабочий процесс
Развитие soft skills
Нетворкинг
Профиль LinkedIn как инструмент поиска работы
Профиль на Хабр Карьере
Заключение
Введение
Оформление профиля на Github
Портфолио: стажировка в открытых проектах
Подготовка к интервью
Интервью
Заключение
Основы PHP
Перейти к программе
Введение
Hello, World!
Инструкции
Арифметические операции
Линтер
Строки
Типы данных
Переменные
Выражения в определениях
Интерполяция
Извлечение символов из строки
Функции и их вызов
Сигнатура функции
Вызов функции — выражение
Функции с переменным числом параметров
Детерминированность и побочные эффекты
Стандартная библиотека
Определение функции
Возврат значений из функции
Параметры функций
Необязательные параметры функций
Окружение
Именование
Логические операции
Условные конструкции if и if-else
Тернарный оператор и Элвис
Конструкция Switch
Цикл while
Использование циклов
Пограничные случаи
Цикл for
Погружаясь в строки
Дата и время
Отладка
Ошибки
Включение файлов
Пространство имен
Вложенные пространства имен
Импорт функций
Описание типов
Ссылки
История PHP
ООП на Python
Перейти к программе
Введение
Онтология
Точки на координатной плоскости
Семантика списков и словарей
Создание абстракции
Интерфейсы
Уровневое проектирование
Инварианты
Введение
Концепции ООП
Классы, пространства имен, атрибуты
Объекты-одиночки и глобальные переменные
Инстанцирование классов и экземпляры
Методы
Инициализация и протоколы
Свойства
Наследование
Исключения
Введение
Шаблоны Проектирования
Конфигурация
Изменяемая конфигурация
Объекты-сущности, Объекты-значения и внедренные объекты
Fluent Interface
Сборщики (Builders)
Пишем код правильно
Введение
Параметрический полиморфизм
Диспетчеризация по ключу (данные)
Диспетчеризация по ключу (функции)
Диспетчеризация по имени файла
Полиморфизм (утиная типизация)
Null Object Pattern
Код, который убивает полиморфизм
Инверсия зависимостей
Стратегия (Паттерн)
Динамическая диспетчеризация
Фабрика (Паттерн)
Декоратор (Паттерн)
Шаблоны проектирования (Паттерны)
Объектная композиция
Состояние (Паттерн)
Множественное наследование и миксины
О курсе
Наследование
Модификаторы доступа
Позднее связывание
Шаблонный метод
Переопределение методов
Принцип подстановки Лисков
Исключения
Динамическая диспетчеризация
Абстрактные классы
Позднее статическое связывание
Метаклассы
Композиция вместо наследования
Миксины
Основы веб-разработки
Перейти к программе
Введение
Введение в HTML
Блочная модель
Семантический HTML
Базовая структура HTML документа
Основы CSS
Каскадность в CSS
Chrome DevTools
Редакторы кода
Emmet
Публикация в интернете
Графические редакторы
Введение
Hello, World!
Инструкции
Арифметические операции
Ошибки оформления (синтаксиса и линтера)
Строки
Переменные
Выражения в определениях
Именование
Интерполяция
Извлечение символов из строки
Типы данных
Неизменяемость и примитивные типы
Функции и их вызов
Сигнатура функции
Вызов функции — выражение
Функции с переменным числом параметров
Детерминированность
Стандартная библиотека
Свойства и методы
Цепочка вызовов
Определение функций
Возврат значений
Параметры функций
Необязательные параметры функций
Упрощенный синтаксис функций
Логика
Логические операторы
Результат логических операций
Условные конструкции
Тернарный оператор
Конструкция Switch
Цикл while
Агрегация данных
Обход строк в цикле
Условия внутри тела цикла
Инкремент и декремент
Цикл for
Модули
Основы Git
Перейти к программе
Введение
Рабочий процесс
Интеграция с GitHub
Рабочая директория
Анализ сделанных изменений
Анализ истории изменений
Отмена изменений в рабочей директории
Отмена коммитов
Изменение последнего коммита
Индекс
Перемещение по истории
Понимание Git
Игнорирование файлов
Stash
Открытые проекты
Основы тестирования
Перейти к программе
Введение
Адаптивность страницы
Кроссбраузерность
HTML/CSS
Мультиязычность
Скорость соединения
Оптимизация загрузки
Гипертекст
Single Page Application (SPA)
Формы
CRUD
Уязвимости на странице
Протокол HTTPS и передача данных по сети
Сессии
Виды тестирования
Основы Java
Перейти к программе
Введение
Привет, Мир!
Комментарии
Инструкции (Statements)
Как мы проверяем ваши решения
Ошибки оформления (синтаксиса)
Арифметические операции
Операторы
Коммутативная операция
Композиция операций
Приоритет операций
Числа с плавающей точкой
Линтер
Кавычки
Экранирующие последовательности
Конкатенация
Что такое переменная
Изменение переменной
Выбор имени переменной
Ошибки при работе с переменными
Выражения в определениях
Переменные и конкатенация
Именование переменных
Магические числа
Константы
Зачем нужны типы данных
Явная типизация
Какие бывают типы
Значение null
Явное преобразование типов
Методы и их вызов
Параметры методов
Вызов метода — выражение
Неизменяемость строк
Цепочки вызовов методов
Детерминированность
Стандартная библиотека
Какие бывают методы
Создание (определение) метода
Метод main
Возврат значений
Определение методов
Необязательные параметры методов
Логический тип
Сравнение строк
Комбинирование операций и методов
Логические операторы
Отрицание
Условная конструкция (if)
Конструкция if-else
Конструкция else if
Тернарный оператор
Конструкция Switch
Цикл while
Агрегация данных (Числа)
Агрегация данных (Строки)
Обход строк
Условия внутри цикла
Формирование строк в циклах
Синтаксический сахар
Инкремент и декремент
Возврат из циклов
Цикл for
Пакеты
Основы SQL
Перейти к программе
Введение
Реляционные базы данных
Структура баз данных
Язык SQL
Подключение к БД с помощью psql
Таблицы
Первичный ключ и автоинкремент
Запросы на выборку
Фильтрация данных
Обработка особых значений
Фильтрация строк
Регулярные выражения
Сложные условия фильтрации
Фильтрация данных по диапазону
Поиск строк по значениям из набора
Сортировка данных
Ограничение выборки
Уникальные строки
Агрегатные функции
Группировка по выборке
Фильтрация c помощью оператора HAVING
Вставка и модификация данных
Основные ограничения полей
Изменение структуры таблицы (ALTER)
Транзакционность
REST API в Node.js
Перейти к программе
Введение
Подготовка проекта
Интеграция с базой данных
REST-архитектура
Реализация CRUD
Тестирование
Аутентификация
Code First vs API First
Валидация данных запроса и ответа
Валидация бизнес-правил
Problem Details
Авторизация
Мета данные
Вложенные ресурсы
Версионирование
Алгоритмы и структуры данных на деревьях
Перейти к программе
Автоматизация тестирования на PHP
Перейти к программе
Введение
Причины писать тесты
Утверждения
PHPUnit
Матчеры
Модульные тесты
Подготовка данных
Data Provider
Плохие и хорошие практики тестирования
Покрытие кода тестами
Разработка через тестирование
Фикстуры
Введение
Тестирование ошибок
Побочные эффекты
Тестирование кода, взаимодействующего с файлами
Инверсия зависимостей
Тестирование HTTP-запросов
Моки
Автоматизация IT-инфраструктуры
Перейти к программе
Введение
Ad-Hoc
Файл инвентаризации
Плейбук
Теги
Обработчики (Handlers)
Переменные
Переменные в файле инвентаризации
Факты
Циклы
Условия
Фильтры
Регистрация результата
Роли
Устройство ролей
Коллекции
Ansible Vault
Введение
Обзор Terraform
Архитектура
Переменные
Секреты
Источники данных
Зависимости
Практика Terraform
Модули
Бекенды для хранения состояния
Автоматизация локального окружения
Перейти к программе
Введение
Ad-Hoc
Файл инвентаризации
Плейбук
Теги
Обработчики (Handlers)
Переменные
Переменные в файле инвентаризации
Факты
Циклы
Условия
Фильтры
Регистрация результата
Роли
Устройство ролей
Коллекции
Ansible Vault
Введение
Инициализация
Жизненный цикл окружения Vagrant
Работа с сетью
Настройка окружения
Введение
Запуск
Приложение в контейнере
Работа с образами
Управление контейнерами
Сеть
Шаринг данных
Подготовка собственного образа
Слои, кеширование и оптимизации
Docker Compose
Дискретная математика
Перейти к программе
Введение
Что такое логика
Нотации
Парадоксы
Софизмы
Эквивалентность
Предикаты и квантификаторы
Правила математической логики
Правила вывода
ПДНФ и ПКНФ
Введение в теорию множеств
Введение
Элементарные инструменты
Подсчет
Подсчет по биекции
Принцип включения и исключения
Производящая функция
Задача о супружеских парах
Теория графов
Введение
Типы графов
Оптимизация маршрутов
Нотации
Подграфы
Связанность графов
Изоморфизм
Двудольные графы
Деревья
Остовные деревья
Взвешенный граф
Алгоритм Дейкстры
Эйлеровы схемы
Гамильтонов цикл
Доказательство гамильтонова цикла
NP-полнота
Раскрашивание графа
Диграфы
Связанность
Теорема Менгера
Поточная сеть
Введение
Типы множеств
Нотации
Объединение
Пересечение
Дополнение
Разность множеств
Непересекающиеся множества
Закон Де Моргана
Распределительный закон в множествах
Введение
Функции как правила
Множества и функции
Рекурсия в функциях
Графики
Равенство
Частичные функции
Онто-функции
Возрастающие и убывающие функции
Композиция функций
Обратные функции
Алгоритмы и структуры данных
Перейти к программе
Введение
Бинарный поиск
Рекурсия
Алгоритмы сортировки
Алгоритмическая сложность
Связный список
Двусвязный список
Очередь и стек
Хэш
Деревья как концепция
Бинарные деревья
Балансировка
B-деревья
Префиксные деревья
KD-деревья
DOM-деревья
AST-деревья
Введение
Практическое применение графов
Поиск в глубину
Поиск в ширину
Поиск циклов и матрица смежности
Жадные алгоритмы
Задача коммивояжера
Алгоритм Литтла: Механизм работы
Алгоритм Литтла: реализация в коде
Алгоритм Левенштейна
Классы сложности алгоритмов и задач
Эвристические алгоритмы
СИКП на Ruby
Перейти к программе
Введение
Точки
Пары
Моделирование
Барьеры абстракции
Реализация пар
Рациональные числа
СИКП на Java
Перейти к программе
Введение
Точки
Пары
Моделирование
Барьеры абстракции
Реализация пар
Рациональные числа
СИКП на Python
Перейти к программе
Введение
Точки
Пары
Моделирование
Барьеры абстракции
Реализация пар
Рациональные числа
Node.js-разработчик
Перейти к программе
Введение
Hello, World!
Инструкции
Арифметические операции
Ошибки оформления (синтаксиса и линтера)
Строки
Переменные
Выражения в определениях
Именование
Интерполяция
Извлечение символов из строки
Типы данных
Неизменяемость и примитивные типы
Функции и их вызов
Сигнатура функции
Вызов функции — выражение
Функции с переменным числом параметров
Детерминированность
Стандартная библиотека
Свойства и методы
Цепочка вызовов
Определение функций
Возврат значений
Параметры функций
Необязательные параметры функций
Упрощенный синтаксис функций
Логика
Логические операторы
Результат логических операций
Условные конструкции
Тернарный оператор
Конструкция Switch
Цикл while
Агрегация данных
Обход строк в цикле
Условия внутри тела цикла
Инкремент и декремент
Цикл for
Модули
О курсе
Синтаксис
Модификация
Проверка существования значения
Цикл for
Ссылки
Агрегация
Цикл for...of
Удаление элементов массива
Управляющие инструкции
Вложенные массивы
Генерация строки в цикле
Обработка строк через преобразование в массив
Вложенные циклы
Теория множеств
Сортировка массивов
Стек
Big O
Деструктуризация
Rest и деструктуризация
Spread и создание новых массивов
Массивы в памяти компьютера
О курсе
Синтаксис
Модификация
Ссылки
Объекты в действии
Проверка существования свойства
Обход свойств объекта
Вложенные объекты
Слияние
Клонирование и копирование
Создание новых объектов и spread
Деструктуризация
Хеш-таблицы
Введение
Операционные системы
Командная строка
Навигация
Интерфейс командной строки
Файловая структура
Чтение файлов
Grep
Редактирование файлов
Потоки
Пайплайн
Манипулирование файловой структурой
Переменные окружения
История
Пользователи и группы
Sudo
Права доступа
Пакетный менеджер
Выполнение программ
Введение
Рабочий процесс
Интеграция с GitHub
Рабочая директория
Анализ сделанных изменений
Анализ истории изменений
Отмена изменений в рабочей директории
Отмена коммитов
Изменение последнего коммита
Индекс
Перемещение по истории
Понимание Git
Игнорирование файлов
Stash
Открытые проекты
Введение
Что такое JS?
Установка JavaScript
NPM
Зависимости
Зависимости для разработки
Lock-файл
Глобальная установка пакетов
NPX
Точка входа
Линтинг
О курсе
Чистые функции
Область видимости и замыкания
Разделение команд и запросов
Оператор Rest (упаковка аргументов)
Оператор Spread (распаковка аргументов)
Деструктуризация параметров
Объекты первого класса
Функции высшего порядка
Отображение (map)
Фильтрация (filter)
Агрегация (reduce)
Цепочка операций
Парадигмы программирования
Рекурсия
Итеративный процесс
Абстракция с помощью функций
Введение
Причины тестирования
Утверждения
Библиотека power-assert
Jest
Матчеры
Модульные тесты
Подготовка данных
Плохие и хорошие практики тестирования
Покрытие кода тестами
Разработка через тестирование
Фикстуры
Введение
Онтология
Точки на координатной плоскости
Семантика массивов
Создание абстракции
Интерфейсы
Уровневое проектирование
Инварианты
Введение
Определения
Виртуальная файловая система
Манипуляции с виртуальной файловой системой
Обход дерева
Агрегация
Агрегация 2
Аккумулятор
HTML-дерево
О курсе
Инкапсуляция
Контекст (This)
Связывание (bind)
Особенности работы this со стрелочными функциями
Конструктор
Прототипы
Упаковка и Распаковка (Boxing)
toString()
Класс
Статические свойства и методы
Исключения
Место и понимание ООП в программировании
О курсе
Шаблоны проектирования
Конфигурация
Изменяемая конфигурация
Объекты-Сущности, Объекты-Значения и внедренные объекты
Fluent Interface
Сборщики
Прокси
Пишем код правильно
Введение
GitHub Actions
Задания
Экшены
Введение
Что такое интернет
Как соединяются компьютеры
Локальные и глобальные сети
Компьютерные адреса
Обмен информацией между компьютерами
Клиент-серверная архитектура
Сайт в интернете
Безопасность в интернете. Протокол HTTPS
Безопасность в интернете и цифровой след
Приватность и безопасность в интернете
Заключение
Введение
Введение в HTML
Блочная модель
Семантический HTML
Базовая структура HTML документа
Основы CSS
Каскадность в CSS
Chrome DevTools
Редакторы кода
Emmet
Публикация в интернете
Графические редакторы
Введение
Блочная модель и CSS
Стили текста
Шрифты и работа с ними
Списки
Колонки
Единицы измерения
Медиаэлементы
Таблицы
Формы
Селекторы
Псевдоклассы
Псевдоэлементы
Переполнение
CSS Переменные
Фон
Градиенты
О курсе
HTTP 1.0
HTTP 1.1
Тело HTTP-запроса
Отправка форм
Transfer-Encoding
Передача данных query string
Перенаправления
Базовая аутентификация
Curl
Cookies
HTTPS
HTTP2 и HTTP3
О курсе
Для чего используется HTTP API
HTTP-запросы в браузере
Пример HTTP API
CRUD
HTTPie
Виды API
Аутентификация в HTTP API
Авторизация в API
OpenAPI (Swagger)
Postman
Введение
Стек вызовов (Call Stack)
Асинхронный код
Возврат в асинхронном коде
Упорядочивание асинхронных операций
Обработка ошибок
Параллельное выполнение операций
Таймеры
Промисы (Promise)
Обработка ошибок в промисах
Цепочка промисов
Promise.all
new Promise
Async и Await
HTTP-запросы
Введение
Тестирование ошибок
Побочные эффекты
Тестирование кода, взаимодействующего с файлами
Инверсия зависимостей
Тестирование HTTP-запросов
Манкипатчинг
Моки
Property-based тестирование
Введение
Представление символов и метасимвол
Символьные классы
Позиция внутри строки
Альтернатива
Квантификация
Жадность
Группировка и обратная связь
Модификаторы
Просмотр вперед и назад
Поиск по условию
Флаги
Введение
Реляционные базы данных
Структура баз данных
Язык SQL
Подключение к БД с помощью psql
Таблицы
Первичный ключ и автоинкремент
Запросы на выборку
Фильтрация данных
Обработка особых значений
Фильтрация строк
Регулярные выражения
Сложные условия фильтрации
Фильтрация данных по диапазону
Поиск строк по значениям из набора
Сортировка данных
Ограничение выборки
Уникальные строки
Агрегатные функции
Группировка по выборке
Фильтрация c помощью оператора HAVING
Вставка и модификация данных
Основные ограничения полей
Изменение структуры таблицы (ALTER)
Транзакционность
Введение
Несколько таблиц
Типы соединения таблиц
CROSS JOIN (перекрестное соединение)
INNER JOIN (внутреннее соединение)
Псевдонимы (aliases)
INNER JOIN и WHERE
INNER JOIN и GROUP BY
LEFT JOIN (Левое внешнее соединение)
ANTI JOIN (левое соединение с NULL)
FULL JOIN (полное соединение)
SELF JOIN (соединение таблицы с собой)
Соединение трех и более таблиц
Подзапросы
Подзапросы и соединения
VIEW и CTE
Заключение
Реляционная модель данных
Первая нормальная форма
Вторая нормальная форма
Третья нормальная форма
Онтология
Внешние ключи
Производительность
Введение
Общие принципы работы
Плейсхолдеры
Пул подключений
Транзакции
Введение
Архитектура Веба
Микрофреймворк Fastify
Обработчики запросов
HTTP Сессия
Динамические маршруты
Шаблоны
Лейауты в Pug
Безопасность
Поисковые формы
Хранение данных
Модифицирующие формы
Валидация
Именованные маршруты
Создание CRUD на Fastify
Model-View-Controller (MVC)
Middlewares
Cookies
Сессия
Флеш-сообщения (Flash)
Декораторы
Работа с базой данных в Fastify
Деплой
О курсе
Параметрический полиморфизм
Диспетчеризация по ключу (данные)
Диспетчеризация по ключу (функции)
Диспетчеризация по имени файла
Утиная типизация
Null Object Pattern
Код, который убивает полиморфизм
Инверсия зависимостей
Паттерн Стратегия
Паттерн Фабрика
Шаблоны проектирования
Объектная композиция
Паттерн Состояние (State)
Управление зависимостями
О курсе
Наследование
Позднее связывание
Шаблонный метод
Переопределение методов
Принцип подстановки Лисков
Исключения
Композиция вместо наследования
Введение
Привет, Мир!
TypeScript
Переменные
Именованные функции
Анонимные функции
Массивы
Объектные типы
Перечисления
Псевдонимы типов
Тип Any
Система модулей
Функции как параметры
Опциональные параметры в функциях
Тип Void
Возврат из функции
Тип Unknown
Деструктуризация
Операции Rest и Spread
Перегрузка функций
Сужение типов
Аннотации типов
Многомерные массивы
Неизменяемые массивы
Кортежи
Типы как множества
Объединения
Null и Undefined
Литералы
Пересечение
Присваивание значения
Иерархия типов
Структурная типизация
Ковариантность и контравариантность
Классы
Классы как типы
Защита свойств и методов
Свойства параметров
Наследование
Статические методы и свойства
Абстрактные классы
Интерфейсы
Использование интерфейсов
Реализация интерфейсов классами
Введение в дженерики
Дженерики (Типы)
Дженерики (Функции)
Дженерики с несколькими параметрами
Асинхронные функции
Дженерики на классах
Тип object
Динамические ключи
Сопоставление типов
Модификаторы сопоставления типов
Записи
Введение
Супервизор
TCP/IP
Интерфейсы
Пользователи и права доступа
Файловая система
Процессы и сигналы
Введение
Запуск
Приложение в контейнере
Работа с образами
Управление контейнерами
Сеть
Шаринг данных
Подготовка собственного образа
Слои, кеширование и оптимизации
Docker Compose
Введение и установка
KV хранилище
Кэш
Счетчики онлайн событий
Хранение списков с Lists
Составные структуры с Hashes
Проверка на уникальность с Sets
Организация рейтингов с Sorted Sets
Проверка на уникальность в больших данных с HyperLogLog
Брокер сообщений Redis
Реалтайм чат с Redis PubSub
Введение
Начало карьеры в IT
Резюме
Эффективное сопроводительное письмо
Поиск работы в IT
Подготовка к интервью
Борьба со стрессом
Интервью
Работа с отказами
Вхождение в рабочий процесс
Развитие soft skills
Нетворкинг
Профиль LinkedIn как инструмент поиска работы
Профиль на Хабр Карьере
Заключение
Введение
Оформление профиля на GitHub
Портфолио: стажировка в открытых проектах
Подготовка к интервью
Интервью
Заключение