Владимир в IT
Владимир в IT
  • 12
  • 12 614
System Design Dropbox
Запись стрима по проектированию файлового хранилища. Дизайн проходил в инициативном порядке поэтапно с уточнением нужного функционала.
⭐️ Подготовка к System Design Interview:
t.me/system_design_world - материалы, cheat sheets, тренировочные моки оффлайн, стримы для смелых)
Временные метки:
00:00 - Intro
01:05 - Выявление функциональных и нефункциональных требований
05:19 - Расчёт нагрузки
12:03 - Создание API
16:10 - Высокоуровневый дизайн
35:45 - Предоставление доступа
48:35 - Построение аналитической подсистемы
30:42 - Дизайн загрузки
38:59 - Аналитика для CDN
41:45 - Расчёт объёма метаданных
48:58 - Масштабирование, определение технологий
52:42 - Обратная связь, сильные стороны, точки роста
1:07:30 - Обратная связь от кандидата
1:09:30 - Outro
🔻 Пример дизайна dropbox:
hellointerview.com/learn/system-design/answer-keys/dropbox
🔻 Grokking the System Design Interview:
github.com/the-bookshelf/cs-architecture
ПОДДЕРЖАТЬ КАНАЛ:
🔸 boosty.to/vladimir_v_it
🙌 Мой канал о мире IT:
t.me/vladimir_v_it
Переглядів: 501

Відео

С++ собеседование
Переглядів 1,7 тис.Місяць тому
Тренируемся в комфортных условиях на реальных примерах от ТОП и средних компаний для уверенного прохождения интервью. Реальное интервью: ua-cam.com/video/VN0xofW0W34/v-deo.html Опрос для С специалистов о будущем С : forms.gle/YLVcvD4P5Q7vuin47 Разберём ответы вместе. ⭐️ Подготовка к System Design Interview: t.me/system_design_world - материалы, cheat sheets, тренировочные моки оффлайн, стримы д...
Интервью по System Design. youtube
Переглядів 1,5 тис.Місяць тому
Проектируем youtube с необычным интервьюером, который предоставил максимум свободы по проектированию, смене этапов интервью. Вопросы задавались не часто, зато в точку. Чувствовалось как от моего ответа зависит успешность прохождения. ⭐️ Подготовка к System Design Interview: t.me/system_design_world - материалы, cheat sheets, тренировочные моки оффлайн, стримы для смелых) Временные метки: 00:00 ...
Обзор интервью по System Design - проектирование youtube / ex-sber techlead
Переглядів 385Місяць тому
7 минутная выжимка System Design интервью по проектированию сервиса youtube. Хорошего просмотра! Временные метки: 00:00 - Intro 00:16 - Выявление функциональных и нефункциональных требований 01:40 - Расчёт нагрузки 02:27 - Высокоуровневый дизайн 3:00 - Транскодирование 3:26 - 3 примера транскодирования 4:36 - Преимущества CDN 6:03 - Загрузка частями. Возможности S3 6:36 - Обеспечение приватност...
Youtube System Design Mock
Переглядів 1412 місяці тому
Let's overcome the fear of the real interviews by making more mock System Design Interviews! This time we are dealing with UA-cam Design task. 00:00 - Intro 00:19 - Background 01:37 - Functional, Non-functional Requirements 09:36 - High-level Design 25:00 - Design Details 39:13 - Feedback 0:55:18 - Conclusion SUPPORT CHANNEL: 🔸 boosty.to/vladimir_v_it SUBSCRIBE: ⭐️ IT News: t.me/vladimir_v_it ⭐...
Youtube System Design Mock
Переглядів 3242 місяці тому
Разработаем High-Level Design UA-cam в рамках System Design mock интервью. В конце обогатимся обратной связью. По итогу расширим кругозор по решению данного типа задачи. 00:00 - Intro 01:15 - Background 02:27 - Functional, Non-functional Requirements 12:00 - High-level Design 47:30 - Feedback 1:01:30 - Conclusion ПОДДЕРЖАТЬ КАНАЛ: 🔸 boosty.to/vladimir_v_it ПОДПИСЫВАЙТЕСЬ: ⭐️ Заметки о мире IT: ...
Анализатор кода / Блажь или необходимость? / История успеха компании из глубинки
Переглядів 3692 місяці тому
Сегодня поговорим о необходимости статического анализа кода. Разберём область его применения и реалии современной разработки со всё более возрастающей сложностью кода. Услышим историю из 2000ых как 2 человека из глубинки хотели оседлать волну популярной многопоточности. И не отчаялись когда ничего не вышло. Нащупали запрос с рынка на проверку багов и создали компанию с мировым именем. Гость вып...
C++ собеседование в 2024 году
Переглядів 6 тис.2 місяці тому
О чём спрашивают на рынке труда сейчас? На первом интервью в 2024 году мне попалась база С . А какие вопросы были у тебя? Временные метки: 00:00 - Введение 00:55 - Контейнеры 11:28 - Реаллокация у вектора 14:40 - Конструктор move, std::move, std::forward 17:03 - Умные указатели 19:46 - shared_ptr в многопоточном использование 20:22 - Опыт в многопоточке 23:30 - Интерфейс 29:06 - Исключения 31:0...
Возвращение из Силиконовой Долины. Переход в RnD. Сравнение жизни, процесса разработки.
Переглядів 3224 місяці тому
Интервью с Егором Бугаенко о: 1) Мотивации миграции и возвращения 2) Привлекательности RnD задач 3) Сравнения уровня жизни в разных странах и процесса разработки 0:00 - Почему перешёл в RnD? 1:09 - Лучший язык программирования 4:35 - Мотивация миграции 7:59 - Сравнение разработки 10:20 - Менеджерство на примере "Кто убил BlackBerry" 10:58 - Возникновение System Design Interview 14:08 - Любимые ...
System design. URL shortener. Mock together.
Переглядів 1974 місяці тому
Interviews are hard! Together try to make it easier! In this mock session we're building url shortener step by step! 🙌 My personal channel: t.me/vladimir_v_it ⭐️ System Design Interview preparation: t.me/system_design_world
Обзор mock интервью по System Design. Url shortener.
Переглядів 5494 місяці тому
Привет! Мок интервью по System Design помогает подготовиться к реальному собеседованию и набраться уверенности. Запросил провести такое интервью со мной руководителя одной из BigTech компаний. Задача выпала - создание сервиса по сокращению ссылок - url shortener. Хорошего просмотра! Временные метки: 00:00 - Как подготовиться к System Design Интервью 01:06 - Решение задачи 08:09 - Итоги 🙌 Мой ка...
Технологический бум Тинькофф. Появление System Design Interview. Выгорание. IT курсы.
Переглядів 8025 місяців тому
Привет! На конференции Yandex.Talks взял 3 интервью с профессионалами мира IT - представителями Тинькофф, Home Bank, Neogenda. У каждого свой уникальный опыт и видение мира. Каждый увлечён своим делом. И каждый с радостью поделился мнением по языкам, карьерному росту в IT, отношению к "воIT" курсам и технологиям. Хорошего просмотра! Временные метки: 00:00 - Интро 00:21 - Вступление 01:28 - Лучш...

