Подробная программа обучения
- Команды и первая программа в Swift
- Переменные, константы (let/var) и базовая типизация
- Работа с целыми числами, строками и ввод данных
- Условные операторы и базовая логика
- Циклы и управление потоком выполнения
- Установка IDE, SDK, Noctule и настройка проекта
- Строки: операции, форматирование, split и trim
- Switch и диапазоны: базовый pattern matching
- Функции: параметры, labels, inout и tuple-возврат
- Optionals глубже: if let, guard let, ??, chaining
- Array: основы работы с массивами
- Array под капотом: ArraySlice, COW и стоимость операций
- Dictionary: ключ-значение и частотные карты
- Set и кортежи (tuples)
- Строки под капотом: Character, индексы и Substring
- Замыкания I: синтаксис, map, filter, compactMap
- Замыкания II: reduce, пайплайны и читаемость кода
- Протоколы Sequence, Collection и lazy-вычисления
- Сравнение и сортировка: Equatable, Comparable, бинарный поиск
- Рекурсия и алгоритмическое разбиение задач
- Алгоритмы на массивах: two pointers, sliding window, prefix sums
- Алгоритмы с Dictionary и Set: hashing, grouping, indexing
- Struct I: основы структур, данные и методы
- Struct II: computed properties, observers, проектирование типов
- Enum I: основы, raw values, CaseIterable
- Enum II: associated values для состояний и команд
- Optionals глубоко: binding, chaining, map, flatMap
- Инициализация: failable init (?) и Value Objects
- Ошибки I: протокол Error, throws, try, do/catch
- Ошибки II: try?, try!, слои обработки и UX ошибок
- Управление потоком: Result, defer, assert, precondition
- Даты и время: Date, Calendar, форматирование (ISO8601)
- CLI I: парсинг аргументов командной строки и токенизация
- CLI II: регулярные выражения (Regex) и валидация
- Управление памятью: Value vs Reference семантика
- Class: основы, init, deinit, идентичность объектов
- ARC: владение памятью, retain cycles, weak, unowned
- Замыкания в памяти: escaping и capture lists
- ООП: наследование, композиция и type casting
- Протоколы I: контракты, композиция и any
- Протоколы II: default реализации и POP
- Extensions и введение в Generics
- Generics I: ограничения (where), алгоритмы и rethrows
- Generics II: практика на Stack, инварианты, Hashable
- Продвинутые протоколы: associatedtype, Comparable, ID
- Type Erasure: Existentials и старт архитектуры
- Архитектура: DTO, Domain, роутинг ошибок и границы модулей
- SwiftPM I: таргеты, зависимости, build, run, test
- SwiftPM II: Access control, SemVer и локальные пакеты
- Инженерия: API-дизайн, документация и основы Git
- CI/CD базово: GitHub и введение в XCTest
- Тестирование I: паттерн AAA, testable, table-driven тесты
- Тестирование II: Mocks и interaction-тесты
- Инженерия: стратегии отладки и инфраструктура логирования
- Файловая система: FileManager, пути и data-dir
- Текстовые файлы: I/O операции, UTF-8, CSV, streaming
- Бинарные файлы: Data, байты, hex dump, chunked I/O
- Парсинг I: JSON, базовый Codable
- Парсинг II: продвинутый Codable (CodingKeys, стратегии)
- Данные: schemaVersion, миграции и валидация
- Данные: паттерн Repository, backup, надежная запись
- Индексация, мини-профилирование и основы HTTP
- Сеть I: URLSession, URLRequest, URLComponents
- Сеть II: Endpoint builder, DTO-маппинг, введение в async/await
- Async/Await I: Task, cancellation, таймауты
- Сеть III: отказоустойчивость, retry, моки и async-тестирование
- Сеть IV: кэширование, rate limiting и пайплайны
- Concurrency I: async let и structured concurrency
- Concurrency II: TaskGroup, приоритеты и лимиты
- Concurrency III: Actors, Sendable, защита стейта, reentrancy
- Concurrency IV: AsyncSequence, AsyncStream, буферизация
- Финализация CLI: индикация прогресса, unsafe memory, оптимизация и кросс-компиляция
360+
Лекций
1000+
Задач
72
Теста
А также:
- Мгновенная проверка
- AI-валидатор кода
- Плагин для IDE
- WebIDE
- Геймификация
- Мотивационные лекции