Фронтенд в картинках — просто, наглядно и понятно. Новые знания в компактном формате каждый день.
Присоединяйтесь: @FrontendPortal
Присоединяйтесь: @FrontendPortal
🎂 Мой год перемен
В 27 лет я был в найме, только пробовал себя в менторстве, YeaHub существовал на уровне "в свободное время что-то пилим, одну страницу делаем месяц". На YouTube было 4000 подписчиков, в Telegram — 3000. Только родилась дочь, работы — море, пахал 24/7 без выходных.
Год спустя, в 28, всё иначе.
Я ушел из найма и полностью погрузился в свой проект. Сейчас в нём — 2000 зарегистрированных пользователей, 40 000 посещений за 5 месяцев, ежедневно платформу посещают 500–800 человек. Сеть каналов YeaHub выросла до 6000+ подписчиков. YouTube приближается к 10 000, Telegram — 5200.
За год для учеников я создал полноценный курс-роадмап: от основ HTML/CSS до продвинутых тем вроде Docker и CI/CD. Записал 150+ уроков, собрал базу гайдов и материалов. В мае выйдет бесплатный курс по JS DOM API на YouTube – я продолжаю делиться знаниями бесплатно.
Но главное — люди.
За этот год я обучил (и продолжаю обучать) больше 150 человек. Сообщество учеников и выпускников — уже 130+ человек. Помог трудоустроиться более 30 ребятам. Познакомился с крутыми ребятами — блогерами, менторами, экспертами. Вступил в сильные IT-сообщества. Прочувствовал мощь нетворкинга и силу окружения. Стал лучше, пересмотрел взгляды, прокачал мышление.
А ещё — это самый тёплый день рождения в моей жизни.
Утро началось с 40+ поздравлений от учеников. Жена с дочкой встретили меня с тортиком — не сдержался, прослезился 🥹. Писали коллеги, друзья, знакомые — столько тёплых слов, благодарностей и пожеланий.
Когда тебя так искренне поздравляют, когда благодарят за помощь, вдохновение и поддержку — понимаешь: я на правильном пути.
Я бесконечно благодарен миру за эти возможности, людям — за доверие и помощь, IT — за крутое комьюнити и бесконечный рост.
И знаю: впереди — ещё больше свершений. 💪
В 27 лет я был в найме, только пробовал себя в менторстве, YeaHub существовал на уровне "в свободное время что-то пилим, одну страницу делаем месяц". На YouTube было 4000 подписчиков, в Telegram — 3000. Только родилась дочь, работы — море, пахал 24/7 без выходных.
Год спустя, в 28, всё иначе.
Я ушел из найма и полностью погрузился в свой проект. Сейчас в нём — 2000 зарегистрированных пользователей, 40 000 посещений за 5 месяцев, ежедневно платформу посещают 500–800 человек. Сеть каналов YeaHub выросла до 6000+ подписчиков. YouTube приближается к 10 000, Telegram — 5200.
За год для учеников я создал полноценный курс-роадмап: от основ HTML/CSS до продвинутых тем вроде Docker и CI/CD. Записал 150+ уроков, собрал базу гайдов и материалов. В мае выйдет бесплатный курс по JS DOM API на YouTube – я продолжаю делиться знаниями бесплатно.
Но главное — люди.
За этот год я обучил (и продолжаю обучать) больше 150 человек. Сообщество учеников и выпускников — уже 130+ человек. Помог трудоустроиться более 30 ребятам. Познакомился с крутыми ребятами — блогерами, менторами, экспертами. Вступил в сильные IT-сообщества. Прочувствовал мощь нетворкинга и силу окружения. Стал лучше, пересмотрел взгляды, прокачал мышление.
А ещё — это самый тёплый день рождения в моей жизни.
Утро началось с 40+ поздравлений от учеников. Жена с дочкой встретили меня с тортиком — не сдержался, прослезился 🥹. Писали коллеги, друзья, знакомые — столько тёплых слов, благодарностей и пожеланий.
Когда тебя так искренне поздравляют, когда благодарят за помощь, вдохновение и поддержку — понимаешь: я на правильном пути.
Я бесконечно благодарен миру за эти возможности, людям — за доверие и помощь, IT — за крутое комьюнити и бесконечный рост.
И знаю: впереди — ещё больше свершений. 💪
UI Kit представляет собой систематизированную коллекцию интерфейсных компонентов, которая служит фундаментом для разработки приложений. В современных проектах наличие продуманного UI Kit перешло из категории рекомендаций в обязательное требование по нескольким ключевым причинам.
[Картинка 1: Пример Storybook]
UI Kit — это не просто коллекция кнопок и полей ввода. Это комплексная система, включающая:
- Базовые компоненты интерфейса (кнопки, формы, переключатели)
- Типографику и иерархию текста
- Цветовую палитру с семантическим значением цветов
- Систему отступов и размеров
- Состояния элементов (активное, неактивное, hover, focus)
[Картинка 2 и 3: Дизайн в Figma]
При создании компонентов для UI Kit необходимо придерживаться нескольких фундаментальных принципов
1. Семантическая корректность
Каждый компонент должен максимально точно отражать свою суть на уровне HTML-разметки. Кнопка — это <button> или <input type="button">, ссылка — <a>, поле ввода — <input> или <textarea>. Это важно не только для доступности (accessibility), но и для правильной работы в различных контекстах (например, в формах или при навигации).
2. Полнота свойств
Компонент должен поддерживать все стандартные HTML-атрибуты соответствующего элемента. Для кнопки это включает type (button, submit, reset), disabled, autofocus и другие.
3. Управляемость извне
Компонент не должен содержать внутреннюю логику состояния (где это возможно). Все состояния (активное, неактивное, загружающееся) должны управляться через пропсы. Это делает компонент предсказуемым и легко интегрируемым в любую архитектуру.
4. Принцип открытости/закрытости
Компонент должен быть закрыт для модификаций (его базовое поведение нельзя изменить), но открыт для расширения. На практике это означает:
- Возможность добавления классов через className
- Возможность передачи произвольных атрибутов
- Гибкость в контенте через children
5. Единый источник правды
Изменение компонента в UI Kit должно автоматически отражаться во всех местах его использования. Это требует тщательного проектирования API компонента на этапе создания, чтобы избежать необходимости "ветвления" логики в будущем.
Оптимальная структура для UI Kit в проекте выглядит следующим образом:
src/
ui/
Button/
Button.tsx # React-компонент
Button.stories.tsx # Документация в Storybook
Button.test.tsx # Тесты компонента
Button.module.css # Стили компонента
Input/ # Аналогичная структура для других компонентов
...
styles/
variables.css # CSS-переменные (цвета, отступы, шрифты)
typography.css # Типографика
animations.css # Анимации
global.css # Глобальные стили
Перед разработкой тщательно изучаем макеты и выделяем все варианты кнопок: Варианты по стилю, Размеры, Состояния, Дополнительные требования (иконки, текст).
[Картинка 4: Компонент Button]
При стилизации используем CSS-переменные из дизайн-системы, Для каждого варианта прописываем цвета для всех состояний.
[Картинка 5: CSS-переменные]
Создаем подробные TypeScript-интерфейсы: Объединение с нативными атрибутами button и a, Поддержка всех стандартных HTML-атрибутов, Четкое разделение кастомных и стандартных пропсов
[Картинка 6: Типизация кнопки]
Далее создаем сторисы для всех вариантов: Основной вид, Все состояния, Примеры с иконками, Вариант как ссылки
#ui #storybook #button #react
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Менторство Reactify
🔒 Архив записей менторской программы
Все групповые занятия, лекции и сессии лайвкодинга доступны в нашем закрытом чате-архиве. Здесь собрано 120+ записей, за исключением:
- Персональных мок-собеседований
- Индивидуальных разборов опыта ("прожарок")
- Реальных собеседований учеников
❗️ Эти материалы доступны только в чате с учениками так, как носят личный характер.
В закрытом чате-архиве много записей групповых занятий. Можно готовиться к лайвкодингу, к собеседованиям и изучать сложные темы.
Преимущества архивного чата:
- Доступ по подписке (500 руб./месяц)
- Возможность оценить качество и формат занятий
- Полезно для тех, кто рассматривает менторство
Примеры доступных материалов:
- Лекция по FSD на менторстве
- Групповой лайвкодинг по JavaScript
- Групповой лайвкодинг (Новички)
- Гайд: 80% всего Git & GitHub для работы.
- Гайд по процессам. Отвечаю на вопросы про опыт, по YeaHub
- Лайвкодинг методы массивов
- Лекция по основам JavaScript
- Митап по теме This
- Групповое собеседование
✔️ Хотите понять, подходит ли вам наш формат? Получите бесплатный доступ к закрытому чату на 3 дня
🌐 ПОЛУЧИТЬ ДОСТУП
Все групповые занятия, лекции и сессии лайвкодинга доступны в нашем закрытом чате-архиве. Здесь собрано 120+ записей, за исключением:
- Персональных мок-собеседований
- Индивидуальных разборов опыта ("прожарок")
- Реальных собеседований учеников
❗️ Эти материалы доступны только в чате с учениками так, как носят личный характер.
В закрытом чате-архиве много записей групповых занятий. Можно готовиться к лайвкодингу, к собеседованиям и изучать сложные темы.
Преимущества архивного чата:
- Доступ по подписке (500 руб./месяц)
- Возможность оценить качество и формат занятий
- Полезно для тех, кто рассматривает менторство
Примеры доступных материалов:
- Лекция по FSD на менторстве
- Групповой лайвкодинг по JavaScript
- Групповой лайвкодинг (Новички)
- Гайд: 80% всего Git & GitHub для работы.
- Гайд по процессам. Отвечаю на вопросы про опыт, по YeaHub
- Лайвкодинг методы массивов
- Лекция по основам JavaScript
- Митап по теме This
- Групповое собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
JavaScript: Основы и теория
00:00:00 – Введение: теория и практика JavaScript.
00:00:49 – Способы создания переменных: let, var, const.
00:02:13 – Hoisting (поднятие) и типы данных.
00:03:20 – Примитивные типы данных и NaN.
00:05:40 – Подготовка к собеседованиям с платформой ehab.
Операторы и преобразование типов
00:07:33 – Унарные и бинарные операторы.
00:09:50 – Тернарные операторы и преобразование типов.
00:11:57 – Операторы сравнения и строгое равенство (===).
00:13:43 – Оператор switch как альтернатива if-else.
Функции и замыкания
00:23:06 – Типы функций в JavaScript.
00:26:58 – Стрелочные функции vs обычные функции.
00:27:58 – Замыкания и их применение.
Работа с числами и строками
00:30:11 – Округление чисел (round, floor, ceil).
00:32:57 – Методы строк (toLowerCase, slice, substring).
00:34:32 – Проверка подстроки (includes, регулярные выражения).
Массивы и объекты
00:44:46 – Объекты: хранение и ссылки.
00:46:36 – Клонирование объектов (поверхностное и глубокое).
00:55:05 – Методы массивов (push, pop, map, filter).
Асинхронность и промисы
01:45:12 – Промисы и их состояния (pending, resolved, rejected).
01:48:02 – Методы промисов (all, race, resolve).
01:50:51 – Работа с fetch и запросами.
ООП и прототипы
01:59:20 – Классы и наследование.
02:00:44 – Ключевое слово super и защищенные свойства.
02:02:00 – Создание функции-конструктора Animal.
DOM и события
02:04:24 – Поиск элементов в DOM.
02:07:59 – Фазы событий (захват, цель, всплытие).
02:09:17 – Пользовательские события.
Хранилища и прокси
02:10:28 – localStorage, sessionStorage, cookies.
02:13:03 – MutationObserver для отслеживания изменений DOM.
https://youtu.be/A2P3Gn2_gSY?si=iednvaJ0O502SI-H
00:00:00 – Введение: теория и практика JavaScript.
00:00:49 – Способы создания переменных: let, var, const.
00:02:13 – Hoisting (поднятие) и типы данных.
00:03:20 – Примитивные типы данных и NaN.
00:05:40 – Подготовка к собеседованиям с платформой ehab.
Операторы и преобразование типов
00:07:33 – Унарные и бинарные операторы.
00:09:50 – Тернарные операторы и преобразование типов.
00:11:57 – Операторы сравнения и строгое равенство (===).
00:13:43 – Оператор switch как альтернатива if-else.
Функции и замыкания
00:23:06 – Типы функций в JavaScript.
00:26:58 – Стрелочные функции vs обычные функции.
00:27:58 – Замыкания и их применение.
Работа с числами и строками
00:30:11 – Округление чисел (round, floor, ceil).
00:32:57 – Методы строк (toLowerCase, slice, substring).
00:34:32 – Проверка подстроки (includes, регулярные выражения).
Массивы и объекты
00:44:46 – Объекты: хранение и ссылки.
00:46:36 – Клонирование объектов (поверхностное и глубокое).
00:55:05 – Методы массивов (push, pop, map, filter).
Асинхронность и промисы
01:45:12 – Промисы и их состояния (pending, resolved, rejected).
01:48:02 – Методы промисов (all, race, resolve).
01:50:51 – Работа с fetch и запросами.
ООП и прототипы
01:59:20 – Классы и наследование.
02:00:44 – Ключевое слово super и защищенные свойства.
02:02:00 – Создание функции-конструктора Animal.
DOM и события
02:04:24 – Поиск элементов в DOM.
02:07:59 – Фазы событий (захват, цель, всплытие).
02:09:17 – Пользовательские события.
Хранилища и прокси
02:10:28 – localStorage, sessionStorage, cookies.
02:13:03 – MutationObserver для отслеживания изменений DOM.
https://youtu.be/A2P3Gn2_gSY?si=iednvaJ0O502SI-H
YouTube
ВЕСЬ JavaScript в одном собеседовании. 200 вопросов + 70 задач за 2 часа
Это видео представляет собой структурированный разбор ключевых тем JavaScript, необходимых для успешного прохождения технического собеседования. Формат сочетает теоретические вопросы с практическим решением задач.
JavaScript: Основы и теория
00:00:00 – Введение:…
JavaScript: Основы и теория
00:00:00 – Введение:…
Please open Telegram to view this post
VIEW IN TELEGRAM
В этом видео разберем:
Как превратить даже скромный опыт в мощный кейс, который впечатлит работодателя. Вы узнаете, как правильно отвечать на 5 ключевых вопросов о ваших проектах, процессах и задачах — так, чтобы получить оффер, а не отказ.
Что вас ждет:
✔ Как презентовать любой проект — даже если это был «просто интернет-магазин»
✔ Какие процессы важно упомянуть (SCRUM, CI/CD, тестирование), даже если их не было
✔ Как описывать задачи, чтобы звучало как senior-уровень
✔ Что говорить про инфраструктуру и деплой, если делал всё на коленке
✔ Фразы-убийцы, которые заставят HR поверить в ваш опыт
Кому будет полезно:
▪ Джунам и миддлам, которые хотят прыгнуть выше текущего уровня
▪ Фрилансерам, чей опыт не берут в расчет
▪ Тем, кто долго ищет работу из-за «недостаточно сильного» бэкграунда
Это первое мое полноценное видео про трудоустройство. Советую посмотреть
Видео уже на канале!
Я не оставляю ссылку, так как видео лучше продвигается, если заходить на него напрямую с YouTube. Это помогает улучшить его рейтинг и увеличить шансы на органическое продвижение.
#собеседования #резюме
Please open Telegram to view this post
VIEW IN TELEGRAM
Странно, что это видео набирает так мало просмотров. Подходы, которые в нём разбираются, действительно помогают моим ученикам трудоустраиваться. При этом там не просто шаблонные советы вроде «Так не говори, а так говори». Мы детально разбираем каждый вопрос, объясняем, как к нему подготовиться.
Лучшего гайда по усилению опыта для фронтенд-разработчика просто не найти. Советую всё-таки посмотреть — решил выпустить годный контент для ребят, потому что знаю ситуацию на рынке: компании сейчас очень избирательны и выбирают кандидатов именно по опыту.
00:00 - Разбор ключевых вопросов с собеседований и примеры ответов.
00:58 - Как презентовать свой опыт, особенно из стартапов и маленьких компаний.
01:45 - Важность командных процессов (канбан, ретро) и проверка знаний на собеседовании.
02:41 - Как добавить в резюме технологии, даже если не использовал их в проекте.
04:49 - Почему важно разбираться в инфраструктуре и как изучить базовые практики.
08:21 - Настройка CI/CD
09:51 - Пример слабого ответа. Почему ответ "тимлид делал, я не вникал" — провал.
10:51 - Пример сильного ответа. Как описать CI/CD, Docker, Git Flow и решение проблем с кэшированием.
14:19 - Ergostol
15:39 - Вопрос о сложной задаче. Три метода усилить простую задачу (масштаб, заимствование, гибрид).
19:43 - Плохой ответ о сложной задаче. Почему модальное окно — слабый пример.
20:56 - Идеальный ответ о сложной задаче. Пример: разработка конструктора отчетов с оптимизацией и интеграцией.
23:39 - Профессиональные фишки. Как упоминание метрик и бизнес-ценности усиливает ответ.
24:19 - Работа в команде. Зачем знать методологии (Scrum, Kanban) и инструменты (Jira, Figma).
28:59 - Плохой ответ о процессах. Хаотичная работа без документации — красный флаг.
30:16 - Хороший ответ о процессах. Пример работы по Scrum с Jira и Confluence.
32:46 - Взаимодействие с командой. Как общаться с тестировщиками, дизайнерами и бэкендерами.
37:03 - Пример хорошего взаимодействия. Совместные сессии, чек-листы и решение багов.
41:45 - Структура задач и баги. Как описывать баги и пользовательские сценарии в Jira.
43:56 - Важность командного подхода. Почему бизнес оценивает кандидатов по проектам, а не личным навыкам.
44:54 - Масштабирование проектов. Как превратить интернет-магазин в "экосистему для 50+ точек".
50:30 - Полноценный стек технологий. Зачем добавлять в описание TypeScript и state-менеджеры, даже если не использовал.
54:44 - Плохой ответ о проекте. Почему "магазин мебели на React" — слабая история.
55:51 - Идеальный ответ о проекте. Пример: платформа для цифровизации ритейла с AI и микрофронтендами.
59:33 - Развитие специалистов. Как прокачивать навыки вне работы и расти в карьере.
https://youtu.be/WemHjWFjh3o?si=sXpG5h8HSqn2hZ9w
Лучшего гайда по усилению опыта для фронтенд-разработчика просто не найти. Советую всё-таки посмотреть — решил выпустить годный контент для ребят, потому что знаю ситуацию на рынке: компании сейчас очень избирательны и выбирают кандидатов именно по опыту.
00:00 - Разбор ключевых вопросов с собеседований и примеры ответов.
00:58 - Как презентовать свой опыт, особенно из стартапов и маленьких компаний.
01:45 - Важность командных процессов (канбан, ретро) и проверка знаний на собеседовании.
02:41 - Как добавить в резюме технологии, даже если не использовал их в проекте.
04:49 - Почему важно разбираться в инфраструктуре и как изучить базовые практики.
08:21 - Настройка CI/CD
09:51 - Пример слабого ответа. Почему ответ "тимлид делал, я не вникал" — провал.
10:51 - Пример сильного ответа. Как описать CI/CD, Docker, Git Flow и решение проблем с кэшированием.
14:19 - Ergostol
15:39 - Вопрос о сложной задаче. Три метода усилить простую задачу (масштаб, заимствование, гибрид).
19:43 - Плохой ответ о сложной задаче. Почему модальное окно — слабый пример.
20:56 - Идеальный ответ о сложной задаче. Пример: разработка конструктора отчетов с оптимизацией и интеграцией.
23:39 - Профессиональные фишки. Как упоминание метрик и бизнес-ценности усиливает ответ.
24:19 - Работа в команде. Зачем знать методологии (Scrum, Kanban) и инструменты (Jira, Figma).
28:59 - Плохой ответ о процессах. Хаотичная работа без документации — красный флаг.
30:16 - Хороший ответ о процессах. Пример работы по Scrum с Jira и Confluence.
32:46 - Взаимодействие с командой. Как общаться с тестировщиками, дизайнерами и бэкендерами.
37:03 - Пример хорошего взаимодействия. Совместные сессии, чек-листы и решение багов.
41:45 - Структура задач и баги. Как описывать баги и пользовательские сценарии в Jira.
43:56 - Важность командного подхода. Почему бизнес оценивает кандидатов по проектам, а не личным навыкам.
44:54 - Масштабирование проектов. Как превратить интернет-магазин в "экосистему для 50+ точек".
50:30 - Полноценный стек технологий. Зачем добавлять в описание TypeScript и state-менеджеры, даже если не использовал.
54:44 - Плохой ответ о проекте. Почему "магазин мебели на React" — слабая история.
55:51 - Идеальный ответ о проекте. Пример: платформа для цифровизации ритейла с AI и микрофронтендами.
59:33 - Развитие специалистов. Как прокачивать навыки вне работы и расти в карьере.
https://youtu.be/WemHjWFjh3o?si=sXpG5h8HSqn2hZ9w
YouTube
Как УСИЛИТЬ слабый опыт | Проекты, Процессы, Задачи и Достижения
В этом видео разберем:
Как превратить даже скромный опыт в мощный кейс, который впечатлит работодателя. Вы узнаете, как правильно отвечать на 5 ключевых вопросов о ваших проектах, процессах и задачах — так, чтобы получить оффер, а не отказ.
Что вас ждет:…
Как превратить даже скромный опыт в мощный кейс, который впечатлит работодателя. Вы узнаете, как правильно отвечать на 5 ключевых вопросов о ваших проектах, процессах и задачах — так, чтобы получить оффер, а не отказ.
Что вас ждет:…