- Робота у терміналі (консолі) та командний рядок
- Текстовий редактор та графічний редактор
- Файли, типи файлів, директорії
- Веб-браузер, сайти та принцип роботи інтернету
- Пошукові системи
- Додатки у ПК та мобільному телефоні
- Комунікаційне ПЗ, електронна пошта, чати, соцмережі
- Цілі використання техніки, навіщо нам всі ці інструменти
- Правила поведінки в інформаційному просторі
- Принципи роботи пам'яті та накопичувачів, одиниці вимірювання
- Інформація та дані, моделювання, кодування, зберігання та передача
- Принципи роботи обчислювальної техніки та з чого складається комп'ютер
- Типи процесорів, із чого складаються процесор
- Растрові та векторні зображення, представлення звуку та відео
- Пристрої введення-виведення (клавіатура, екран, мережева карта, I/O порти...)
- Мережі (дротові та бездротові, обладнання та безпека)
- Операційні системи (функції, типи та встановлення)
- Налаштування робочого середовища (мови, програми, мережа, час, звук тощо)
- Резервні копії та хмарні сховища
- Авторське право
- Документи (форми, таблиці, презентації, схеми)
- Архіватори та криптографія
- Значення та тип даних
- Ідентифікатори: змінна та константа, аргумент та параметр
- Літерал, вираз, оператор
- Блок коду, цикл, умова
- Процедура та функція
- Модулі, компоненти, бібліотеки
- Мови та парадигми програмування
- Технологічні стеки
- Debug, обробка помилок, лінтери, транслятори та компілятори
- Системи контролю версій та пакетні менеджери, git
- Масиви та об'єкти
- Робота з рядками
- Функції, іменовані та анонімні, першого класу, стрілкові
- Устрій пам'яті додатків, стек та куча (heap)
- Області видимості та контексти
- Базове розуміння рекурсії та забезпечення виходу
- Таймери, EventEmitter, події
- Колекції, множини, хештаблиці
- Робота з файлами
- Записи та структури (struct)
- Серіалізація та десеріалізація
- Обробка помилок та винятків (exceptions)
- Шаблонні рядки та юнікод, регулярні вирази та парсинг
- Антипатерни процедурного програмування та загальні для усіх парадигм
- Code Review, рефакторинг: причини, цілі, техніки та процес
- Контексти та замикання (closure)
- Часткове застосування (partial) та карірування (сгккн), функції вищого порядку (higher order functions), колбеки
- Чеїнінг функцій (functional chaining) та об'єктів (object method chaining)
- Рекурсія: непряма та хвостова, стек, вихід
- Композиція функцфй: pipe, compose
- Функції-обгортки, мемоізація
- Функції-фабрики та пули об'єктів
- Класи, прототипне програмування та успадкування
- Домішки та їх небезпека: mixin, extend, Object.assign
- Списки: однозв'язні, двозв'язкові, циклічні, розгорнуті
- Стек, черга, дек, графові структури
- Огляд парадигми: Об'єктно-орієнтоване програмування
- Принципи: абстрагування, інкапсуляція, успадкування, поліморфізм
- Приховування в ООП та особливості на JavaScript
- Інтерфейси vs успадкування у ООП
- Асоціація, агрегація та композиція об'єктів
- Антипатерни об'єктно-орієнтованого програмування
- Дженерики та узагальнене програмування (generic programming)
- Огляд парадигми: Функціональне програмування
- Функціональні об'єкти, функтори та монади
- Огляд парадигм: Реактивне програмування
- Огляд парадигм: Автоматне програмування
- Асинхронне програмування на callback-ах та async/await
- Тестування: юніттести, системне та інтеграційне тестування
- Контрактне програмування
- Оцінка складності алгоритмів
- Вимірювання продуктивності коду та оптимізація
- Інтроспекція та рефлексія
- Мономорфний та поліморфний код, інлайн-кеш, приховані класи
- Незмінні структури даних (immutable)
- Введення в патерни GRASP, SOLID, GoF
- GRASP з адаптацією для JavaScript та Node.js
- GRASP: Творець та контролер
- GRASP: Принцип інформаційного експерта (information expert)
- GRASP: Зачеплення та зв'язність (coupling and cohesion)
- GRASP: Чиста вигадка (pure fabrication)
- GRASP: Посередник, стійкість до змін
- Закон Деметри (LoD - Law of Demeter)
- Генератори та асинхронні генератори
- Ітератори та асинхронні ітератори
- Принципи SOLID
- GoF: Породжувальні шаблони (creational)
- GoF: Структурні шаблони (structural)
- GoF: Поведінкові шаблони (behavioral)
- to be continued
- Асинхронне та паралельне програмування
- to be continued