КОМЕНТАРІ

  • @Poloskun4ik
    @Poloskun4ik День тому

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

    • @vladimir_v_it
      @vladimir_v_it День тому

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

  • @zhodzky
    @zhodzky 5 днів тому

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

    • @vladimir_v_it
      @vladimir_v_it 4 дні тому

      Спасибо за дополнение! Я был на разных собеседованиях. На каких-то рассказывал про cache friendly. Здесь нет. Опять же, мы можем рассматривать собеседование, возможные ответы и вопросы исходя из полных текущих знаний. За небольшое время в реальности можно пройти лишь какое-то подмножество. Здесь я не говорил про это свойство так как не чувствовал, что это требуется. В hft на собеседование чувствовал и говорил. Там же говорил и о false sharing. Когда задача была соответствующая. С нужным контекстом. И просили улучшить пример.

  • @vladimir0rus
    @vladimir0rus 8 днів тому

    28:03 "чтобы хранить элементы в хэш таблице чтобы разрешать коллизии нам нужен оператор меньше чтобы по нему упорядочивать их в каком-то виде" =)))) ага, поэтому и называется UNORDERED map =)))

  • @vladimir0rus
    @vladimir0rus 8 днів тому

    16:00 std::array создается на стеке, это очень важно понимать. По умолчанию на линукс системе только 8 МБ стека на всё провсё.

  • @vladimir0rus
    @vladimir0rus 8 днів тому

    6:50 Неверный ответ дан на Полиморфизм. Полиморфизм в языках программирования и теории типов - способность функции обрабатывать данные разных типов. В С++ это выражется в том, что можно создать функции с одним именем, но разными типами входных/выходных значений. add(int x), add(float x), ...

    • @vladimir_v_it
      @vladimir_v_it 8 днів тому

      М.б. перегрузка?

    • @vladimir0rus
      @vladimir0rus 8 днів тому

      @@vladimir_v_it перегрузка (overload), это как раз про virtual методы.

    • @vladimir_v_it
      @vladimir_v_it 8 днів тому

      @@vladimir0rus М.б. переопределение(Overriding)?

    • @vladimir0rus
      @vladimir0rus 8 днів тому

      @@vladimir_v_it вобщем не полиморфизм это :)

    • @vladimir0rus
      @vladimir0rus 6 днів тому

      @@vladimir_v_it Страуструп почему то рассматривает только динамический полиморфизм, к которому он относит только переепределение виртуальных функций. Видимо он за доступ к объектам через указатели на абстрактные интерфейсы. Вообще такой полиморфизм можно и в Си организовать. Но вообще, академически полиморфизм делят на: - Ad hoc polymorphism (Перегрузка) - синтаксический механизм, позволяющий по единому идентификатору вызывать разные функции. - Parametric polymorphism - параметрический полиморфизм позволяет определять функцию или тип данных обобщённо, так что значения обрабатываются идентично вне зависимости от их типа. Использование шаблонов C++ внешне похоже на параметрический полиморфизм, но семантически реализуется сочетанием ad-hoc-механизмов; в сообществе C++ его называют «статическим полиморфизмом». - Subtyping - это как раз про virtual и возможность вызвать метод потомка через объект родителя. Так что ответ в видео не полный.

  • @vladimir0rus
    @vladimir0rus 8 днів тому

    720p видео маловато будет, текст не четкий

  • @evseevav
    @evseevav 13 днів тому

    На какой минуте говорится как реализовать требуемую скорость загрузки требуемого объема данных?

    • @vladimir_v_it
      @vladimir_v_it 13 днів тому

      48:10 - Предложено использование CDN. Плюс, сервис аналитики для загрузки в него.

  • @Nop_90h
    @Nop_90h 13 днів тому

    Давай вместе застримим, я по gamedev если чо. Касательно того, что ты что-то в коде не увидел, к этому я лоялен. Бывает всякое. В целом твои ответы мне понравились. Уровень держишь.

  • @Nop_90h
    @Nop_90h 13 днів тому

    Отключи проверку на мат. Мат - часть языка. Контент у тебя не тот, чтобы дети это заабьюзили. А мы без мата не говорим.

  • @Nop_90h
    @Nop_90h 13 днів тому

    каротче, сматри сюда, пачиму тебя не всяли class Accaunt. строка 36 и 38. Скумекал не ? там недостаточно атомиков, нужен мутекс

    • @Nop_90h
      @Nop_90h 13 днів тому

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

  • @user-jj1nk6ng7w
    @user-jj1nk6ng7w 16 днів тому

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

    • @vladimir_v_it
      @vladimir_v_it 16 днів тому

      Это какая минута? Какой контекст?

    • @user-jj1nk6ng7w
      @user-jj1nk6ng7w 15 днів тому

      @@vladimir_v_it это задача с рефакторингом кода

    • @Nop_90h
      @Nop_90h 13 днів тому

      А вот этот челик прав. Мутеха не хватает.

    • @Nop_90h
      @Nop_90h 13 днів тому

      @@vladimir_v_it строка 38 где то там, там сравнение идет атомарное, а потом вычитание, но между 2мя операциями может случится другая операция, капишь.? давай вместе застримим. я там выше отписывался

    • @user-jj1nk6ng7w
      @user-jj1nk6ng7w 5 днів тому

      @@Nop_90h не - мютексы там нельзя ставить - это локфри алгоритмы - там надо было применить и проверить результат и если ушло в минусы отыграть и вернуть фолс.

  • @cheefoxcheefox2372
    @cheefoxcheefox2372 18 днів тому

    По поводу "широких вопросов". Тут тоже всякие интервьюэры из Яндексов рекомендуют задавать уточняющие вопросы. Это представит кандидата в выгодном свете,что он сталкивался с такими ситуациями и умеет в строгие требования, а так же сэкономит время. Опять же. Ваша задача за 30 мин как можно больше наговорить. Мой знакомый простотна скорости перечесления ПО увеличивал свой DevOps оффер с 200 до 250.

  • @cheefoxcheefox2372
    @cheefoxcheefox2372 18 днів тому

    Собес проходит не очень удачно. Словно студент отвечает на экзамене. Да и советы от автора лучше подходят для экзамена, чем для собеса. Очень часто задача интервьюэра за короткое время (30 мин) выяснить потолок кандидата. И если на экзамене потолок априори "знает всё" и экзаменатор выясняет чено не знает экзаминуемый, то на собесе наоборот: интервьюэр априори ставит ноль, а потом выясняет потолок. И если вы за 30 минут не обсудили что-то, то ставится чек, что кандидат этого не знает. Так что страиегия должна быть обратной экзаменационной: нужно максимально быстро и чётко отвечать, чтобы интервьюэр быстро проставлял галочки и уходил в более сложные вопросы, которые дадут более высокий потолок.

    • @vladimir_v_it
      @vladimir_v_it 18 днів тому

      Спасибо за комментарий! Могу добавить, что мне понятна схема со скринингом. HR так и говорит, что будет получасовая встреча на скрининг. И тебя гоняют на контейнеры, умный указатели, многопоточность. Я это проходил. И это понятно. Когда идёт уже такое интервью - уже нужно догадываться что от тебя хотят. Не сказали сходу, что будет скрининг. Задают учебные вопросы. Насколько самому интересно, как было отмечено в комментарии, быть в роли студента? Выбрал стратегию - размышлять вслух, не торопиться. Пинговать таким образом - а может здесь хотят в глубину. Если хотят, я этому способствую - отвечаю базу и жду. Либо пойдём дальше по листу. Либо спросят глубже. Ну что ж. Я готов к этому.

  • @user-xr9kt3qd7s
    @user-xr9kt3qd7s 21 день тому

    большое спасибо за ++интервью! очень уж мало годных видео....

    • @vladimir_v_it
      @vladimir_v_it 21 день тому

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

  • @newborn4231
    @newborn4231 23 дні тому

    Путаницы какие то, Если вы Void переделали надо return убрать( но думаю время не хватило), многопоточность атомарными и мутексами, ну да там бы класс расширился и усложнился, так же считаю самой большой ошибкой uint64_t для данного собеседования наверно усложнена вариация, к тому же вы не обрабатываете исключения, т.к в ГУИ если есть способ ввести отрицательное значения, будет ERROR. Надо проще и как возможно было авторами сделать if (amountToAdd < 0) обычное условие, тогда можно было бы к булу addMoney вернуть ложь и прекратить операцию, я думаю вы стали усложнять, что является очень критичным на собеседованиях, начальные тз не стоит усложнить и даже если вы круто все рассказали или переделали вас могут не взять лишь из-за усложнений, надо играть по их правилам. Я помню проходил собеседование задачи и из-за того что я написал вместо стандартных условий, тернарные мне засчитали ошибку, т.к код надо писать для команды по каким либо их стандартам.

  • @HappyMAN-lv5xu
    @HappyMAN-lv5xu 28 днів тому

    как же меня жестко вые***и на собеседовании по плюсам

  • @user-ln2ft2mo3c
    @user-ln2ft2mo3c Місяць тому

    Мамкины программситы - ни то ни другой про ООП не понимают сути, и уж тем более как это в С++ - просто смешно.

  • @egoryurchenko7847
    @egoryurchenko7847 Місяць тому

    Здравствуйте, на какую позицию было это интервью и на какаю позицию может претендовать Виталий исходя из ответов? На какую ЗП можно расчитывать по итогам такого собеседования?

    • @vladimir_v_it
      @vladimir_v_it Місяць тому

      Хороший вопрос. Я подготовил вопросы, которые мне задавали на собеседованиях на старшие позиции. Здесь по таймингу мы уложились за 40 минут. Я думаю, если уверенно отвечать на эти вопросы - как делал Виталий, плюс учесть обратную связь - то это хороший мидл. Можно добавить, что это не полуторачасовое собеседование. Здесь цель - это проговаривание основных вопросов, которые Вы можете встретить на большинстве С++ собеседований. На реальном можно встретить в добавок к этим вопросам(или их вариациям) - задачи на порядок вызовов конструкторов, деструкторов, что-нибудь хитрое с v_table, pure_virual_call, создание умного указателя, создание producer-consumer с примитивами синхронизации.

    • @egoryurchenko7847
      @egoryurchenko7847 Місяць тому

      @@vladimir_v_it Спасибо за ответ!

  • @egoryurchenko7847
    @egoryurchenko7847 Місяць тому

    Здравствуйте, этот собес был на позицию middle? Компания европейская или россиская? Чем занимается компания и какие обязаности в дальнейшем по работе были оговорены? Уточнялась ли ЗП?

  • @rightmelancholy1170
    @rightmelancholy1170 Місяць тому

    Спасибо за видео, хорошие формулировки вопросов и ответов на них

    • @vladimir_v_it
      @vladimir_v_it Місяць тому

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

  • @MRtheLAGERAT
    @MRtheLAGERAT Місяць тому

    Спасибо за видео, но вопросы в целом довольно простые были

    • @vladimir_v_it
      @vladimir_v_it Місяць тому

      Спасибо за обратную связь! Как оказалось, такие вопросы попадаются на собеседованиях даже на старшие позиции. Какие вопросы хотелось бы услышать? Можно сделать ещё интервью)

  • @forestergogo
    @forestergogo Місяць тому

    Тяжело слушать разность по громкости голосов на колонках.

    • @vladimir_v_it
      @vladimir_v_it Місяць тому

      Спасибо за отзыв! Принял.

    • @huskytv3949
      @huskytv3949 Місяць тому

      в ютьюбе есть функция "постоянный уровень громкости"

  • @rightmelancholy1170
    @rightmelancholy1170 Місяць тому

    насколько сложно будет найти вакансию джуниора с++ в крупном городе вроде спб или мск, если освоен университетский курс, есть qt проекты и могу ответить на вопросы данного собеседования? то есть насколько язык актуален

    • @vladimir_v_it
      @vladimir_v_it Місяць тому

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

    • @rightmelancholy1170
      @rightmelancholy1170 Місяць тому

      @@vladimir_v_it у меня сейчас идет стадия написания pet проектов. я сделал пару приложений на qwidgets, сейчас пару дней посвящу QML. после просмотра интервью хочется поработать с потоками. Честно говоря, хочется просто пройти на какое-нибудь место. Получить настоящий опыт и дальше уже определяться со стязей.

    • @rightmelancholy1170
      @rightmelancholy1170 Місяць тому

      @@vladimir_v_it есть pet проекты на qWidgets, сейчас осваиваю QML, после просмотра интервью - хочется освоить мнопоточность. хочется получить первый коммерческий опыт и уже дальше углубляться. конкретного направления пока не знаю, так как мне приятно, что версткой, что бэком заниматься.

    • @rightmelancholy1170
      @rightmelancholy1170 Місяць тому

      @@vladimir_v_it почему то оставляемый комментарий постоянно удаляется. Сейчас у меня написано пара учебных приложений на qWidgets, продолжаю осваивать QML. После интервью появилось желание поработать с потоками. Честно говоря, есть просто желание получить коммерческий опыт, то есть чтобы взяли хоть куда, а дальше уже поработав - определяться со сферой.

    • @HappyMAN-lv5xu
      @HappyMAN-lv5xu 28 днів тому

      @@vladimir_v_it допустим декстоп и бэкенд

  • @vladimir_v_it
    @vladimir_v_it Місяць тому

    Дорогие С++ разработчики! Скоро на подкасте буду говорить за С++. Хотелось бы увидеть реальные примеры применения С++, его перспектив в Вашей доменной области. Прошу пройти лёгкий опрос - forms.gle/YLVcvD4P5Q7vuin47 Результаты все вместе разберём на отдельном видео/стриме. Часть графиков на данный момент - t.me/vladimir_v_it/45

  • @evilQuister
    @evilQuister Місяць тому

    может я не прав, но как объектный, с++, с этими все шэред/юник птр выгдлядит уродливо. есть java, c#. Имхо применение с/с++ сугубо для скорости/оптимизации ресурсов, а это влечет применение простых примитивов без всего этого

    • @vladimir_v_it
      @vladimir_v_it Місяць тому

      Есть хорошая новость) Скоро будет подкаст, на котором поговорим за С++. К нему собираю мнение сообщества) В опросе уже приняло участие 30 С++ разработчиков) Как маститых специалистов, так и новичков. Так что совсем скоро увидите их мнения о С++ - областях его применения сейчас, обоснованности применения, конкурентоспособности, будущем. Поверьте, там достаточно взвешенный взгляд на данный момент. Без фанатизма. По умным указателям. Вчера как-раз провёл лекцию на курсе С++ про них) Слёту не так просто вникнуть в суть. Если ты уже разрабатывал на обычных, в принципе, освоить не сложно. В опросе спрашивал - текут ли ваши программы? Как думаете, какой сейчас самый популярный ответ? И что в этом помогает?) Какой у Вас язык программирования? Почему выбрали именно его? P.S. Для С++ разработчиков, желающих пройти опрос к подкасту - forms.gle/YLVcvD4P5Q7vuin47

    • @Nop_90h
      @Nop_90h 13 днів тому

      кароч, сматри, есть еще бэйсик, ваще непонтяно, зачем сиподобное хавно нужно

  • @user-wr6je8vi1j
    @user-wr6je8vi1j Місяць тому

    Особенности индийского английского-отдельный вид прокачки языка😂

  • @user-wr6je8vi1j
    @user-wr6je8vi1j Місяць тому

    Спасибо за видео 👍

  • @user-wr6je8vi1j
    @user-wr6je8vi1j Місяць тому

    Спасибо за видео! 👍

  • @konstantin6649
    @konstantin6649 Місяць тому

    Спасибо за видео! Напомни плиз название сервиса в котором рисовали.

  • @user-sl4wn3sj2t
    @user-sl4wn3sj2t Місяць тому

    На какой доске вы рисуете? Как называется?

  • @TimLaizaR228
    @TimLaizaR228 Місяць тому

    0.1% от 20млн, всё таки будет 20к. Интервьюер тут сбил с толку 🙃 Но вообще там и дальше куча ошибок в арифметике, но в целом неплохо

    • @vladimir_v_it
      @vladimir_v_it Місяць тому

      Внимательность 90 lvl) Действительно, в процессе интервью не так просто за ограниченное время произвести корректные вычисления) Не раз слышал мнение от коллег, которые активно собеседуются, что это не самый любимый этап) Как-то мне интервьюер давал обратную связь, что нужно было лишь понимание, что кандидат понимает, что система read-heavy. Он хотел больше времени уделить самому проектированию. Другой хотел увидеть порядки. Поэтому, думаю, перед вычислениями нужно уточнить в каком объеме они нужны. И ещё важно ради чего они нужны. К примеру, если интервьюеру важна экономика - сколько нужно серверов(возможно сколько будут стоить), тогда освятить подробней. Или же достаточно агрегированного вывода: "Система read-heavy и/или write-heavy, поэтому будет определенная специфика дизайна, учитывающая это."

  • @user-mv8tq1bt4o
    @user-mv8tq1bt4o Місяць тому

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

    • @vladimir_v_it
      @vladimir_v_it Місяць тому

      Спасибо за обратную связь! Хорошую статью по проектированию youtube привёл в комментариях. В ней последовательно расписано создание системы. У Алекса Сью также можно посмотреть разбор. В нём есть общее описание и deep dive в транскодинг. Также привёл книгу "Grokking the System Design Interview". В ней представлен краткий законченный дизайн. Я бы начал со статьи, затем разбор задачи в "Grokking the System Design Interview", затем Алекс Сью :) Если хочется потренироваться в паре, то можно на tm канале System Design World записаться на мок интервью. Там же дополнительные заметки других интервью по проектированию youtube в том числе. Если есть ещё вопросы, с радостью отвечу🙂

  • @dmitrysapelnikov
    @dmitrysapelnikov 2 місяці тому

    Про быстрый поиск в неупорядоченном векторе: он может быть быстрее при малом количестве элементов из-за лучшей по сравнению с *set/map-контейнерами когерентности цпу-кэша.

    • @vladimir_v_it
      @vladimir_v_it 2 місяці тому

      Как-то подобный вопрос был в HFT компанию.

    • @Nop_90h
      @Nop_90h 13 днів тому

      да ты шо... садись 5

  • @evgusk
    @evgusk 2 місяці тому

    А на какого уровня позицию было это интервью?

    • @vladimir_v_it
      @vladimir_v_it 2 місяці тому

      Позиция старшего разработчика.

  • @PorisulkiPictures
    @PorisulkiPictures 2 місяці тому

    Вопрос про "Не скорый приход AI" не оч правильный, потому что логичнее узнать, когда AI придёт в PVS-Studio, а не классику ещё... эм... XIX века, ака "когда машина заменит человека". И было бы интересно куда делись дорожные карты PVS-Studio, потому что последние публиковались в 2021 году

    • @vladimir_v_it
      @vladimir_v_it 2 місяці тому

      Ждём Андрея в комментариях) Судя по комментарию интересуетесь этой тематикой. Используете на проекте статический анализатор? Или другие проверки кода?

    • @andreykarpov3381
      @andreykarpov3381 2 місяці тому

      У нас есть задумка попробовать AI для фильтрации отчётов с целью уменьшения количества ложных срабатываний. Пока в виде задачи это не сформулировано. Сейчас более актуальным является разное, связанное с недавно введённым в действие ГОСТ Р 71207-2024. Дорожная карта не вызывала какой-то реакции, и мы перестали её делать. Возможно, возобновим, раз оказывается есть спрос.

  • @vik_2743
    @vik_2743 2 місяці тому

    Закрутили гайки начиная с интервью, заканчивая повышением грейда/зп разработчика. Про плюшки разработчику и я так и не услышал какой-то интересный набор плюшек. Плюс/минус как в других компаниях. Поэтому непонятно зачем все эти выкрутасы а-ля Гугл? Зарплатная вилка как у других банков, плюшки тоже. Может бренд? Ну смешно же. Кроме РФ никто в мире не знает Тиньков банк. Яндекс и то больше известен.

    • @vladimir_v_it
      @vladimir_v_it 2 місяці тому

      Как выглядит Ваша компания мечты?) Комментарий навёл на мысль сравнить Гугл и Тиньков по уровню задач, используемым технологиям.

  • @vladimir0rus
    @vladimir0rus 2 місяці тому

    std::array статически аллоцируется на стеке, из этого следуют его преимущества и недостатки. Поиск в массиве/векторе даже для неупорядоченных данных будет быстрее если он не большого размера (ну и смотря что ты в нем хранишь). В случае хэш-таблицы нужно сначала вычислить хэш, обратиться к памяти, там взять указатель и опять обратиться к памяти. После чего в худшем случаае продолжить бегать по памяти если были коллизии (зависит от реализации). Операция обращения к памяти очень дорогая, особенно если данных не было в кешах. В случае с деревом тоже нужно прыгать по памяти.

    • @Nop_90h
      @Nop_90h 13 днів тому

      ты типа поумничать решил. схуя ли он "на стеке" аллоцируется. где аллоцируешь, там и аллоцируется.

    • @vladimir0rus
      @vladimir0rus 13 днів тому

      @@Nop_90h читай спеки ламо.

    • @vladimir0rus
      @vladimir0rus 9 днів тому

      @@Nop_90h "Нет-нет, что вы, отнюдь, я такое же быдло, как и вы."

    • @tommorfin3499
      @tommorfin3499 3 дні тому

      ​@@Nop_90h стандартом гарантируется, что там cstyle array, значит на стеке

  • @bohdansolonenko6554
    @bohdansolonenko6554 2 місяці тому

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

    • @Kiri110K
      @Kiri110K 2 місяці тому

      Арей можно же и на куче? int* arr = new int[10]?

    • @bohdansolonenko6554
      @bohdansolonenko6554 2 місяці тому

      Если мы говорим про контейнеры то мы говорим про std::array и std::vector. Если ты имеешь ввиду new int[10] то это C - style работа с массивами, так то ты можешь использовать C - Style массив для реализации например стека, но в современном с++ мы используем std::stack

  • @cyrilanisimov
    @cyrilanisimov 2 місяці тому

    По-моему, интервьюверы - душнилы. Не интересная беседа

  • @elenpeers8365
    @elenpeers8365 2 місяці тому

    Это на Джуна? Бегло пробежался по кускам видео - максимально дефолтное и лёгкое интервью...

    • @cyrilanisimov
      @cyrilanisimov 2 місяці тому

      А что, по-вашему, сложное?

    • @elenpeers8365
      @elenpeers8365 2 місяці тому

      Буквально что-угодно не взятое с первых сайтов "примеры вопросов на интервью". Те же темы можно раскрыть более глубоко: не просто спросить "как там обстоят дела с shared_ptr в многопоточке?", а типа "как бы вы реализовывали свой enable_shared_from_this и является ли он thread safe?". Не просто "с какими паттернами встречались в проде?", а "как бы вы модифицировали майеровскую реализацию синглтона до thread safe мультитона? Почему майеровская реализация является потокобезопасной только с 11 стандарта?". Ну и да, в c++ полно сложных тем: начиная с барьеров памяти или кеш-линий до нюансов последних стандартов, которые сильно меняют подход к написанию кода вообще (одни только концепты чего стоят?).

    • @cyrilanisimov
      @cyrilanisimov 2 місяці тому

      @@elenpeers8365 и зачем? Стандарт очень большой и похож на русский язык, который может быть разговорным, высоким (художественным) и пр. В жизни вы пользуетесь разговорным и не испытываете никаких проблем, если не делаете ошибок. Не каждый должен изъясняться, как Пушкин, это наоборот только мешает. Есть стандарт. Что там делал Мейерс в свои молодые годы не обязательно знать, если вы с этим не соприкасались. Задача собеса - взять того, кто соображает, а не взять того, кто «знает всё».

    • @vova_dev
      @vova_dev 2 місяці тому

      @@elenpeers8365Про thread-safe синглтон. Имеется ввиду double check locking до C++11 и его не нужность, начиная с С++11 потому что для static ввели guard variable?

    • @elenpeers8365
      @elenpeers8365 2 місяці тому

      @@vova_dev да, именно это я имел в виду. (Но вообще, это просто пример того, что я иногда спрашиваю на собесах)

  • @viktorvlasuk4400
    @viktorvlasuk4400 3 місяці тому

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

    • @vladimir_v_it
      @vladimir_v_it 3 місяці тому

      Спасибо за отзыв) Скоро будет очередное видео) Можно сделать вместе) Обсудить животрепещущую тему)

  • @TOKYODRIFT00000
    @TOKYODRIFT00000 4 місяці тому

    хорошо и понятно рассказываете, спасибо. Надеюсь, и я там буду на собеседованиях)

    • @vova_dev
      @vova_dev 3 місяці тому

      Удачи на этом пути! Есть определенная цель - стать senior разработчиком или, к примеру, попасть в Big Tech в определённый продукт/команду?

    • @TOKYODRIFT00000
      @TOKYODRIFT00000 3 місяці тому

      @@vova_dev да, конечно, в планах выйти из мидловской позиции и поработать senior разработчиком в тинькофф или в яндексе, например

    • @TOKYODRIFT00000
      @TOKYODRIFT00000 3 місяці тому

      @@vova_dev да, есть определенные цели. хочется вылезти из middle разработчиков, став уже senior, да может в тинькофф поработать

  • @volodimort4405
    @volodimort4405 4 місяці тому

    Видео крутое, но момент с вычислениями не особо понял

    • @vladimir_v_it
      @vladimir_v_it 4 місяці тому

      В секунду 100 запросов на создание ссылки. В день 8 640 000 = 8 млн. В 5 лет = 12 млрд. То есть, если стартанём сервис сейчас, то за 5 лет к нам обратятся 12 млрд раз на генерацию ссылки. Т.е. в базе будет 12 млрд записей. Могу дальше рассказать что не понятно. Можно ещё по зуму, как вариант. Телеграмм аккаунт: @vova_dev. Или на канале в админах меня найти.

  • @Rest338
    @Rest338 4 місяці тому

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

    • @vladimir_v_it
      @vladimir_v_it 4 місяці тому

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

    • @vladimir_v_it
      @vladimir_v_it 4 місяці тому

      На днях уже я проводил мок собеседования по немного измененной этой задачи. Собеседник предложил MD5, SHA256 для расчёта url. На выходе эти функции дадут длинные строки. Обрезаем хвост. Могут возникать уже выданные url. В цикле генерируем новые url и проверяем выдан ли такой url или нет. Я не ставил требование "Генерировать быстро". В этом ролике такое требование было. Из-за его наличия уже нужно быть осторожным с криптографической функцией SHA256. Она не быстрая. По крайней мере, на собеседование можно порассуждать на этот счёт. Или могут спросить - чем плоха SHA256? Ответ в этом контексте - медленная скорость выполнения. Если представим, что генератор - один сервис, к которому ходят все stateless бэкэнды, то все они будут ждать завершения. Создали точку сериализации/синхронизации. Либо сделать много сервисов генераторов - генерировать в параллель. И все они в случае использования таких функций должны проверять была ли такая url выдана. Если нет, то атомарно с проверкой записать, что теперь url используется. url - строка. Не число, как в этом решение. Сравнение строк. Дороже, чем сравнение чисел. О чём я упоминал. Тоже стоит помнить такую мысль. Опять же, вопрос удовлетворения требований.

  • @vladimir_v_it
    @vladimir_v_it 6 місяців тому

    А какой язык для вас самый лучший и почему?

  • @user-yw4ju4nk5n
    @user-yw4ju4nk5n 6 місяців тому

    Интересно. Снимай еще)

    • @vladimir_v_it
      @vladimir_v_it 6 місяців тому

      Спасибо! Окей) Уже есть мысли с кем пообщаться) Также планирую ролик с наглядными графиками про балансировку) Сейчас отрабатываю подход на flask+grafana. Далее подключу nginx в качестве load balancer) Получится наглядная демонстрация видов балансировки со своими преимуществами и недостатками.