Ayub Begimkulov - уроки по JS @ayub_begimkulov_coding Channel on Telegram

Ayub Begimkulov - уроки по JS

@ayub_begimkulov_coding


По вопросам и деловым предложениям писать на @ayub_begimkulov

Ayub Begimkulov - уроки по JS (Russian)

Вы хотите научиться программировать на JavaScript? Тогда канал Ayub Begimkulov - уроки по JS именно то, что вам нужно! Этот канал предлагает качественные обучающие материалы по JavaScript, которые помогут вам освоить этот популярный язык программирования. Ayub Begimkulov - опытный программист и преподаватель, который делится своими знаниями и опытом с подписчиками канала. Здесь вы найдете уроки разного уровня сложности - от начальных до продвинутых, что позволит как новичкам, так и опытным разработчикам улучшить свои навыки. Не упустите возможность стать экспертом в JavaScript! Присоединяйтесь к каналу Ayub Begimkulov - уроки по JS прямо сейчас и начните свой путь к успешной карьере в разработке программного обеспечения. Для вопросов и деловых предложений пишите на @ayub_begimkulov.

Ayub Begimkulov - уроки по JS

16 Jan, 09:02


[3/3]

3. Понял, что только на дисциплине далеко не уедешь.

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

Вопрос в том, что да, дисциплина помогает вместо ютуба и сладостей выбрать работу и нормальное питание, помогает делать что-то, не сразу видя в этом результат. Да и даже если делать то, что вам реально нравится, будут те неприятные 20% работы, которых никак не избежать.

Но с другой стороны, если вам 100% времени приходится заставлять себя все делать и работать "из-под палки", то долго ли так можно продержаться? Хорошо подумав, я понял, что ни один такой "рывок воли" больше чем 6 месяцев у меня не длился)

Значит дело не только в дисциплине. Если вам постоянно что-то не хочется делать, стоит подумать почему. Возможно просто устали, возможно нет понимания для чего это нужно, а возможно просто нужно по другому взглянуть на ситуацию).

В моем случае я понял, что примитивное мышление "просто забей и делай" не особо показывает результаты...

4. Более просто стал относиться к контенту, и в целом понял, что нет ничего страшного, если в видео где-то что-то будет не идеально. Раньше перед выкладкой каждого ролика было волнение, вдруг там что-то не так сказал, вдруг ошибся, вдруг сам не так понял тему.

Но с другой стороны пришло осознание (тут коучинг тоже большую роль сыграл), что ни один человек, за которым я слежу долгое количество времени, не был "идеален". Да и в целом мне нравится послушать чье-то личное мнение из его опыта, нежели идеально поданную и не имеющую ни одной оговорки информацию.

Это не значит, что планирую понижать планку качества контента. Скорее просто меньше париться о вещах, которые не имеют значения для 99% аудитории. В худшем случае всегда можно исправить себя в комментариях или следующем ролике/посте.

———

Если посидеть и подумать, то думаю можно еще пару пунктов добавить, но думаю и так уже вышло сильно больше, чем я себе представлял)

В личном плане из успехов за прошлый год могу выделить такие моменты:

- Организовал себе рабочее место, на которым приятно работать. Пришлось много чего перепробовать, но оно точно того стоило.
- Смог пересесть на сплит клавиатуру. Долгое время откладывал это, пару месяцев назад собрался силами и ни разу не пожалел.
- Удалил все зубы мудрости (росли горизонтально). Лично у меня все прошло супер легко, первые 3 дня только есть было сложно.
- Наконец начал стабильно ходить в зал. А то после переезда из РФ 1.5 года занимался с переменным успехом.

Какие дальше планы?

В плане целей ничего не поменялось. Хочется дальше развивать ютуб/телеграмм каналы и менторство. Результаты 2024 года перебить, кажется, не должно быть так сложно.

По контенту есть много интересных идей. Хочу также продолжить регулярно проводить стримы. Пробовать на них делать интересные проекты на разных технологиях. Надеюсь в скором времени уже все увидите)

