Трек
Для программистов

СИКП на JS

Этот трек написан на основе «Структуры и интерпретации компьютерных программ» — легендарного курса от профессоров MIT. Новые знания о СИКП перевернут ваши представления о коде, данных и функциях.

Начать учиться
Картинка программы СИКП на JS
Самостоятельно,
в любое время
Обратная связь
по урокам от поддержки Хекслета
Неограниченный доступ
к пройденной теории
1344 студента
проходят трек прямо сейчас

Программа обучения

Уроки
  • Введение

  • Guard Expression

  • Параметры по умолчанию

  • Выполнение функций

  • Объекты первого класса

  • Лексическое окружение (LexicalEnvironment)

  • Возврат функций из функций

  • Частичное применение

  • Каррирование


Чему научитесь
  • Оценивать сложность функций и упрощать их код

  • Продвинутому использованию замыканий

  • Использовать композицию функций для решения реальных задач

Испытания
Уроки
  • Введение

  • Точки

  • Пары

  • Моделирование

  • Барьеры абстракции

  • Реализация пар

  • Рациональные числа


Чему научитесь
  • Создавать код, который легко читать и понимать что он делает

  • Научиться создавать удобные абстракции и скрывать внутреннюю реализацию данных

  • Определять границу между слоями приложения так, чтобы поддерживать высокий уровень модульности (независимости разных частей) кода

Испытания
Уроки
  • Введение

  • Представление последовательностей

  • Разметка

  • Отображение списков

  • Фильтрация списков

  • Свертка

  • Стандартные интерфейсы

  • Иерархические структуры

  • Уровневое проектирование


Чему научитесь
  • Строить сложные структуры данных на базе более простых

  • Проектировать функции так чтобы их можно было легко соединять друг с другом

  • Обрабатывать коллекции представленные списками с помощью функций высшего порядка (map/filter/reduce)

  • Разделять код на уровни, выстраивая правильное взаимодействие между слоями

Испытания
Уроки
  • Введение

  • Игровой дизайн: карточный бой

  • Инверсия

  • Помеченные данные

  • Диспетчеризация по типу. Аддитивность.

  • Объекты

  • Нативные объекты

  • Классы

  • Полиморфизм


Чему научитесь
  • Делать свое ООП с типами и диспетчеризацией

  • Использовать инверсию зависимостей для изменения поведения кода без его переписывания

  • Создавать классы и использовать их в JavaScript

  • Применять полиморфизм для уменьшения количества условных конструкций и дублирования

Уроки
  • Введение

  • Массив

  • Map

  • Set

  • Fluent interface

  • Неизменяемость

  • Ленивые вычисления

  • getter и мемоизация

  • Операция rest

  • Операция spread

  • Дестракчеринг


Чему научитесь
  • Представлять данные в виде множеств с помощью Set

  • Использовать Map для создания словарей

  • Создавать ленивые коллекции для уменьшения количества проходов

  • Мемоизировать вызовы функций для оптимизации производительности

Испытания

Как проходит обучение

Курс состоит из учебных модулей с уроками и проектами
  • В каждом уроке — теория, тесты на закрепление изученного и практика прямо в браузере

  • Задания проходят автоматическую проверку тестами и линтером

Теоретический материал
Мы воссоздали реальное рабочее пространство программиста. Прочувствуйте разработку «как есть» — с установкой софта, запуском кода, чтением ошибок и консольными командами
  • Вы прямо в браузере получаете доступ к виртуальной машине, редактору кода и к консоли

  • Сразу видите обратную связь по своему решению в виде тестов и их результатов

Упражнение в IDE
Проходите уроки самостоятельно в любое удобное время
  • Урок — это теория, квиз (проверочный тест) и практика

  • Учебный материал представлен в текстовом формате, иногда встречаются короткие видео

  • Практика может быть в виде упражнений в браузере, испытаний, проектов, самостоятельной работы и домашних заданий

  • Можно задавать вопросы по теории и практике уроков команде поддержки Хекслета

Тесты

Что говорят наши студенты о курсах и проектах

У меня прозрение! Я уже прошел всю "профессию", но только после этого урока по-настоящему понял: 1. что такое ООП и зачем оно нужно 2. как работает "передача сообщений" 3. разницу между объектами в контексте ООП и типом данных Object в JS Неиспользование в данном курсе специфического для языка синтаксиса действительно помогло лучше понять фундаментальные концепции программирования!

После пройденной профессии PHP этот курс очень хорошо зашел. Более глубокое понимание темы ООП, чем популярное "это там, где классы и объекты"))

