Ayub Begimkulov - уроки по JS
3.11K subscribers
29 photos
212 links
По вопросам и деловым предложениям писать на @ayub_begimkulov
Download Telegram
Всем привет!

Хотел бы дать сегодня один быстрый совет для тех, кто проходит собесы.

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

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

В идеале я бы советовал как-то базово ознакомиться с алгоритмами и структурами данных.

Но если нету времени - посмотрите хотя бы про сортировки.

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

Как-то так!

#devtips #algorithms
23👍14💯1🍓1
Всем привет!

В первую очередь, у нас на канале набралось 2000 подписчиков, за что хочу сказать всем спасибо!

А сегодня хотел бы поделиться основными структурами данных и алгоритмами, которые по моему мнению стоит знать фронтенд разработчику.

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

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

Теперь сам список того, что я считаю нужным:

- Map, Object, Set. Задач тут много на них, но самые частые - sum two, sum three и тд. Да и в работе думаю есть много примеров, где нужны данные структуры.
- O(n) - Не совсем алгоритм или структура данных. Однако важная тема, которую нужно понимать. По крайней мере для того, чтобы писать оптимальный код.
- array - Тут много есть разных и интересных задач, конкретное что-то выделить не могу. Но все из них обычно очень полезные.
- stack - Самая популярная задачу тут - проверка последовательности скобок. Если хотите чуть сложнее - то можно попробовать проверять последовательностью с html-like тегами. Например, <1>asdf</1>asdf<asdf></asdf> - валидно, <1>asdf</1>asdf<asdf> - невалидно.
- queue
- recursion - на рекурсию тоже много интересных задач, прямо выделить какие-то не могу. Также полезно знать, как можно переделать рекурсию на обычный цикл с помощью stack/queue.

Не прямо, чтобы нужные, но очень рекомендую поизучать:

- Heap - Иногда может быть полезен для неординарных задач (используется, кстати, в самом коде React).
- graph/tree/linked list - тут можно изучить прям базу (bfs/dfs и нахождение circular reference). Глубоко я бы уходить не стал, если нет желания конечно.

Мой список примерно такой. Да, указал все почти все, но на самом деле есть и более продвинутые структуры (ring buffer, sorted map и тд.), которые бывают нужны в очень специфичных ситуациях.

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

В плане ресурсов, уже рекомендовал на этом канале вот этот бесплатный курс и плейлисты по алгоритмам и структурам данных от HackerRank.

Как-то так!

#devtips #algorithms
👍766🔥6💯32🍓1