ASISAKOV_CHANNEL Telegram 141
АЛГОРИТМЫ И КОДИНГ
Часть 2

Начало выше ⬆️


3. Попытка предложения различных решений.

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

4. Написание кода

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

5. Прогон кода в голове и поиск багов

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

Описанный пайплайн в целом покрывает алгоритмическую секцию. Но в названии поста стоит “Алгоритмы и кодинг”. Здесь все просто - обычно это все проверяется вместе и интервьюер одновременно смотрит, как человек пишет код, какие конструкции в коде он использует, знает ли сложность выполнения встроенных функций. Бывают моменты, когда кодинг также проверяется с просьбой решить на ходу ML задачку и тут оценивается, насколько человек сходу может написать код, который не сломается и решит задачу. Не хочу выделять это в отдельную секцию, поэтому решил добавить именно сюда.

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

Если у вас есть, что дополнить, пишите в комментарии!

Полезные ссылки:

1. Роадмап (150 задач) по задачам и теории от NeetCode
2. Видео про то, как на задачах по коду проверяется синьорность человека + пример, как человек решил easy задачу как staff-engineer
3. Ссылка на чатик, где ребята вместе нарешивают задачи на LeetCode
4. Пост от Ромы Васильева с парой интересных ссылок
5. План по подготовке к алгоритмическим интервью от Жени Козлова
6. Краткая методичка с описанием алгоритмов и ссылками на объяснение
7. Методика зарешивания литкода от Юры Кашницкого
8. Шпаргалка для алгособеса
9. Ссылочки по подготовке к алгоритмам от Леши Курицына
10. Пост в канале Поступашек про то, как заботать алгоритмы для карьеры
11. Интерактивная книга с выжимками с выжимками по алгоритмам (нашел у Артема Рыблова)
12. Хэндбук от Яндекса с основами алгоритмов
13. Огромная библиотека алгоритмов на github
14. Полезные ссылочки для подготовки от Ибрагима
15. Сайт с объяснением алгоритмов
16. Канал Паши Маврина с лекциями по алгоритмам и структурам данных
17. Марафон по easy и medium задачам на LeetCode от Глеба Михайлова

P.S. Надеюсь я не пережестил с источниками. Всем easy-задач на собеседованиях!

#interview #algo
🔥6👍43



tgoop.com/asisakov_channel/141
Create:
Last Update:

АЛГОРИТМЫ И КОДИНГ
Часть 2

Начало выше ⬆️


3. Попытка предложения различных решений.

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

4. Написание кода

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

5. Прогон кода в голове и поиск багов

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

Описанный пайплайн в целом покрывает алгоритмическую секцию. Но в названии поста стоит “Алгоритмы и кодинг”. Здесь все просто - обычно это все проверяется вместе и интервьюер одновременно смотрит, как человек пишет код, какие конструкции в коде он использует, знает ли сложность выполнения встроенных функций. Бывают моменты, когда кодинг также проверяется с просьбой решить на ходу ML задачку и тут оценивается, насколько человек сходу может написать код, который не сломается и решит задачу. Не хочу выделять это в отдельную секцию, поэтому решил добавить именно сюда.

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

Если у вас есть, что дополнить, пишите в комментарии!

Полезные ссылки:

1. Роадмап (150 задач) по задачам и теории от NeetCode
2. Видео про то, как на задачах по коду проверяется синьорность человека + пример, как человек решил easy задачу как staff-engineer
3. Ссылка на чатик, где ребята вместе нарешивают задачи на LeetCode
4. Пост от Ромы Васильева с парой интересных ссылок
5. План по подготовке к алгоритмическим интервью от Жени Козлова
6. Краткая методичка с описанием алгоритмов и ссылками на объяснение
7. Методика зарешивания литкода от Юры Кашницкого
8. Шпаргалка для алгособеса
9. Ссылочки по подготовке к алгоритмам от Леши Курицына
10. Пост в канале Поступашек про то, как заботать алгоритмы для карьеры
11. Интерактивная книга с выжимками с выжимками по алгоритмам (нашел у Артема Рыблова)
12. Хэндбук от Яндекса с основами алгоритмов
13. Огромная библиотека алгоритмов на github
14. Полезные ссылочки для подготовки от Ибрагима
15. Сайт с объяснением алгоритмов
16. Канал Паши Маврина с лекциями по алгоритмам и структурам данных
17. Марафон по easy и medium задачам на LeetCode от Глеба Михайлова

P.S. Надеюсь я не пережестил с источниками. Всем easy-задач на собеседованиях!

#interview #algo

BY asisakov


Share with your friend now:
tgoop.com/asisakov_channel/141

View MORE
Open in Telegram


Telegram News

Date: |

Telegram channels enable users to broadcast messages to multiple users simultaneously. Like on social media, users need to subscribe to your channel to get access to your content published by one or more administrators. 3How to create a Telegram channel? Healing through screaming therapy With Bitcoin down 30% in the past week, some crypto traders have taken to Telegram to “voice” their feelings. Although some crypto traders have moved toward screaming as a coping mechanism, several mental health experts call this therapy a pseudoscience. The crypto community finds its way to engage in one or the other way and share its feelings with other fellow members.
from us


Telegram asisakov
FROM American