Ну и из самого главного, планирую в этом году сделать акцент не на большие цифры, а стабильность. Хочется выстроить график / процессы таким образом, чтобы можно было стабильно прогрессировать по каждому из аспектов жизни. Для себя я понял, что это работает намного лучше, чем "рывки воли" на 6-8 месяцев и потом спад продуктивности.

Ayub Begimkulov - уроки по JS

16 Jan, 09:02


[2/3]

2. Полностью поменялось отношение к работе и отдыху.

Дам небольшую предысторию. Где-то последний год было ощущение того, будто спадает эффективность. Работаю также, делаю меньше, тренируюсь менее интенсивно, сплю больше, чувствую себя хуже, желания что-то делать сильно меньше. Питание +/- по бжу сбалансировано, витамины всегда пил. Анализы сдал - там тоже все нормально.

И тут как раз в один момент времени мне сразу человека 3-4 сказали о том, что у меня перегруз. Как же так? Не так уж давно я делал сильно больше, спал меньше и чувствовал себя в разы лучше. По началу не хотелось даже брать в счет такую возможность. Но вариантов других особо и не было, поэтому решил полностью дать себе волю и отдыхать сколько захочется).

Первые полторы-две недели спал по 11-12 часов. Причем по несколько заходов. Ночью 9-10, днем еще 2-3 часа. Работал, может, где-то 2 часа, в зал тоже не ходил.

Затем с каждым днем количество часов сна уменьшалось. Самочувствие тоже становилось все лучше и лучше. Начало появляться желание поработать и приходить идеи для контента.

В какой-то момент начал сам просыпаться после 6-7 часов сна. Тогда уже начал потихоньку возвращать нагрузку. Сейчас вернулся на комфортный уровень. В зал хожу 2 раза, убрал все созвоны с выходных (кроме 1). А самое главное запомнил, какое состояние является нормой, а какое нет). И теперь понимаю разницу между тем, когда лень, а когда реально устал и надо отдохнуть.

Так вот, возвращаясь к нашей теме. Каким образом я дошел до такого состояния?

Основная проблема заключалась в том, что изначально режим и нагрузка были выстроены таким образом, что их нельзя было поддерживать долгое время. После ухода с работы почти каждые выходные работал, если не приходилось куда-то уезжать. Суббота стабильно была забита созвонами. В вс тоже часто что-то делал.

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

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

Благо в нужный момент сразу несколько людей обратило внимание. Иначе сам не знаю сколько еще так проходил бы...

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

Ayub Begimkulov - уроки по JS

16 Jan, 09:01


[1/3]

Итоги года и дальнейшие планы

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

Если говорить про цифры:

- +1195 подписчиков, 148к просмотров на YouTube. Выпустил всего 3 видео и провел 6 стримов.
- 19 постов в телеграм, +78 подписчиков.

Тут, к сожалению, больше ничего и не добавить) Если не выпускать контент - то и роста понятное дело не будет. В этом плане кстати YouTube приятно удивил, все равно продолжает продвигать некоторые видео.

В плане дохода пока все также не смог перебить свой рекорд в найме.

Но тем ни менее нет ощущения того, что год прошел зря и я просто потерял время.

Если говорить про прогресс, то основной рост, я бы сказал, был в переосмыслении и смене взгляда на многие моменты. Большинство из этого, казалось бы, очевидно. Но пока сам на грабли не наступил - не понял)

Вот некоторые из них:

1. Наконец-то осознал то, что не стоит сидеть и пытаться разобраться во всем самому. Даже если все кажется просто и очевидно. Как минимум пообщавшись с человеком, который прошел подобный путь, вы сможете убедиться, что были правы. А скорее всего, как в моем случае, поймете, что ваше представление о реальности было совсем искаженным.

В этом году таких моментов было не мало. И тут еще повезло, что в какой-то момент находился человек в кругу общения, который мог бы дать нужный совет (всем причастным большое спасибо!).

Причем самое смешное, что многие проблемы, в которых я хотел разобраться сам и думал, что знаю, что нужно делать - в итоге сам и не решил. Просто в какой-то момент кто-то со стороны замечал, что я явно делаю что-то не то).

