ru
Feedback
HTML Academy

HTML Academy

Открыть в Telegram

Курсы по веб-разработке: вёрстка, программирование, работа и комьюнити. Наш секретный бот @HTMLAcademyKeksobot. Вопросы по обучению @htmlacademy_sales Ролики на YT https://www.youtube.com/@HTMLAcademyTV Ролики на VK https://vkvideo.ru/@htmlacademy

Больше
9 777
Подписчики
-324 часа
-237 дней
-7930 день
Привлечение подписчиков
июнь '26
июнь '26
+21
в 0 каналах
май '26
+35
в 1 каналах
Get PRO
апрель '26
+49
в 0 каналах
Get PRO
март '26
+40
в 3 каналах
Get PRO
февраль '26
+37
в 0 каналах
Get PRO
январь '26
+54
в 0 каналах
Get PRO
декабрь '25
+48
в 2 каналах
Get PRO
ноябрь '25
+44
в 1 каналах
Get PRO
октябрь '25
+48
в 0 каналах
Get PRO
сентябрь '25
+52
в 1 каналах
Get PRO
август '25
+68
в 1 каналах
Get PRO
июль '25
+48
в 2 каналах
Get PRO
июнь '25
+54
в 0 каналах
Get PRO
май '25
+64
в 1 каналах
Get PRO
апрель '25
+58
в 0 каналах
Get PRO
март '25
+81
в 0 каналах
Get PRO
февраль '25
+57
в 0 каналах
Get PRO
январь '25
+62
в 0 каналах
Get PRO
декабрь '24
+58
в 1 каналах
Get PRO
ноябрь '24
+78
в 1 каналах
Get PRO
октябрь '24
+95
в 0 каналах
Get PRO
сентябрь '24
+52
в 1 каналах
Get PRO
август '24
+41
в 0 каналах
Get PRO
июль '24
+25
в 0 каналах
Get PRO
июнь '24
+46
в 1 каналах
Get PRO
май '24
+101
в 1 каналах
Get PRO
апрель '24
+240
в 3 каналах
Get PRO
март '24
+121
в 2 каналах
Get PRO
февраль '24
+138
в 2 каналах
Get PRO
январь '24
+182
в 6 каналах
Get PRO
декабрь '23
+151
в 1 каналах
Get PRO
ноябрь '23
+224
в 2 каналах
Get PRO
октябрь '23
+310
в 1 каналах
Get PRO
сентябрь '23
+193
в 0 каналах
Get PRO
август '23
+161
в 0 каналах
Get PRO
июль '23
+164
в 0 каналах
Get PRO
июнь '23
+127
в 0 каналах
Get PRO
май '23
+127
в 0 каналах
Get PRO
апрель '23
+128
в 0 каналах
Get PRO
март '23
+178
в 0 каналах
Get PRO
февраль '23
+255
в 0 каналах
Get PRO
январь '23
+509
в 0 каналах
Get PRO
декабрь '22
+614
в 0 каналах
Get PRO
ноябрь '22
+491
в 0 каналах
Get PRO
октябрь '22
+922
в 0 каналах
Get PRO
сентябрь '22
+748
в 0 каналах
Get PRO
август '22
+703
в 0 каналах
Get PRO
июль '22
+514
в 0 каналах
Get PRO
июнь '22
+653
в 0 каналах
Get PRO
май '22
+423
в 0 каналах
Get PRO
апрель '22
+572
в 0 каналах
Get PRO
март '22
+819
в 0 каналах
Get PRO
февраль '22
+234
в 0 каналах
Get PRO
январь '22
+210
в 0 каналах
Get PRO
декабрь '21
+301
в 0 каналах
Get PRO
ноябрь '21
+242
в 0 каналах
Get PRO
октябрь '21
+259
в 0 каналах
Get PRO
сентябрь '21
+200
в 0 каналах
Get PRO
август '21
+244
в 0 каналах
Get PRO
июль '21
+298
в 0 каналах
Get PRO
июнь '21
+328
в 0 каналах
Get PRO
май '21
+333
в 0 каналах
Get PRO
апрель '21
+414
в 0 каналах
Get PRO
март '21
+525
в 0 каналах
Get PRO
февраль '21
+521
в 0 каналах
Get PRO
январь '21
+471
в 0 каналах
Get PRO
декабрь '20
+7 426
в 0 каналах
Дата
Привлечение подписчиков
Упоминания
Каналы
17 июня0
16 июня+1
15 июня0
14 июня+2
13 июня0
12 июня0
11 июня0
10 июня0
09 июня+2
08 июня+2
07 июня+2
06 июня+1
05 июня+1
04 июня+3
03 июня+3
02 июня+4
01 июня0
Посты канала
Каждую неделю ИИ заметнее меняет фронтенд — и отсюда честный страх новичка: «пока я учусь, ИИ сделает всё за меня». В «Нейроф
+1
Каждую неделю ИИ заметнее меняет фронтенд — и отсюда честный страх новичка: «пока я учусь, ИИ сделает всё за меня». В «Нейрофронтендере» и «Нейрофулстеке» программа отвечает ровно на это опасение: сначала инженерная база, а модуль по ИИ-агентам идёт последним, пятым разделом. Логика прямо заявлена в программе — ИИ ускоряет того, кто понимает, что происходит под капотом, и подводит того, кто действует вслепую. «Нейрофронтендер» — путь от вёрстки и JavaScript через архитектуру клиентских приложений к React, а в финале ИИ-агенты для фронтендеров. «Нейрофулстек» — для фулстек-разработчика: тот же клиентский стек плюс серверная разработка на Node.js и REST API. Объём каждой программы — 720 часов и восемь учебных проектов, в конце индивидуальный проект. 🎁 Найдите коробку с подарком на htmlacademy.ru и заберите скидку на один из курсов.