Поскольку раньше с функциональным программированием не сталкивался, для меня этот курс - стал открытием, очень необычно. Спасибо за новый взгляд на программирование.

Приветствую, дорогой Hexlet! Спасибо автору этого урока за замечательное донесение материала. Задание порадовало простотой и утилитарностью. Я, к своему стыду, не использовал ранее в работе переворот параметров и как-то выкручивался.

Доброго времени суток. Решил добавить немного рефлексии в топик. Я выполнил это задание. Сам. Ну, как минимум, первые две функции, concat пришлось вычитывать из обсуждений, ибо в целом принцип работы был понятен сразу, но вот нюансы... Я уже хотел бросить попытки самому реализовать задание, но взял последний шанс и эврика случилась, пазл сложился. Совет тем, кто только приступает: не отступайте при первых сложностях, позорьтесь до конца ))) Хотелось бы, конечно, услышать мнение...

потрясающе как из пар строились точки в координатной плоскости, а теперь с их же помощью динамическая диспетчеризация. это конечно высший пилотаж

Отличное задание, было круто. На поиски решений ушли почти сутки, но это того стоило. Немножко запарился с вызовом функции для дамага и с тернарниками, коих я написал в большом колличестве. Решение учителя мне показалось досточно сложным для понимания, пришлось переписать его несколько раз, чтобы врубиться.

Спасибо за такой прекрасный курс, было очень интересно!)

Получите доступ

К этому треку и ко всем остальным курсам Хекслета по подписке за 3 900 ₽ в месяц

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Кому подойдет обучение

Тем, кто умеет программировать хотя бы на одном любом языке
Тем, кто пробовал учиться на сторонних курсах, но до сих пор испытывает сложности в самостоятельном написании кода
Тем, кто уже программирует и хочет повысить свой профессиональный уровень

Хекслет —
это серьезная подготовка инженеров-программистов

  • Топовые IT-компании обучают своих сотрудников на Хекслете

  • Весь обучающий контент создан практикующими IT-специалистами

  • Программы, направленные на системное развитие инженерного мышления

17 000+

Студентов учатся ежемесячно

4.7+ звезды
4.7+

Рейтинг на отзовиках: Otzyvmarketing

Индекс лояльности

Нашу платформу часто рекомендуют студенты

Нам доверяют обучение своих сотрудников

Контур
Kaiten
СБЕР МАРКЕТ
Bell integrator
QIWI
Agima
Авиасейлc
Альфа Банк
Uchi.ru
Райффайзенбанк
PeterService
Simtech
Itech Group
Хотите учиться от компании?

Расскажите вашему работодателю о Хекслете

Оформите подписку за 3 900 ₽ в месяц
  • Получите доступ к этому треку и ко всем остальных курсам Хекслета

  • Учитесь сколько нужно, отменить подписку можно в любой момент

  • Задавайте вопросы по урокам — вам ответит поддержка Хекслета

  • Сохраните неограниченный доступ к пройденной теории даже после отмены подписки

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Трек — это набор курсов по определенной теме для повышения квалификации и развития инженерного мышления. Треки подходят как для разработчиков с опытом, так и для новичков в качестве задания «со звёздочкой».

Вы можете учиться в своём темпе, срок обучения не ограничен.

Мы рекомендуем выделять 5-10 часов в неделю. Так с одной стороны обучение будет достаточно интенсивным, чтобы не растягивать его надолго, а с другой — достаточно комфортным, чтобы совмещать с работой и успевать отдыхать.

Материал программы — это готовые курсы с адаптированной для новичков теорией, тестами на закрепление и большим количеством практических упражнений с автоматизированной проверкой прямо в браузере. В некоторых треках есть проект — вы создадите приложение, которое станет частью вашего портфолио и даст опыт реальной разработки.

Вы можете учиться самостоятельно или вместе с наставником, он поможет разобраться в сложных моментах.

Тогда вы можете обучаться вместе с наставником.

Каждый наставник — опытный программист, который добился успехов в профессии, а теперь делится знаниями и опытом со студентами Хекслета. Кандидаты проходят строгий отбор — наставником становится лишь каждый десятый, поэтому случайных людей у нас нет.

Наставник помогает справляться с трудностями, отвечает на вопросы и делает ревью проектов.

Мы принимаем карты Visa, MasterCard и МИР любого банка, валюта счёта тоже может быть любой.

Если решите учиться самостоятельно, оформите подписку на план «Базовый». Доступ ко всем трекам откроется сразу после оплаты.

Если нужна помощь наставника, оставьте заявку на обучение. С вами свяжется куратор, подберёт подходящего наставника и пришлёт ссылку на оплату.