Для себя я на будущее понял, что вне зависимости от ситуации есть смысл потратить деньги и пообщаться с экспертом по теме. Касается это не только историй по типу развития карьеры и личного дела, но и более "житейских" случаев (тренировки, подбор рациона, совет при покупке чего-то дорогого и тд.).

А, ну и многие пункты ниже я тоже осознал не сам)))

Ayub Begimkulov - уроки по JS

06 Jan, 12:34


Начинаем!

Ayub Begimkulov - уроки по JS

06 Jan, 11:20


Давайте продолжим сегодня разрабатывать наше приложение для замера скорости печати. Кто может подключайтесь на стрим в 15:30 по мск.

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

На данном стриме планирую:
- До конца разобраться с отображением текста. Сделать правильный перенос слов на маленьких экранах.
- Добавить каретку.
- Попробовать сделать скрипт, который бы парсил репозиторий и на его основе создавал заготовленные примеры кода для тестов.

Ну и как всегда буду отвечать на ваши вопросы в чате)

https://www.youtube.com/live/Qve3DgHnIYk

Ayub Begimkulov - уроки по JS

25 Dec, 15:49


Пару месяцев назад в очередной раз столкнулся с проблемой при попытке использовать ts-node (выдавал ERR_UNKNOWN_FILE_EXTENSION, хотя импортировал только TS файлы).

Точные детали ошибки не помню, но проблема была в том, что ts-node с не мог нормально подгрузить ESM модули при использовании ноды версии 20+. При откате на 18ю версию все работало.

В процессе поиска решения проблемы самым нормальным вариантом оказалось просто съехать с ts-node на tsx (хотя возможно уже проблему решили).

Но хочу сказать, что инструмент приятно удивил. За время работы с ним вообще никаких проблем пока не было. Работает быстро. Полностью имитирует интерфейс команды node + имеет watch режим (так что от nodemon тоже можно отказываться).

Из минусов, нет проверки типов. Связанно с тем, что под капотом используется esbuild для компиляции кода (поэтому и проблем с esm/cjs модулями нет). Но для меня это плюс, так как использую его только в дев режиме или для быстрого запуска какого-то скрипта. А если о чем-то забыл — то проверка в CI уже выручает.

В общем, всем советую попробовать)

https://tsx.is/

Ayub Begimkulov - уроки по JS

21 Dec, 12:28


Начинаем через пару минут!

Ayub Begimkulov - уроки по JS

21 Dec, 07:44


Планирую сегодня в 15:30 по мск провести стрим, где мы продолжим разрабатывать наш проект для замера скорости печати.

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

На данном стриме планирую:
- Доделать подсчет слов для кода по новой схеме с AST
- Добавить каретку и прочие мелочи для удобства
- Попробовать сделать скрипт, который бы парсил репозиторий и на его основе создавал заготовленные примеры кода для тестов

У кого есть время — заходите. Буду отвечать на все вопросы в чате)

https://www.youtube.com/live/y8keVDARJ1M

Ayub Begimkulov - уроки по JS

14 Dec, 12:28


Начинаем через пару минут)

Ayub Begimkulov - уроки по JS

14 Dec, 07:20


Друзья, хотел сообщить о том, что планирую сегодня в 15:30 по мск провести стрим. Продолжим писать проект для замера скорости печати.

В прошлый раз провели небольшой рефакторинг и добавили окно настроек. Сегодня уже займемся полноценной поддержкой кода.

У кого есть время — подключайтесь. Отвечу на все ваши вопросы в чате)

https://www.youtube.com/live/muZIxdTIYFM

Ayub Begimkulov - уроки по JS

10 Dec, 14:40


Если вы уже посмотрели последнее видео на канале, то для вас это будет напоминанием, для всех остальных — новостью.

В последнее время большую часть моего времени занимало менторство. Ко мне приходили с разными запросами: улучшить свои навыки, закрыть пробелы, устроиться на более высокую и/или высокооплачиваемую позицию и тд. Раннее я не объявлял об этом на канале, в основном люди приходили сами, а затем, добившись результатов, советовали своим знакомым.

