СИКП на JS
Эти курсы перевернут ваше представление о том что такое код, данные и функции. Они базируются на легендарном курсе "Структура и Интерпретация Компьютерных Программ" (СИКП). В этих курсах создаются свои собственные типы данных, из которых строятся другие типы, изучаются функции высшего порядка, каррирование, частичное применение и многое другое. Вы познакомитесь с отложенными вычислениями, мемоизацией и лямбда-исчислением.
Курс
JS: Функциональное программирование
PROТема функций — одна из центральных в JavaScript. Их мощь позволяет порой творить настоящие чудеса. Начиная с этого курса, функции начинают использоваться как данные, порождают другие функции и получают функции как аргументы.
Курс
JS: Составные данные
PROСледующий шаг после освоения основ программирования это изучение идеи составных данных. Этот курс посвящён изучению концепций, позволяющих из простых типов данных составлять более сложные данные, необходимые для решения конкретной задачи и для реализации конкретной программы. На примере разработки простой графической библиотеки мы изучим как «подняться» от уровня простых чисел до уровня двумерных объектов и рисунков.
Курс
JS: Последовательности
PROПродолжение изучения составных данных на более продвинутом уровне. Рассматриваем тип данных «список». В течение курса работаем над проектом «Генератор HTML», и на практике учимся понимать и использовать функции высшего порядка filter, map и reduce. Знакомимся с иерархическими структурами и уровневым проектированием.
Курс
JS: Программирование, управляемое данными
PROВ течение этого курса мы будем писать собственную карточную игру и знакомиться с такими важными концепциями программирования, как пользовательские типы, динамическая диспетчеризация по типу, позволяющая писать ёмкий, универсальный код, полиморфизм, передача сообщений между сущностями и, конечно, основы важнейшей темы — объектно-ориентированного программирования. Также мы перейдем к разработке через тесты (test driven development).
Курс
JS: Коллекции
PROЭтот курс посвящен конкретным приемам в работе с коллекциями, которые используются в языке JavaScript, а также изучению основных типов данных: массивов, ассоциативных массивов и множеств. В течение курса изучаются темы техники мемоизации, ленивых вычислений, использования функций высшего порядка, так называемых spread- и rest-операций и техник разрушающих присваиваний.
Испытания
Пары без функций
Пары на строках
Тройка
Молния
Выравнивание
Первые n элементов
Одинаковая четность
Уникальное объединение
Быстрая сортировка
Списки на базе строк
Задача про ферзей
Выбор по селектору
Периметр многоугольника
Чанкование
Найди отличия
Представление массива в виде объекта
Пересечение массивов
Исключаем лишних
Нечетное количество
Сборщик строки запроса
Поиск ближайшего соседа
NRZI кодирование
Увеличение двумерного массива
Нормализация данных
Числа Черча
Композиция функций
Каррирование
Впечатления
У меня прозрение! Я уже прошел всю "профессию", но только после этого урока по-настоящему понял:
- что такое ООП и зачем оно нужно
- как работает "передача сообщений"
- разницу между объектами в контексте ООП и типом данных Object в JS
Неиспользование в данном курсе специфического для языка синтаксиса действительно помогло лучше понять фундаментальные концепции программирования!
После пройденной профессии PHP этот курс очень хорошо зашел. Более глубокое понимание темы ООП, чем популярное "это там, где классы и объекты"))
потрясающе как из пар строились точки в координатной плоскости, а теперь с их же помощью динамическая диспетчеризация. это конечно высший пилотаж
Отличное задание, было круто. На поиски решений ушли почти сутки, но это того стоило. Немножко запарился с вызовом функции для дамага и с тернарниками, коих я написал в большом колличестве. Решение учителя мне показалось досточно сложным для понимания, пришлось переписать его несколько раз, чтобы врубиться.
Спасибо за такой прекрасный курс, было очень интересно!)