Путь к укреплению базовых навыков. Часть 2.

План Junior → Junior+

Прошла еще одна неделя самостоятельного обучения, цель которого подтянуть уровень до Junior+ и подготовиться к вопросам на собеседовании.

Неделя была посвящена чистому JavaScript.

Темы: • Типы данных, область видимости, замыкания. • Контекст this, call/apply/bind. • Прототипы, классы, наследование. • Event Loop, асинхронность: промисы, async/await. • Работа с API: fetch, AbortController, обработка ошибок. • DOM, события, делегирование. • Структуры данных, модули, хранилища

Получилось затронуть все самые необходимые темы, связанные с frontend-разработкой на ванильном JS. Запомнить всю информацию не удалось, но получилось структурировать некоторые темы.

Во-первых, появилось разделение понимания асинхронности и работы с API. Раньше для меня это было что-то одно. Сейчас понимаю, что асинхронность — это в первую очередь про сам язык.

JavaScript является однопоточным языком программирования, где операции выполняются по очереди в одном стеке вызовов (call stack). И понимание event loop помогает определить, в каком порядке будут выполняться асинхронные операции.

Работа с API — это уже про взаимодействие с сервером: отправка запросов, получение ответов, обработка данных. Что делать, если данные не загрузились, сервер не ответил или вернул ошибку.

Во-вторых, у меня появилось некое личное разделение JS-разработчиков. Если веб-разработчики больше концентрируются на верстке, а frontend-разработчики на работе с данными, то разработчики… тут я хотела написать, что существуют разработчики, которые создают такие мощные инструменты, как React. Но оказалось, это другой уровень абстракции. Это не про прикладных разработчиков веб-приложений, а про инженеров-проектировщиков.

Такое разделение появилось, когда я начала углубляться в работу JS и движка V8. И если понимать, как работает JS на уровне спецификации ECMAScript, необходимо, то знать, как работает движок, излишне. Раньше я думала, что если я использую JS, то значит должна знать всё досконально. Но на самом деле, я должна знать ровно столько, сколько требует бизнес, чтобы эффективно закрывать задачи. А знание V8 нужно, если планируется создать свой собственный фреймворк.

В-третьих, теперь понимаю, чем отличается императивный код от декларативного. Писать код на чистом JS и обращаться напрямую к DOM-дереву — это императивный подход. На скриншоте — небольшой пример создания одной задачи с использованием свойств и методов. React позволяет писать декларативный код, избавляя от рутинной работы с DOM.

Что отметила для себя лично: мне нравится писать код, опираясь на некую готовую структуру с понятной архитектурой и паттернами проектирования. Это избавляет от необходимости изобретать велосипед и сильно разгружает мозг. Поэтому я люблю работать с React.

Впереди неделя React + TypeScript + Redux. Не знаю, почему DeepSeek решил поставить эти объемные темы в одну неделю, но пока что ожидания не самые оптимистичные 😁😁

Путь к укреплению базовых навыков. Часть 2. | Сетка — социальная сеть от hh.ru