На данный момент я добираю людей, так как есть несколько свободных мест. Вам это может пригодиться если вы хотите:
- Выявить свои пробелы и устранить их
- Увеличить техническую экспертизу как в конкретных технологиях, так и в целом во frontend'е
- Разобрать сложные рабочие кейсы
- Подготовиться к собеседованию
- Повысить свой доход

Например, одним из наиболее популярных запросов является смена места работы со всеми сопутствующими плюшками (увеличение заработка, повышение в должности, переход в более престижную организацию).
В таком случае принцип работы выглядит примерно так:
- Мы созваниваемся и я проверяю текущий технический уровень, даю по нему обратную связь
- Далее формулируем цели, составляем исходя из них личный roadmap и вырабатываем комфортную стратегию обучения

Как записаться на менторство?
1. Заполняете форму (максимально подробно, это поможет понять мне смогу ли я вам помочь в конкретно вашей ситуации)
2. Назначаем онлайн встречу, где вы подробно сможете узнать о формате менторства и задать интересующие вас вопросы
3. Начинаем совместную работу для достижения ваших целей

Заполнить форму
Почитать отзывы учеников — @ayub_begimkulov_reviews

Ayub Begimkulov - уроки по JS

09 Dec, 09:19


Пока готовил видос, заметил, что во floating-ui никогда на прямую не ссылаются на document и window.

То есть вместо того, чтобы ссылаться на глобальные переменные, они делают что-то такое:


const elDoc = element.ownerDocument
const elWindow = elDoc.defaultView


Причем встречается это не только в floating-ui, многие популярные библиотеки работающие с dom используют подобный подход. Например: reach, mui, react.

Раньше я как-то не обращал на это внимание, но в этот раз задумался и о данном вопросе. Как оказалось, нужно это для правильной работы компонентов внутри iframe или каких-то других не стандартных сред (девтулзы, расширения и тд).

Но! Тут возникает другая проблема. Каким образом элемент из iframe'а попадет в код, который запускается на нашей странице? Ведь скрипт внутри iframe'а при ссылке на document или window будет ссылаться на нужные объекты, которые как раз относятся к его среде.

window.parent.postMessage тут тоже не сработает, так как DOM элементы не сериализуемы. Этот вариант тоже отпадает...

Как оказалось подобные кейсы довольно редкие. И чаще всего связаны с iframe'ами, которые создаются на той же странице:


const iframe = document.createElement('iframe');
document.body.appendChild(iframe);

// создаем элемент в среде основной страницы
const iframeContent = document.createElement('div');
iframeContent.innerHTML = parseMD(mdContent);

// после append'а у элемента поменяется ownerDocument
iframe.contentDocument.body.appendChild(iframeContent);

console.log(iframeContent.ownerDocument === iframe.contentDocument) // true
console.log(iframeContent.ownerDocument === document) // false


Из случаев, где это может быть полезно - в голову приходят песочницы, где запускается код / разметка юзера. В таком случае будет изоляция глобальных переменных и стилей от общего приложения. Но какие-то тултипы/попапы из основного приложения в теории могут подвязываться на контент внутри.

В целом представить ситуацию могу, но сам не сталкивался, поэтому выглядит очень странно. Но, раз в коде кейсы эти покрывают, значит у кого-то да появляется такая нужда)

Ayub Begimkulov - уроки по JS

06 Dec, 11:51


Наконец дошли руки до того, чтобы снять видео на канал. Тема — отслеживание элементов в документе. Разберем, каким образом библиотеки понимают, что элемент сменил свою позицию/размер.

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

P.S. Кстати, это ровно 100й видос на канале)

https://youtu.be/rbLGis6jnRQ

Ayub Begimkulov - уроки по JS

03 Dec, 12:33


У кого есть время подключайтесь на стрим сегодня в 16:00 по мск. Будем продолжать писать наше приложение для замера скорости печати. В прошлый раз закрыли функционал с обычными словами. Теперь будем пробовать добавить поддержку кода.

