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

У микрофона Виктор @vitkarpov. ex-Amazon, ex-Yandex
加入频道
Happy Monday! 👋
На этой неделе разбираемся с жадными алгоритмами. Напишем квадратное решение и перепишем за линию с помощью «жадинки».
https://vitkarpov.me/posts/container-with-most-water/
Как разработчику успешно пройти собеседования в FAANG

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

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

📝 Делайте резюме под каждую позицию. Упоминайте только релевантный опыт, а для позиций уровня senior и выше описывайте не только свои достижения в разработке, но и в организации командной работы и найме, достижении бизнес-целей.

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

👩‍💻 Подготовьте связный рассказ о себе и своём опыте. Он точно пригодится на поведенческих интервью, а сокращённая версия с примерами успешных проектов и вашими пожеланиями к новой работе - для вводного рассказа о себе на каждой секции. Репетируйте вслух и с диктофоном.

🦾 Отведите несколько месяцев на подготовку к алгоритмическим задачам. Прорешайте не меньше 30-50 задач на Leetcode по разным темам, найдите или придумайте обобщённый алгоритм решения задач и придерживайтесь его. Старайтесь начинать писать код только когда алгоритм решения задачи известен, включая edge-кейсы и его сложность.

📣 Говорите во время решения задач. То, как вы размышляете, не менее важно, чем то, насколько быстро и верно вы находите решение задачи. Ведите диалог с собеседующим, чтобы получать постоянную обратную связь. Если вы не уверены, уточните, что правильно поняли задачу.

⚙️ На system design интервью обозначьте общую архитектуру решения и постарайтесь углубиться в область, в которой вы разбираетесь лучше всего. Ведите себя как техлид, уточняющий требования у заказчика, и двигайтесь от общего к частному. Держите в голове план решения задачи и следите за временем.

🤝 Для позиций высокого уровня ваши софт-скиллы важнее, чем умение писать код. Прокачивайте умение работать в команде - обсуждать, спорить, договариваться. Учитесь презентовать и продавать свои идеи, быть услышанным, принимать чужую точку зрения. Развивайте эмпатию, не поддавайтесь эмоциям и учитесь ладить с другими и собой.

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

💰 Собеседуйтесь в несколько компаний и старайтесь получить несколько оферов. Это поможет торговаться (в пределах рынка и вилки зарплат на данной позиции) и чувствовать себя спокойнее. Будьте открыты к предложениям рекрутеров, держите их в курсе процесса и сообщайте о получении других оферов.

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

Ну и напоследок: не рвитесь исключительно в FAANG только ради строчки в резюме. Лучше оказаться на своём месте в небольшой компании, делать что-то важное, развиваться и иметь слово в принятии решений, чем быть винтиком в большом корпоративном механизме. Удачи!
Happy Halloween! 🎃 Правда же это страшный кошмар, да? 😊
Happy Monday! 👋
Задача этой недели на динамическое программирование. По-моему, является классическим примером введения в такой тип задач.
https://vitkarpov.me/posts/unique-paths/
Happy Monday! 👋
Продолжаем решать задачи на динамическое программирование, на этой неделе разбираем двумерную дпшечку.
https://vitkarpov.me/posts/number-of-dice-rolls-with-target-sum/
Постримили за собеседования, алгоритмы в работе, Амазон, Яндекс и жизнь. По-моему, вышло любопытно — https://www.youtube.com/watch?v=bw76xJlAAxo
Завтра, в субботу в 12 по Москве, Паша Франков будет рассказывать про оформление резюме для тех, кто хочет войти в IT. Полагаю так же будет любопытно всем, кто просто давно не обновлял своё резюме и не искал новую работу. Должно быть интересно!
Forwarded from Пять Франков
Завтра буду в прямом эфире у очень интересных ребят, которые помогают людям сменить профессию, предоставляя им пошаговый план развития.

Я расскажу о самых базовых проблемах, с которыми сталкиваются начинающие разработчики, при поиске работы.


А вот и сам анонс:

Резюме IT специалиста
Прямой эфир завтра 14.11 (суббота в 12:00)

Завтра на нашем instagram канале произойдет небывалый случай, ведь мы поговорим об IT профессиях. По этому поводу мы и пригласили в гости IT специалиста – Павла Франкова. Кто это, спросите вы? Просто полистайте канал @winterview, где Паша рассказывает про то, как победить на техническом интервью и получить лучший оффер.

Что будет завтра в эфире?
– Как должно выглядеть резюме начинающего IT специалиста: топ советов
– Что делать с пустым Гитхабом?
– Как рассказывать о проектах под NDA?
– Как повысить вероятность получения отклика?
– Об адекватности зарплатных ожиданий?

Не пропустите эфир завтра в субботу в 12:00 🥳
💻 Coding interviews in a nutshell pinned «Постримили за собеседования, алгоритмы в работе, Амазон, Яндекс и жизнь. По-моему, вышло любопытно — https://www.youtube.com/watch?v=bw76xJlAAxo»
Forwarded from Miu vs System Design
Мартин Клеппманн (автор книги Designing Data-Intensive Applications) выложил в свободный доступ материалы своего курса по распределённым системам. Налетай!
Happy Monday! 👋
На этой неделе разбираемся с in-place алгоритмами. Хорошая задача — move zeroes, подвинуть все нули в конец. Хороша она тем, что решается тривиально «в лоб», и имеет несколько вариантов развития.
Так же сделал анимированную демку 🔥
https://vitkarpov.me/posts/move-zeroes/
На какую тему разобрать следующую задачу?
Final Results
23%
Queues
59%
Dynamic Programming
27%
Backtracking
Учитывая, что больше половины людей проголосовали за динамическое программирование — направление ясно. Кстати, на сайте есть теги. Например, вот задачи про динамическое программирование.
Happy Monday! 👋

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

https://vitkarpov.me/posts/minimum-number-of-removals-to-make-mountain-array/
Коллеги напомнили, что скоро (старт 1 декабря) очередной https://adventofcode.com/ — участвуете? В прошлом году писали «свой космический корабль», любопытно, что будет в этом.
Привет! Недавно опубликовал гостевой пост в другом канале, про собеседования. Почитайте, если любопытно про «подготовку в 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 важными вещами, которые я вынес для себя, при подготовке к собеседованиям…»