💻 Coding interviews in a nutshell
7.15K subscribers
24 photos
214 links
Разбор задач для собеседований, по одной каждую неделю.

У микрофона Виктор @vitkarpov. ex-Amazon, ex-Yandex
加入频道
Как вообще можно попасть на собеседование в Microsoft, Amazon, Google или Facebook?

Хочу поделиться лайфхаком, который работал для меня.

Во-первых, оформляем резюме на LinkedIn. Уже на этом этапе вы можете попасть на радары рекрутеров, в какой-то момент астрологи объявляют месяц найма и рекрутеры особенно активизируются.

Ну а что делать если никто не пишет, не ждать же у моря погоды, верно? И вот он лайфхак. Находим на LinkedIn людей, которые работают в нужных вам компаниях и пересекаются с вами каким-то образом: скажем бывшие коллеги, или учились в одном вузе, ну или наконец просто тоже русскоговорящие — тут главное, чтобы было с чего начать разговор.

В моем случае я нашёл бывших коллег из Яндекса, с которыми лично не знаком, но все равно было легко добавиться в друзья, поспрашивать как там работается, и, в итоге, попросить рекомендацию (рефер). Это значит, что сотрудник компании рекомендует вас рекрутеру напрямую, передавая резюме. Правда, это никак не влияет на сами собеседования далее. Обычно люди охотно делятся реферами, в случае вашего найма — им премия 🙂

Через несколько дней рекрутер вам напишет, в том числе и с отказом, если ваше резюме не подходит, т.е. в любом случае вы получаете обратную связь. Отправляя заявку через форму на сайте, обычно ответа не дождаться.
Happy Monday! 👋

На этой неделе ищем поддеревья — https://bit.ly/3bJPDKy
Рассказываю про сериализацию, подробнее про сложение строк (спойлер: это не O(1)) и рекурсивный вариант решения.

PS. У канала есть чат, если хочется обсудить прочитанное и не только (работает кнопка "discuss").
Как правильно читать Cracking the Coding Interview

Недавно услышал следующее: «я прочитал весь Cracking the Coding Interview год назад и сейчас уже ничего не помню, открыл LeetCode на днях и не смог решить ни одной задачки». Не правильно вы читаете, дядя Фёдор.

В какой-то момент, для себя, я выработал следующий алгоритм «как правильно читать Cracking the Coding Interview» и он же подходит и для подготовки на LeetCode:

- сперва попробую решить сам;
- если совсем ничего не придумывается через полчаса — смотрю подсказку;
- если не получается ещё через полчаса — смотрю решение.

Есть некоторые общие принципы, техники, структуры данных, и надо научиться определять «что будет работать в данной задаче». Понимание приходит после некоторых мучений над задачей, пока наконец не наступает «aha moment».

По-моему, прогресс на втором шаге: когда уже полчаса помучился, получил инсайт и догадался до полного решения сам.

Если решаешь сразу сам, то задачки слишком простые — планку надо поднимать. Если приходится смотреть чужой код — планку надо опускать, рано для таких задач. Как я уже сказал, по-моему, прогресс где-то между.

А вы как «читаете LeetCode», помните свои aha-моменты? 🙂
Happy Monday! 👋
Задача этой недели — развернуть слова в строке (https://bit.ly/2z4w6py), без дополнительной памяти.
Разберём in-place решение и какие нужно сделать допущения для решения на JavaScript.
Happy Monday! 👋
На этой неделе будем искать пропущенные числа в массиве — https://bit.ly/2zog22e
Показываю постепенный переход от простого решения к решению без дополнительной памяти, стараюсь показать ход мыслей, который, на мой взгляд, соответствует реальному интервью.
PS. Нас ровно 2^8 человек, совпадение? Не думаю! 😉 Спасибо, что читаете.
Happy Monday! 👋
На этой неделе будем двигать битики, складывая два числа не используя операторы + и - → https://bit.ly/2LPwjQN
Поговорим про & и ^ в JavaScript и немного про 2s-complement представление отрицательных чисел.
Happy Monday! 👋
На этой неделе складываем слова из букв — https://bit.ly/2TyEncG
Немного затрагиваю ASCII и separation of concerns (читаем код как книгу).
Happy Monday! 👋
На этой неделе ищем «пик» в массиве — https://bit.ly/2ZRDLD7
Говорим про правильные вопросы которые помогают понять задачу и пишем бинарный поиск.
Happy Monday! 👋
На этой неделе пишем HashSet с нуля — https://bit.ly/3dDuTF7
Как работают хэш-таблицы (наши любимые словари под капотом), что такое хэш-функции и коллизии.
Постарался рассказать как можно практичнее, без «рассмотрим 10 лемм прежде чем перейти к теореме».
Happy Monday! 👋
Задача этой недели – K-й наибольший элемент в потоке (https://bit.ly/3cZpKGd)
Плавно переходим к решению с кучей и сравниваем с наивным решением через сортировку, разница на порядок.
Happy Monday! 👋
Задача этой недели — обойти N-ичное дерево в глубину (https://bit.ly/2YRTiAC)
Посмотрим на разные варианты обхода: preorder, postorder, inorder (и зачем они нужны),
напишем рекурсивное и итеративное решения.
Happy Monday! 👋
На этой неделе посмотрим на технику «скользящего окна» — https://bit.ly/3dOKnpe
Нужно найти наибольшую непрерывно возрастающую подпоследовательность.
Задача простая, тем не менее хорошо иллюстрирует суть техники. Так же даю ссылки на другие задачи по теме.
Друзья, следующая задача — последняя из списка 27 задач для начинающих. В итоге, получился неплохой сборник решений, который знакомит с форматом интервью.

Имеет ли смысл продолжать? На очереди список medium/hard задач, которые уже приближены по уровню к реальным интервью на последнем этапе, онсайте. Создам опрос, чтобы узнать ваше мнение о формате.
Happy Monday! 👋
Задача этой недели — подстричь бинарное дерево поиска (https://bit.ly/2YZvs7f).
Получилось аккуратное рекурсивное решение.
Это последняя задача в серии, весь список целиком — http://bit.ly/2GJijp7.
Спасибо всем, кто читает. Думаю продолжать в том же духе, но с более сложными задачами.
Happy Monday! 👋

Продолжаем серию разборов, но с более сложными задачами — теми, что реально попадаются на онсайтах.
На этой неделе будем играть в домино и тримино → https://vitkarpov.me/posts/domino-and-tromino-tiling/

PS. Решил из ноушена переехать на собственный сайт: больше контроля над вёрсткой, аналитика, да и в маркдауне исходный текст привычнее 😊
Всем привет! Написал пост про собеседования в Амазон - https://vitkarpov.me/posts/how-i-got-a-job-at-amazon/, с упором на описание самого процесса. Если в фаанг ещё не пробовались - может быть любопытно как все устроено.
💻 Coding interviews in a nutshell pinned «Всем привет! Написал пост про собеседования в Амазон - https://vitkarpov.me/posts/how-i-got-a-job-at-amazon/, с упором на описание самого процесса. Если в фаанг ещё не пробовались - может быть любопытно как все устроено.»