Ну и вопросы в чате тоже буду разбирать)

https://www.youtube.com/live/MdI8-E1_RTQ

Ayub Begimkulov - уроки по JS

28 Nov, 05:53


Недавно обновил браузер и заметил, что теперь chrome devtools выделяет элементы со скроллом.

Оказалось, что фичу добавили в 130 версии хрома (вышла 15 октября). Выделяет элементы с overflow: auto/scroll, у которых контент больше размером, чем сам элемент.

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

https://developer.chrome.com/blog/new-in-devtools-130#scroll-badge

Ayub Begimkulov - уроки по JS

26 Nov, 12:32


Друзья, кто может подключайтесь в 16:00 по мск на стрим. Будем продолжать писать приложение для замера скорости печати. Ну и на вопросы в чате тоже отвечу)

https://youtube.com/live/Aps_xswcNyI?feature=share

Ayub Begimkulov - уроки по JS

19 Nov, 12:36


Спонтанно решил, что начну писать проект для замера скорости печати в лайве. Самому было интересно сделать (с уклоном на код) + для видосов по тестам нужен какой-то проект, чтобы на реалистичном примере все показать.

У кого есть время подключайтесь в 16:00 по мск на стрим. Начну писать проект и буду отвечать на ваши вопросы)

https://youtube.com/live/HKY7-7fLRKg?feature=share

Ayub Begimkulov - уроки по JS

19 Aug, 10:54


Думаю уже все слышали новости о замедлениях и блокировке ютуба.

Получал много вопросов о том, какие дальше планы. Если вкратце — то пока останавливать выпуск контента не планирую. Хоть по началу все эти новости очень демотивировали.

Однако на данный момент у меня нет четкого понимания о состоянии замедлений и на какую площадку двинулась аудитория ютуба. Поэтому хотелось бы узнать немного информации о текущем состоянии дел.

Во-первых, кто на данный момент находится на территории РФ, не подскажите, открывается ли у вас ютуб? Если да, то на сколько реально что-то смотреть? И, пожалуйста, отпишите в комментариях, где территориально вы находитесь? Так как со слов разных людей кажется, что замедления происходят не во всех регионах (хотя может уже ситуация поменялась).

Также те, у кого ничего не работает, стали ли вы поднимать VPN? Если да — то используете ли вы его всегда? Даже с телефона, когда находитесь в общественном транспорте? Или же только дома?

Ну и те, кто не пользуется VPN (есть вообще такие?), на какую площадку вы перешли? Комфортно ли вам смотреть там контент?

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

Ayub Begimkulov - уроки по JS

17 Jul, 16:50


Всем привет!

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

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

Ну и также лайки/комментарии никогда лишними не будут) Говорят ютуб на это обращает внимание.

https://youtu.be/zu7hEgeCmr4

Ayub Begimkulov - уроки по JS

23 Jun, 10:16


3) Наверное если читали какие-то статьи по теме — то могли слышать, что скрипты ждут загрузки CSS, прежде чем начать свой запуск. Связано с тем, что JS может запрашивать каике-то стили или изменять их.

В целом поведение казалось логичным, но у меня все это как-то не вязалось с примерами, когда в самом верху head'а есть скрипт с alert'ом и при его запуске в DOM ничего нет.

Решил это тоже заодно протестить. Как оказалось, если скрипт у нас блокирующий — то он будет ждать только тот CSS, что расположен выше. Async скрипты вообще никого не ждут и запускаются сразу, как пришли. Defer ждет подгрузки всего контента страницы.

В целом поведение логичное, но пока не проверил — в голове был какой-то диссонанс по этому вопросу.

Выводы

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

Если вы тоже хотите сформировать для себя полноценную картину и протестировать как все работает, то можете воспользоваться моим тестовым примером. Надо просто в html создать нужное вам количество скриптов/стилей (через /js/{name} и /css/{name}) и прописать им нужный timeout.

Ayub Begimkulov - уроки по JS

