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

У микрофона Виктор @vitkarpov. ex-Amazon, ex-Yandex
加入频道
Как стать «синьором»? Спойлер: надо брать на себя ответственность.

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

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

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

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

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

Чтобы не было такого, что сеть у нас всегда 100% надежная, latency не существует, а все зависимости (на самом деле написанные на коленке) работают как часы.

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

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

То есть в дизайне всегда есть трейдофы, ограничения. Условно хотим построить систему бронирования отелей, а как данные получать? Будем скрейпить сайт Хилтона пока нас не заблокируют навсегда? Ну нет. Должны быть АПИ. А эти АПИ точно всегда актуальные данные возвращают? Ну нет, мы ж не будем каждую секунду их запрашивать — есть какие-то TPS. Нужен кэш, а что будем делать когда случится рассинхрон, то есть человек комнату забронировал, а на самом деле ее уже нет?

Другая классическая ошибка: отелей много, MySQL не подойдёт. А почему? А сколько всего отеле в мире? Ну не так уж и много, на самом деле! Кроме того, это отели, а значит можно хорошо шардировать (географически, например) то есть разложить их в разные базы и роутить куда надо запросы за данными.


И так далее, с интервьюером продолжаешь раскапывать задачу до дна.
Интересны ли вам стримы по систем-дизайну, с гостями, которые в теме?
Anonymous Poll
62%
Да. Больше, чем алгоритмы.
21%
Да. Меньше, чем алгоритмы.
5%
Нет, не люблю стримы.
11%
Посмотреть ответ.
Как начать и продолжить?

Знакома ли вам то чувство, когда, прочитав очередную историю успеха на литкоде, вы записываетесь на курс Седжвика на Курсере. Проходит неделя-другая, и запал пропадает. Гугл с Фейсбуком уже не такие привлекательные, а уведомления от Курсеры про сроки сдачи начинают успешно игнорироваться.

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

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

Когда решение появилось, то появилась и система подготовки. Какая?

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

Выделил определённое количество часов в неделю на подготовку. Упарывать не нужно. Сидел каждый будний день с утра, когда голова варит лучше всего, занимался. На выходных отдыхал, а то следующая станция — выгорание.

Использовал «помидорки». 25 минут фокусируешься на задаче, потом перерыв. Смотришь подсказку, если задача не даётся, и заводишь таймер на следующие 25 минут.

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

У вас есть система, которая помогает в обучении или работе над своими проектами?
Happy Monday! 👋

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

https://www.youtube.com/watch?v=Dpifo9OJpIs
Почему я решил завести YouTube-канал или история про английский

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

Это история получилась довольно захватывающей и реально дала плоды на собеседованиях, потому что словарь довольно специфический. Через пару видосов я, наконец, запомнил на каком слоге ударение в слове array 😄

Мне понравился и сам процесс создания видосов, захотелось научиться делать их нормально — до сих пор вот учусь. Судя по длине просмотра, которая увеличивается, здесь есть прогресс — стараюсь давать информацию плотничком, без воды, формат оттачивается. Это уже не про английский, конечно, но началось всё именно так.

Вы как, учите английский? Поделитесь лайфхаками 😉

https://www.instagram.com/p/B-E9_DmoSFl/
Всем привет 👋
Через час начинаем стрим с Тиной. Спойлер: сегодня будем мучать топологическую сортировку. Присоединяйтесь! 👨🏻‍💻👩‍💻

https://youtu.be/Y42XvA8FHL0
Всем привет! 👋

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

Ссылка на плейлист, если вдруг вам это будет полезно — https://www.youtube.com/playlist?list=PLtRFPaw3fD55Drn11idkIw0mBidrfml29
Happy Monday! 👋

Разборы задач уходят на каникулы 🏖️, до конца лета. Завтра разговорный стрим с Тиной, решать ничего не будем, только болтать. Последний стрим в этом сезоне — приходите с вопросами, набросами и предложениями 😊

https://www.youtube.com/watch?v=VYwF87PKwuo
Влад Тен вышел из сумрака, с интересным челенджом — 170 задач из списка LeetCode Patterns, вот это я понимаю плейлист для подготовки к собесам получится 💪 Stay tuned!

Анонс на YouTube: https://www.youtube.com/watch?v=92_ZmKjtfxA
Канал: https://yangx.top/vladtenlive
Всем привет! 👋

Нашёл, возможно, самый недооцененный канал по систем-дизайну для фронтендеров. Чувак готовился к интервью и разобрал 6 разных задач: фейсбуковскую ленту новостей, пинтерест, нетфликс, чат, автокомплит, эксель, голосовалку.

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

Однозначно лайк. Рекомендую к просмотру!

https://www.youtube.com/channel/UC6YpkaZsAcAvPNt4rLiS7dg
💰 Исследование зарплат разработчиков (анонимно)

Всегда интересно узнать, сколько платят коллегам по цеху. Это не только любопытно, но ещё и полезно: можно понять, платят ли вам рыночную зарплату и стоит ли искать новую работу или просить повышения.

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

Я сделал небольшую гугл-форму, где собираю анонимные ответы про доход разработчиков: https://forms.gle/F27VuaK8o55Na5LL9

Если каждый из нас потратит несколько минут и заполнит форму (я уже добавил свои 4 офера с 2018 года и добавлю ещё несколько, которые не принял), особенно указав все свои оферы/места работы за последние несколько лет, соберётся достаточное количество статистически достоверных данных.

Проанализировав ваши ответы, я надеюсь найти ответы на вопросы:

🤩 что выгоднее, удалёнка или офис
🌏 как изменилось соотношение удалённых и офисных вакансий
💵 выросли ли зарплаты разработчиков в последние год-два и на сколько

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

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

До связи! 👋
Всем привет! 👋 Решил выйти из сумрака, с идеей.

Вокруг канала собирается комьюнити увлечённых и крутых разработчиков (спасибо всем, кто участвовал в advent of code в этом году, было круто!). А что если связать этих людей напрямую с нанимающим менеджерами, которые заинтересованы в кадрах?

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

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

Интересно ли вам было бы в таком поучаствовать? И как разработчику и как нанимающему менеджеру.
Прошу в комменты с фидбеком.
Этот канал не про политику, но война это не политика — это тот водораздел, где нельзя молчать. Почему раньше не написал, ещё в первый день этого кошмара?

Стыд. Пишу сейчас эти строки, и сгораю от стыда, внутри всё клокочет.

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