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

У микрофона Виктор @vitkarpov. ex-Amazon, ex-Yandex
加入频道
Привет! Недавно опубликовал гостевой пост в другом канале, про собеседования. Почитайте, если любопытно про «подготовку в FAANG» (на самом деле, куда угодно).
Forwarded from Пять Франков
5 важных вещей при подготовке в FAANG

Всем привет!

Меня зовут Виктор, программирую ЭВМ в Амазоне, до этого — в Яндексе. Был на собеседованиях в Facebook, Microsoft, Google. Хочу поделиться 5 важными вещами, которые я вынес для себя, при подготовке к собеседованиям в эти компании.

1️⃣ Рефер
Попасть на собеседование проще всего через рефер. Найдите человека на LinkedIn, который работает в нужной вам компании и будет готов его дать.

2️⃣ Резюме
Оформите резюме под конкретную вакансию: релевантная секция «о себе», достижения (желательно в цифрах: ускорил, сократил, и т.д.) рядом с каждой позицией. Не стесняйтесь «хвалить себя». Врать не стоит, конечно, важно просто вспомнить, что вы делали и правильно описать.

3️⃣ Английский
Исключительно важный пункт.

Важно уметь рассказать про свой опыт, про свои проекты, про «сложные задачи, которые решал» или «конфликты с менеджером» (спойлер: для таких вопросов есть специальная секция) — все это нужно подготовить заранее, даже на родном языке, а уж на втором тем более.

Так же важно потренироваться решать задачи объясняя на английском, привыкнуть к таймингу и обстановке интервью, чтобы потом меньше стрессовать. Для этого существуют мок-интервью, попробуйте https://pramp.com.

4️⃣ LeetCode и алгоритмические секции
Алгоритмическая секция должна выглядеть как парное программирование, а не как экзамен. Представьте, что решаете задачу с коллегой и займите «солирующую позицию»: задавайте вопросы, рассуждайте про сложность, плюсы и минусы решения.

Порешайте 50-60 задач разного уровня сложности, из списка популярных для собеседований. Сразу станут видны пробелы: как дерево обойти, как бинарный поиск написать, чем отличаются BFS от DFS. Это базовые вещи, которые пишутся на автомате, если кандидат их не знает — это красный флаг. Подтяните базу и смело на интервью, совсем не обязательно решать сотни задачи месяцами!

5️⃣ Оффер и торги
Стоит изучить рынок зарплат для определённой локации и уровня в данной компании, поможет https://levels.fyi. Идеальный вариант — получить два оффера, чтобы можно было торговаться.

На этапе оффера делать это абсолютно нормально: компании совсем не выгодно потерять кандидата на самом последнем этапе, поэтому процентов 10-15 можно выбить (обычно прибавкой к опциону или sign-on бонусу)

Подробный пост про собеседование в Амазон.
А ещё я веду канал с разборами задач.

Это был первый гостевой пост на канале. Если вы тоже хотите поделиться опытом — напишите мне в @winterview_contact_bot
💻 Coding interviews in a nutshell pinned «5 важных вещей при подготовке в FAANG Всем привет! Меня зовут Виктор, программирую ЭВМ в Амазоне, до этого — в Яндексе. Был на собеседованиях в Facebook, Microsoft, Google. Хочу поделиться 5 важными вещами, которые я вынес для себя, при подготовке к собеседованиям…»
Happy Monday! 👋
Разборы задач уходят на зимние каникулы 🎄🎁 . До 25 числа я решаю AdventOfCode. Кстати, присоединяйтесь! Обуждения решений — каждый день в чате канала, а по закреплённой инструкции можно присоединиться к нашему лидерборду.
Олег Громов рассказал почему «попасть в FAANG недостаточно, или 9 шагов к карьере мечты» для студентов школы 21. Довольно любопытные наблюдения про осознанное построение карьеры — https://www.youtube.com/watch?v=bYJS3FI0Rkk
Друзья, с наступающим Новым Годом! 🎄🎁

Желаю всем сохранять трезвый рассудок, планировать (2020 ехидно усмехнулся) и достигать в новом году! При этом не забывать отдыхать, и больше гулять 🌳🌴🌊 В январе разборы задач возвращаются: одна задача в неделю.

PS. Спасибо всем, кто написал в личку, что следите за разборами задач, и даёте обратную связь. 👍
Happy Monday! 👋
Разборы задач возвращаются. Опросы показали, что в тренде динамическое программирование и очереди, решил начать с последних, т.к. на динамическое программирование было много разборов (но будут ещё). Поиск максимума в скользящем окне — популярная задача, вариация которой даже один раз попалась мне на онсайте в Facebook.
https://vitkarpov.me/posts/sliding-window-maximum/
Happy Monday! 👋
На этой неделе разбираем классический пример задачи на графы и обход в ширину, где как раз нужны очереди.
https://vitkarpov.me/posts/word-ladder/
Happy Monday! 👋

Задача этой недели https://vitkarpov.me/posts/jump-game-vi/
Happy Monday! 👋

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

https://vitkarpov.me/posts/letter-tile-possibilities/
Happy Monday! 👋

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

https://vitkarpov.me/posts/combination-sum/
Happy Monday! 👋

Задача этой недели — найти пик в массиве. Хорошая задача с тривиальным решением и развитием в бинарный поиск.

https://vitkarpov.me/posts/peak-index-in-a-mountain-array/
Happy Monday! 👋

Задача этой недели на связные списки. Задача была в февральском челендже на литкоде, довольно известная, и многие пишут решение с двумя указателями, но не все понимают «почему это работает». Я решил написать про интуицию, которая помогает это понять, без формальной математики.

https://vitkarpov.me/posts/linked-list-cycle/
Happy Monday! 👋

Задача этой недели на рекурсию, из недавного контеста на LeetCode. Можно ли все отдельные массивы из двумерного найти в обычном массиве, так, чтобы не было пересечений?

https://vitkarpov.me/posts/concatenating-subarrays/
Happy Monday! 👋

На этой неделе будем искать оптимальное расписание задач. Рекурсия с мемоизацией.

https://vitkarpov.me/posts/maximum-profit-in-job-scheduling/
Happy Monday! 👋

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

https://vitkarpov.me/posts/concatenated-words/
Всем привет! 👋

Не мог пройти мимо и не поделиться ссылкой на прекрасный, 5 часовой (!) подробный видос по динамическому программированию. Alvin Zablan из Coderbyte рассказывает про 4 классические задачи: Фибоначчи, количество путей в матрице, сумма из списка чисел (размен монет), конкатенация слова из словаря.

https://www.youtube.com/watch?v=oBt53YbR9Kk

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

PS. Изначально ссылкой поделились в чате канала, так я узнал про курс. Добавляйтесь если ещё нет, там интересно и полезно! :-)
Happy Monday! 👋

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

https://vitkarpov.me/posts/validate-binary-search-tree/
Happy Monday! 👋

Возьму перевыв в разборах на недельку-другую, а пока — решаем мартовский челендж, по задаче каждый день https://leetcode.com/explore/challenge/card/march-leetcoding-challenge-2021/. В чате обсуждаем решения, добавляйтесь если ещё нет https://yangx.top/ctci_chat_ru
Всем привет! 👋

Как научиться дизайну систем, который нужен для устройства в топовые ИТ компании? Нужен опыт, который можно получить в тех самых топовых компаниях — замкнутый круг.

Коллеги из Яндекса и Фейсбука запускают проект для решения этой проблемы: https://nerdia.io/ — это симулятор работы в IT-компании. Записывайтесь в альфу, должно быть любопытно.