
Установить Node.js и запустить первый скрипт без ошибок
За 15 минут вы установите Node.js, проверите версию и запустите первый скрипт. Разбираем ошибки, на которых новички застревают: «command not found», конфликты версий и запуск не того файла.

За 15 минут вы установите Node.js, проверите версию и запустите первый скрипт. Разбираем ошибки, на которых новички застревают: «command not found», конфликты версий и запуск не того файла.

За 30–40 минут вы напишете первый асинхронный код: получите данные с сервера, обработаете ошибку и запустите несколько запросов параллельно. Всё на чистом JavaScript, без библиотек.

Разбираем fetch с нуля: как отправить GET и POST, поймать ошибку сервера, отменить зависший запрос и не упереться в CORS в первый же час работы.

Три fetch подряд ждут друг друга и страница грузится секунды вместо миллисекунд. Разбираем, где async/await прячет параллелизм и как промисы ведут себя под капотом.

Fetch не бросает исключение на 404 и 500, зависшие запросы копятся в вкладке, а гонки перезаписывают свежие данные старыми. Разбираем, где очевидный код ломается и как писать надёжно.

Первый запрос через fetch кажется простым, пока не появляется молчаливая ошибка, CORS в консоли или зависший спиннер. Разбираем, что ломается чаще всего и как это чинить.

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

Как искать узлы в DOM правильными методами и менять их так, чтобы браузер не пересчитывал раскладку на каждой строке цикла. Разбор приёмов и их цены.

Асинхронность, this и передача объектов по ссылке ломают привычки бэкендера сильнее, чем синтаксис. Разбираем, где интуиция из PHP и Python подводит в JavaScript.

Вы уже пишете на PHP или Python и решили добавить JavaScript. Разбираем, что перенесётся из старого опыта без боли, а что придётся выучить заново — и с чего начать, чтобы не переучиваться потом.

Синхронный слушатель, который на демо отрабатывал за миллисекунды, добавляет 400 мс к каждому HTTP-запросу в проде. Разбираем, почему EventDispatcher в Symfony молча тормозит и что ломается первым.

Запрос отдаётся за 800 мс, а бизнес-логика в нём — 30 мс. Разбираем, как Symfony Profiler и Blackfire показывают, куда уходит остальное время, и на какие цифры смотреть в первую очередь.