23 Jun, 10:16


Critical rendering path

Решил я на этой неделе чуть больше погрузиться в тему critical rendering path (по сути порядок действий, по которому HTML с сервера превращается в пиксели на экране) и подготовить наглядный пример, на котором можно было бы объяснять эту тему.

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

В целом, если погуглить данную тему, то инфа будет примерно такая:
- Получаем HTML, начинаем парсинг, инкрементально строим DOM
- Если встретили CSS - делаем запрос на загрузку
- Если встретили JS - делаем запрос на загрузку. Если скрипт блокирующий (без async/defer), то останавливаем всю работу, пока не загрузится скрипт.
- Как получили весь CSS - строим CSSOM
- Запускаем JS
- Строим render tree
- Дальше уже Layout, Paint, Composite и отображение финального результата

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

Забегая вперед скажу, что во время поиска объяснений несостыковкам между моим пониманием вопроса и реальностью, нашел статью от гугла, где все подробно рассказывается и объясняется. Всем рекомендую)

Дальше уже буду говорить о тех моментах, которые были для меня открытием:

1) Parser-blocking скрипты (без async/defer) на самом деле не создают лесенку запросов. Да, как только браузер их видит, дальнейшее построение DOM останавливается и соответственно весь процесс подготовки документа к рендерингу. Но, загрузка ресурсов после блокирующего скрипта все равно произойдет с помощью отдельного парсера (проверил этот момент в Chrome и Safari, и там и там одинаковое поведение).

А вот отрывок из статьи на эту тему:

Blocking the parser can have a huge performance cost—much more than just blocking rendering. For this reason, browsers will try to reduce this cost by using a secondary HTML parser known as the preload scanner to download upcoming resources while the primary HTML parser is blocked. While not as good as actually parsing the HTML, it does at least allow the networking functions in the browser to work ahead of the blocked parser, meaning it will be less likely to be blocked again in the future.


2) Хоть CSS и считается render-blocking ресурсом, но в зависимости от браузера он может блокировать рендеринг не всей страницы, а только контента, который находится под ним. Проверил Chrome — в нем как раз все работает именно так (в статье говорят, что у Firefox идентичное поведение). В Safari ждет пока все загрузится, прежде чем что-то показывать.


Render-blocking resources, like CSS, used to block all rendering of the page when they were discovered. This means that whether some CSS is render-blocking or not depends on whether the browser has discovered it. Some browsers (Firefox initially, and now also Chrome) only block rendering of content below the render-blocking resource. 


То же самое касается и скриптов без async/defer. Chrome отрендерит тот контент, что у него есть до момента, когда он встретил блокирующий скрипт.


Parser-blocking resources are effectively render-blocking as well. Since the parser can't continue past a parsing-blocking resource until it has been fully processed, it can't access and render the content after it. The browser can render any HTML received so far while it waits, but where the critical rendering path is concerned, any parser-blocking resources in the <head> effectively mean that all page content is blocked from being rendered.


В целом не думаю, что кто-то ставит стили вне head'а, поэтому в большинстве случаев это будет не заметно. Но поведение скриптов меня удивило. То есть большие скрипты внизу body (будь это defer или вообще блокирующие) не будут мешать Chrome/FF отрендерить весь контент страницы.

Ayub Begimkulov - уроки по JS

10 Jun, 09:45


Друзья, планирую снимать серию видео по тестированию. Составил уже базовый план того, что хочу разобрать. Но наверняка что-то упустил. Накидайте в комменты, что хотелось бы вам узнать по этой теме.

Ayub Begimkulov - уроки по JS

23 May, 15:18


Всем привет!

Ну что ж… Давно у нас ничего не было. Думаю уже пора входить в колею и продолжать выпускать контент)

Получал много вопросов о том, почему не было видео, чем я занимался и куда вообще пропал. Обо всем этом расскажу в сегодняшнем видео.

P.S. Как ни странно, хотя по началу было вообще не привычно включать камеру и говорить в объектив, в целом съемка прошла очень гладко. Почти ничего не пришлось вырезать, думал хуже будет)))

