Maxim WebDev

Description
Здесь узнаешь, как проходить собеседования Front-End разрабу на СНГ рынке

- Я Senior Front-End, делюсь с тобой личным опытом в IT
- Рассказываю про лайфхаки в прохождении собесов
- Показываю примеры задач с моих job-интервью

My Contact: t.me/max_webdev
Advertising
We recommend to visit
HAYZON
HAYZON
6,053,581 @hayzonn

لا اله الا الله محمد رسول الله

👤 𝐅𝐨𝐮𝐧𝐝𝐞𝐫: @Tg_Syprion
🗓 ᴀᴅᴠᴇʀᴛɪsɪɴɢ: @SEO_Fam
Мои каналы: @mazzafam

Last updated 3 weeks, 1 day ago

Architec.Ton is a ecosystem on the TON chain with non-custodial wallet, swap, apps catalog and launchpad.

Main app: @architec_ton_bot
Our Chat: @architec_ton
EU Channel: @architecton_eu
Twitter: x.com/architec_ton
Support: @architecton_support

Last updated 2 weeks, 2 days ago

Канал для поиска исполнителей для разных задач и организации мини конкурсов

Last updated 1 month ago

3 weeks, 3 days ago
1 month ago
1 month, 2 weeks ago

Недавно мне предложили 10_000 RUB за то, чтобы я другому человеку на алгоритмической секции в Т-Банк надиктовывал в наушник решение live-coding задач. Неплохой доход за 1 час "работы", не правда ли?

Как вы думаете, пополнился ли мой банковский счет на 10k? Конечно НЕТ!

Я всегда топлю за то, чтобы проходить собеседование своими силами. Я могу понять, что к алгоритмам нужно готовиться минимум 1 неделю, что такие задачи редко встречаются в работе Front-End разработчика. Тем не менее, это правила "игры". Многие бигтехи (да и другие айти компании) дают алгоритмические задачи на собеседованиях. Это просто нужно принять!

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

При том базовые навыки решения алгоритмических задач помогут вам писать код с разумной сложностью алгоритма (big O). Навряд ли вашему коллеге во время код-ревью понравится, что вы написали функцию за O(N^2), когда это можно было сделать за O(N) либо O(logN).

Кстати, как раз в моем приватном ТГ канале вышел разбор всех 3-х этапов собеседований в Т-Банк! Там я вам конечно в наушник ничего не надиктую, но зато помогу самим подготовиться к собеседованиям и выйти на оффер!

Вы получите 3 видео (секции по JavaScript, алгоритмам и архитектуре) с записями моих собеседований в Т-Банк на ЗП 3000$. А также 5 видео-разборов live-coding задач на JavaScript и алгоритмы, которые мне давали в Т-Банк. Забирай все это в моем приватном ТГ канале 😉👇

@easy_jobinterivew_frontend_bot

4 months ago

*⚛️ *Допущения алгоритма Reconciliation в React

В продолжение к посту как работает React и его алгоритм Reconciliation хочется рассказать про допущения этого алгоритма. Допущения алгоритма Reconciliation - это те условия, которые нам как разработчикам необходимо выполнять, чтобы React рендерил компоненты оптимизировано и без пролагивания UI.

Для начала давайте поймем, какая сложность алгоритма сравнения деревьев (Virtual DOM) у React? Алгоритм React это делает за O(N), т.е. сложность линейная. В то время как браузерное API сравнивает DOM-деревья за O(N^3).

И чтобы React продолжал выполнять свою работу за O(N), необходимо знать следующее.

*1️⃣ изменился тип узла ==> происходит создание нового дерева.*
Допустим, у нас было такое дерево,

```

Users

```

а после обновления стало таким.

```

Users

```

Как мы видим, тег main изменился на section. При этом контент внутри этого элемента остался без изменений. Но React удалит и заново создаст все узлы, которые начинаются с main и идут глубже, так как у узла изменился type. Был type: 'main', а стал type: 'section'.

2️⃣ изменился key узла ==> происходит создание нового дерева.

key - полезный инструмент в React. Он позволяет оставлять нетронутыми конкретные узлы между рендерами. Вы точно использовали key при работе со списками.

```

{users.map((user) => ( ))}

```

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

Более наглядный пример. В коде ниже у компоненты Content произойдет размонтирование и после монтирование. Так как при изменении checked изменился key.

```

{checked ? : }

```

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

*3️⃣ *изменился атрибут узла ==> обновляется только измененный атрибут, создание нового дерева не происходит

Допустим у нас есть следующий JSX.

```

```

Как мы видим, у div меняется только атрибут data-testid в зависимости от состояния isVisible. В таком случае создание нового дерева и размонтирование всех дочерних узлов div НЕ произойдет. Потому что изменение атрибута не вызывает создание нового дерева.

P.S. Ставь ?, если было полезно! Больше про advanced-темы в React можно найти в закрепленном посте.

We recommend to visit
HAYZON
HAYZON
6,053,581 @hayzonn

لا اله الا الله محمد رسول الله

👤 𝐅𝐨𝐮𝐧𝐝𝐞𝐫: @Tg_Syprion
🗓 ᴀᴅᴠᴇʀᴛɪsɪɴɢ: @SEO_Fam
Мои каналы: @mazzafam

Last updated 3 weeks, 1 day ago

Architec.Ton is a ecosystem on the TON chain with non-custodial wallet, swap, apps catalog and launchpad.

Main app: @architec_ton_bot
Our Chat: @architec_ton
EU Channel: @architecton_eu
Twitter: x.com/architec_ton
Support: @architecton_support

Last updated 2 weeks, 2 days ago

Канал для поиска исполнителей для разных задач и организации мини конкурсов

Last updated 1 month ago