2
🤔 Загадка от Кекса №5: что окажется в консоли?
370
3
Через 199 дней — 1 января. Новый год наступит в любом случае. Вопрос только в том, будете ли вы за эти месяцы ближе к работе+1
Через 199 дней — 1 января. Новый год наступит в любом случае. Вопрос только в том, будете ли вы за эти месяцы ближе к работе в ИТ. Кто-то встретит его с той же мыслью о смене профессии, которая приходит каждый январь и каждый раз остаётся мыслью. А кто-то за эти месяцы заложит базу во фронтенде и соберёт первое портфолио. Разница — в дате старта. С 16 по 21 июня на сайте крутится «Колесо Фортуны». Один оборот — одна персональная скидка на обучение: «Нейрофронтендер», «Нейрофулстек», профессия с наставником или с трудоустройством. Найдите на htmlacademy.ru коробку с подарком, крутаните колесо и заберите свою скидку.
518
4
curl — и сервер отвечает одной строкой JSON без переносов и отступов. Вложенные объекты, пара
curl <https://api.example.com/user> — и сервер отвечает одной строкой JSON без переносов и отступов. Вложенные объекты, пара килобайт данных, нужное поле где-то внутри. Глазами не найти. jq — это grep и sed, но для JSON. Допишите | jq . в конец команды — и тот же ответ разложится по строкам с отступами. А дальше jq достаёт любое вложенное поле, фильтрует записи по условию, считает агрегаты и вытаскивает токен из ответа авторизации — одной строкой в пайпе с curl. В статье — интерактивная песочница: меняете фильтр и сразу видите результат на живых данных, плюс синтаксис под каждую задачу. #js #tools 🎆 Читать статью
533
5
Сделать цвет светлее на 10% или подобрать гармоничный акцент — с HEX, да и с HSL, это всё ещё угадайка. Скажем, в HSL lightne
Сделать цвет светлее на 10% или подобрать гармоничный акцент — с HEX, да и с HSL, это всё ещё угадайка. Скажем, в HSL lightness: 50% у жёлтого и синего даёт разную видимую яркость: жёлтый светлее. oklch() берёт три параметра: L (яркость от 0 до 1), C (насыщенность от 0 примерно до 0.4) и H (оттенок в градусах от 0 до 360). Ключевое — перцептивная равномерность: при равном L цвета воспринимаются почти одинаково яркими, куда ровнее, чем в HSL. Для дизайн-систем это упрощает многое. Палитру собираете, меняя только H. Тёмную тему переключаете через L в CSS-переменных. Чтобы перекрасить весь бренд, хватает одной переменной --brand-h. И ещё oklch достаёт цвета, которых нет в sRGB, — оттенки P3 и Rec2020. Поддержка: Chrome 111+, Firefox 113+, Safari 15.4+, для старых браузеров — фолбэк на HEX. В статье — слайдеры L, C, H, на которых видно, как меняется цвет. #css #baseline 🔵 Читать статью
591
6
«Maximum call stack size exceeded» (или «too much recursion» в Firefox) — знакомая ошибка? Рекурсия по глубокой структуре упи
«Maximum call stack size exceeded» (или «too much recursion» в Firefox) — знакомая ошибка? Рекурсия по глубокой структуре упирается в лимит стека вызовов: каждый вызов кладёт кадр на стек, пока тот не переполнится. В курсе «Алгоритмы и структуры данных» этому посвящён отдельный раздел — ту же рекурсию переписывают на явный стек, данные уезжают в кучу, и жёсткий лимит стека вызовов больше не мешает. И так все 10 разделов на JavaScript, от O-нотации до динамического программирования: каждый на реальной задаче фронтенда. #htmlacademy #levelup Последние часы скидки 60% по промокоду ALGO60 — до конца воскресенья. 🔄 Смотреть программу
490
7
«AI — это ваш личный джун. Обязанность разработчика — хорошо поставить задачу, подумать об архитектуре и пройтись отладчиком
«AI — это ваш личный джун. Обязанность разработчика — хорошо поставить задачу, подумать об архитектуре и пройтись отладчиком по тому, что он нагенерировал» Максим Самарцев, директор Maxis, — о том, как руководитель IT-компании смотрит на AI в продуктовой разработке. Запись эфира: смотреть на YouTube | смотреть в VK 🔒 Программа обучения
845
8
На ревью прилетел комментарий: фильтрация дубликатов на 100 000 позиций вешает интерфейс. Виноват вложенный перебор — O(n²),+2
На ревью прилетел комментарий: фильтрация дубликатов на 100 000 позиций вешает интерфейс. Виноват вложенный перебор — O(n²), до 10 миллиардов сравнений. Через хеш-таблицу та же фильтрация укладывается в O(n): каждая проверка уникальности в среднем O(1). Вот этот зазор между «работает» и «работает быстро» и закрывает курс «Алгоритмы и структуры данных». 10 подробных разделов с примерами на JavaScript: O-нотация, поиск, сортировки (пузырёк и quicksort), деревья, хеш-таблицы, жадные алгоритмы, динамическое программирование. Каждый привязан к реальной задаче фронтенда: обход DOM-дерева, подбор ревьюеров в пулреквест, парсинг данных, хранение оповещений. Внутри теория, разбор кейсов, практические задания с эталонным решением и тесты. Темп свой, начать можно сразу. #htmlacademy #levelup Завтра выходной, и скидка 60% по промокоду ALGO60 работает все три дня — с пятницы по воскресенье, 12–14 июня. Только на этих выходных и только на этот курс. 🎤 Подробнее
597
9
Есть задачи, где массив работает — но медленно. Есть места, где Map решает то же самое за O(1). Разница между ними — это скор+2
Есть задачи, где массив работает — но медленно. Есть места, где Map решает то же самое за O(1). Разница между ними — это скорость интерфейса и оценка на ревью. Курс «Алгоритмы и структуры данных» — десять разделов на JavaScript, каждый привязан к реальным задачам фронтенда. Обход DOM-дерева, алгоритм подбора ревьюеров в пулреквест, фильтрация дубликатов на 100 000 позиций, quicksort для «живого» поиска без фризов — примеры, которые встречаются в продакшене. С 12 по 14 июня включительно на курс действует скидка 60% по промокоду ALGO60. Начать можно прямо сейчас и двигаться в своём темпе. #htmlacademy #levelup ☝️ Подробнее о курсе
1
10
Мы провели исследование зарплат фронтендеров. Взяли медианные офферы с рынка, перевели в мойву по текущим ценам — и получили+5
Мы провели исследование зарплат фронтендеров. Взяли медианные офферы с рынка, перевели в мойву по текущим ценам — и получили морскую инфографику. Листайте карточки пятничной рубрики нейрослопа. На последней — сравнение всех грейдов в одном кадре. P.S. Кекс оценил. Сказал, что мидл — это его минимум.
800
11
Правила в CSS можно вкладывать друг в друга — как в Sass, только без компиляции и зависимостей. Псевдоклассы, дочерние селект
Правила в CSS можно вкладывать друг в друга — как в Sass, только без компиляции и зависимостей. Псевдоклассы, дочерние селекторы и медиазапросы лежат рядом с базовыми стилями компонента, а не разбросаны по файлу. Нативно — с 2023 года: Chrome 112+, Firefox 117+, Safari 16.5+. Ключевой символ — &, ссылка на родительский селектор. &:hover превращается в .btn:hover, &.is-active — в .btn.is-active, а .dark & ставит .btn внутрь .dark. Без & вложенный селектор читается как потомок через пробел. Ещё тонкость для отладки: вложенные селекторы по специфичности считаются как внутри :is() — вес берётся от самого тяжёлого аргумента родителя. На простых стилях незаметно, на запутанных стоит помнить. Зато @media, @layer и @container работают прямо внутри правила: брейкпоинты живут рядом с компонентом, а не в хвосте файла. В статье можно покрутить живой пример. #css #baseline 👾 Читать статью
769
12
Поставили инструмент глобально через npm install -g, попользовались — и забыли удалить. За пару лет таких пакетов набираются
Поставили инструмент глобально через npm install -g, попользовались — и забыли удалить. За пару лет таких пакетов набираются десятки, разных версий, и они начинают конфликтовать. npx запускает пакет прямо из реестра npm, ничего не устанавливая глобально. Создать проект на Vite — npx create-vite my-app. Та же история со статическим сервером (npx serve .) или прогоном Prettier по всему проекту (npx prettier --write .): запустили и работаете, в npm -g ничего не осело. Внутри npx идёт по трём адресам: сначала node_modules/.bin в проекте, потом временный кеш, и только затем реестр. Нашёл локально или в кеше — оттуда и запустит, лишнего не качает. Версию можно зафиксировать через @, например npx prettier@2 — пригодится, когда надо воспроизвести чужую ошибку или проверить старый релиз. #npm #tools В статье это всё на интерактивном примере: нажимаете команду и видите, что происходит. 🔄 Читать статью
735
13
Сегодня последний день скидки на курс «Vite 8». На курсе соберёте проект на Vite с нуля: настройка стилей и препроцессоров, т
Сегодня последний день скидки на курс «Vite 8». На курсе соберёте проект на Vite с нуля: настройка стилей и препроцессоров, тесты в Vitest, деплой через GitHub Actions и готовый рецепт миграции с Gulp и Webpack. Скидка 60% по промокоду VITE60 — до конца дня. С понедельника курс по обычной цене. ⚡ Смотреть программу
655
14
Оффер мечты или что предлагает Maxis выпускникам Максим Самарцев, директор Maxis, рассказал, какая зарплата ждёт выпускников
Оффер мечты или что предлагает Maxis выпускникам Максим Самарцев, директор Maxis, рассказал, какая зарплата ждёт выпускников совместной программы обучения фронтенду. Ответ — в клипе. Запись эфира: смотреть на YouTube | смотреть в VK ⚡ Программа обучения
860
15
Vite 8 стартует сервер разработки за секунду, показывает правки на лету и собирает продакшен до 10–30 раз быстрее прошлой вер+2
Vite 8 стартует сервер разработки за секунду, показывает правки на лету и собирает продакшен до 10–30 раз быстрее прошлой версии. На скорость повлияла смена движка: esbuild для разработки и Rollup для сборки заменил Rolldown, единый сборщик на Rust поверх парсера Oxc. Конфиг? Для типового проекта его можно не писать. У Vite разумные значения по умолчанию. Vite — фактический стандарт сборки фронтенда: на нём работают Vue, SvelteKit, Nuxt и Astro. После отказа от Create React App его рекомендует и команда React (первый в списке сборщиков). Курс «Vite 8» это шесть разделов от нулевой конфигурации до деплоя на GitHub Pages через GitHub Actions. Внутри настройка стилей и препроцессоров, оптимизация графики, тесты в Vitest и отдельный раздел про миграцию с Gulp и Webpack. Курс по Vite полностью на русском языке с практикой и эталонными решениями. #htmlacademy #levelup В эти выходные, 6 и 7 июня, курс «Vite 8» можно будет взять со скидкой 60% по промокоду VITE60 — только два дня и только на этот курс. 📎 Смотреть программу
656
16
Пока Кекс сажал редиску, нейросеть придумала объяснять CSS-селекторы через рейтузы. И знаете, заходит. Пояс — это .reituzy__w+5
Пока Кекс сажал редиску, нейросеть придумала объяснять CSS-селекторы через рейтузы. И знаете, заходит. Пояс — это .reituzy__waistband, а :not(.patched) — те рейтузы, до которых заплатка пока не добралась. Чем точнее адрес, тем чище CSS. Кажется, спецификация ещё никогда не выглядела так по-домашнему. Листайте карточки, их шесть. Пятничная рубрика нейрослопа: объясняем HTML и CSS понятно и с юмором. А какой селектор для рейтуз придумали бы вы?
936
17
Переключаться на браузер ради каждой проверки вёрстки, искать путь к файлу вручную, переименовывать парный тег отдельно — мел
Переключаться на браузер ради каждой проверки вёрстки, искать путь к файлу вручную, переименовывать парный тег отдельно — мелкая рутина, которая съедает время. Расширения VS Code её убирают. Три из подборки: 📎 HTML Preview — предпросмотр разметки прямо в редакторе, без переключения на браузер. 📎 Live Server — перезагружает страницу автоматически после правок в HTML, CSS или JavaScript. 📎 CSS Peek — открывает правила CSS из файла HTML через «Перейти к определению». Ещё семь — Prettier, Colorize, Auto Rename Tag и другие — со ссылками на установку в статье. Сохраните, чтобы настроить редактор на выходных. #tools #vscode 👉🏻 Читать статью
836
18
Присваиваете объект через = — и получаете вторую ссылку на тот же объект. Меняете «копию» — меняется оригинал. spread и Objec
Присваиваете объект через = — и получаете вторую ссылку на тот же объект. Меняете «копию» — меняется оригинал. spread и Object.assign() спасают только частично: копируют первый уровень, а вложенные объекты и массивы остаются общими. Долгое время глубокую копию собирали через JSON.parse(JSON.stringify(obj)). Способ рабочий, но теряет данные: Date превращается в строку, функции и undefined исчезают, Map становится пустым объектом. structuredClone() делает полную независимую копию и корректно обрабатывает Date, Map, Set, ArrayBuffer, RegExp и другие встроенные типы. Функции и узлы DOM клонировать не получится — будет DataCloneError. Доступен во всех актуальных браузерах и в Node.js с 17-й версии. В статье — интерактивный пример: нажимаете кнопку и видите, как ведут себя =, spread и structuredClone() на одном объекте. #js #clone 🔴 Читать статью
857
19
В последней строке заголовка остаётся одно слово, и весь блок смотрится неаккуратно. Раньше это правили руками — неразрывные
В последней строке заголовка остаётся одно слово, и весь блок смотрится неаккуратно. Раньше это правили руками — неразрывные пробелы, мягкие переносы. Теперь браузер берёт работу на себя. text-wrap: balance выравнивает строки заголовка по длине — для блоков до шести строк. text-wrap: pretty убирает «висячее» слово в конце параграфа и работает на тексте любой длины. Оба значения — прогрессивное улучшение. balance поддерживается с Chrome 114, Firefox 121 и Safari 17.4; pretty появился позже — в Chrome 117 и Firefox 122. Там, где поддержки нет, текст переносится как раньше. #css #webdev В статье — интерактивный пример: переключаете режимы и сразу видите разницу. 🎥 Читать статью
769
20
Пояснение 👇 :has() — реляционный псевдокласс. Он принимает относительный селектор: тот, что начинается с комбинатора >, +, ~ или пробела (комбинатор потомка по умолчанию). Поэтому :has() смотрит вперёд по дереву — на потомков и следующих соседей. Селектор form:has(input:invalid) подсветит саму форму, если у неё среди потомков есть невалидный <input>. А form input:invalid сработает иначе: выберет сам <input>, а форма останется без выделения. Селектор :contains() использовался в jQuery; в действующей спецификации CSS такого псевдокласса нет. Поддержка :has() стала Baseline Newly Available в декабре 2023 года.
816