https://youtu.be/6B0P4rdt8tU

Ayub Begimkulov - уроки по JS

09 Feb, 13:42


Последние полгода часто слышу, что люди, которые раньше без проблем находили работу — не могут даже на собесы сходить.

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

Чаще всего, когда начинаешь спрашивать у человека детали — то всегда слышу примерно одно и то же: “Раньше на хх откроешь резюме, сразу пишет куча фирм, а сейчас сам на все откликаюсь и везде отказы”.

Собственно, если вкратце — то никто сейчас не может чисто на HH работу найти. По крайней мере никто из моего круга общения. Обычно все пару приглашений от туда получают, да и то в странные места)

Я сам тоже в ноябре проходил собесы, хотел стариной встряхнуть + разведать, что спрашивают на архитектурных собесах. И ХХ мне помог только на один собес попасть. Хотя у меня 5+ лет опыта и Яндекс есть в резюме) Да и в целом описано там все не плохо — достижения по каждой работе прописаны с показателями.

Если честно, я с рекрутерами не общался (если кто есть — буду рад услышать ваше мнение), но мне кажется, что проблема в фильтрах, которых раньше не было (там даже на вакансиях процент метча показывается).

Мне много больших компаний меньше, чем за 1 час отказывали, хотя я знаю, что туда на собес зовут людей с опытом намного меньше. Да и не кажется, что там мониторят 24/7 все отклики.

Очевидный вопрос тут возникает — а что же делать в такой ситуации?

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

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

Тут главное полотно текста не писать, коротко и ясно высказаться. Я что-то такое писал:


Добрый день! Меня Айюб зовут.

Нашел ваш контакт на просторах интернета. Была интересна открывая вакансия на фронтенд разработчика [здесь ссылка на вакансию, лучше брать с сайта, чем с хх, чтобы странно не выглядело]. Решил напрямую написать.

Если она еще актуальна — буду рад обсудить детали.

[резюме]


В плане того, как найти контакты рекрутеров — тут тоже все не так сложно. Либо через друзей/знакомых узнать, которые когда-то проходили собес в нужную вам фирму. Либо на linkedin ищете профили рекрутеров в компании и там часто бывает телеграмм приложен в описании. Если нет телеграмма — то можно прямо в linkedin написать, но тогда профиль должен быть нормально заполнен.

А так, друзья еще говорят, что Хабр и getmatch сейчас более эффективные в плане поиска. Я сам просто всегда ленился там зарегистрироваться, поэтому ничего посоветовать не могу. Но только на HH сейчас искать точно не вариант.

Ayub Begimkulov - уроки по JS

08 Jan, 14:56


Итоги прошлого года

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

Для начала немного статистики за прошедший год:
- 49 новых видео, 9 трансляций, 526 598 просмотров, более 6900 новых подписчиков и более 60 тысяч просмотренных часов на YouTube.
- Более 2000 тысяч новых подписчиков в телеграмме и более 300 постов (пока не разобрался как адекватно смотреть аналитику, поэтому цифры не совсем точные).
- ~35 собесов и ~180 сессий менторинга (статистика из календаря, поэтому цифры могут быть не совсем точные).
- 10 розыгрышей и 27 победителей. Из которых 17 выбрали консультацию, 10 — деньги (некоторые кстати после выбора консультации так и не нашли время, чтобы созвониться. Если что — предложение еще актуально).

Да и в целом год был очень плотным. Сначала ушел из Яндекса в зарубежный стартап, потом попал там под сокращения, начал заниматься фулл тайм контентом (2 видоса в неделю + 1 пост в день) + менторством и потом “пропал” на 3 месяца (об этом расскажу чуть ниже).

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

Когда начинаю вспоминать январь прошлого года, чувство такое, будто это было года 2-3 назад. Да и себя и свои действия в тот момент вспоминаю с большим “кринжом”, что для меня тоже не малый показатель прогресса).

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

Что делал последние 3 месяца?

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

Вот примерный список того, что я делал:
- Работал над затянувшимся фриланс проектом, который я недооценил. Планируем в этом месяце уже завершать все.
- Добрал людей на менторинг и отлаживал схему обучения (Вот тут прям очень много чего нового для себя узнал, буду делиться в будущих постах/видео).
- Водил нескольких из учеников по собесам, помогал с общением, реферами, разборами ошибок. Один из них смог устроиться в Яндекс!
- Налаживал свой режим, снова начал регулярно тренироваться.
- Отдыхал от постоянных мыслей о том, какой написать пост и на какую тему записать видео).

Ну и конечно же была куча личных дел, которые вряд ли будут кому-то интересны.

Планы на 2024 год

Так как большинство подвешенных дел уже решилось, планирую потихоньку входить в ритм и начинать снимать контент и писать посты. Пока никаких обещаний по частоте давать не буду, так как хочется всё делать в спокойном режиме и посмотреть, какой темп будет комфортен.

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

Ayub Begimkulov - уроки по JS

30 Dec, 12:07


Live stream finished (1 hour)

Ayub Begimkulov - уроки по JS

30 Dec, 11:00


Live stream scheduled for

Ayub Begimkulov - уроки по JS

30 Dec, 10:59


Live stream started

Ayub Begimkulov - уроки по JS

30 Dec, 10:27


Друзья, всем привет!

Давно уже не было новостей от меня, а тут еще и год заканчивается). Давайте в 14:00 по Москве проведем небольшой лайв в телеграмм.

Подведем итоги года. Также расскажу, где был и чем занимался последние 3 месяца, и какие планы по контенту на след год. Ну и на вопросы ваши постараюсь ответить, если хватит времени.

Все кто может — заходите, буду рад видеть!

Ayub Begimkulov - уроки по JS

18 Oct, 12:42


Под прошлым постом один из подписчиков не мог понять, почему у него происходит TS ошибка при присвоении свойства в объект, значения которого содержат разные типы данных (ссылка на playground с примером ниже).

Расписал подробно решение и понял, что может и другим будет полезно (так как сам частенько сталкиваюсь с подобными ошибками). Да и по опыту помню, что разборы различных ошибок на stackoverflow/github были очень полезны для понимания того, как TS проверяет код.

https://tsplay.dev/WPM9Lw

Ayub Begimkulov - уроки по JS

10 Oct, 16:13


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

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

Посты иногда приходилось писать на коленке, не успев нормально все перепроверить. Да и некоторые из них писались просто, чтобы что-то написать. А изначально идея была делиться каким-то находками/инсайтами из своего опыта.

В итоге смысл такого графика теряется. Идёт просто погоня за цифрами, до которых никому особо и нет дела (кроме меня разве что). Не сказать, что жалею о том, что поставил себе такой челлендж. Дедлайны научили совсем по другому подходить к сбору идей и проработке контента. Но на данный момент кажется, что они несут больше вреда, нежели пользы.

Поэтому хочу (как минимум на пока) отменить ежедневные посты, 2 видео в неделю и, соответственно, розыгрыши. Забрасывать канал не собираюсь, контент будет выходить по мере возможности и свободного времени. Интересно посмотреть, что из этого получится.

Ayub Begimkulov - уроки по JS

06 Oct, 15:47


Для тех кто не видел, вышла бета TS версии 5.3.

Из основных изменений:
- Поддержка import attributes для обычных и type импортов.
- Улучшенное «сужение». Больше всего порадовал кейс со switch(true).
- Более точные проверки вызова методов через super.

https://devblogs.microsoft.com/typescript/announcing-typescript-5-3-beta/

Ayub Begimkulov - уроки по JS

01 Oct, 18:45


Live stream finished (48 minutes)

Ayub Begimkulov - уроки по JS

01 Oct, 17:57


Заходите на лайв, буду рад пообщаться и ответить на ваши вопросы.

Ayub Begimkulov - уроки по JS

01 Oct, 17:57


Live stream started

Ayub Begimkulov - уроки по JS

30 Sep, 19:29


Live stream finished (1 hour)