it-interview

it-interview

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

Пікірлер

  • @woykin7791
    @woykin7791Күн бұрын

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

  • @yami_curr
    @yami_currКүн бұрын

    12:20 я так и не понял, как у вас а2 и а3 тут получаются разными. Я проверил сам и а2 и а3 должны выходят одинаковыми с cap = 6

  • @kaspirovskiy
    @kaspirovskiyКүн бұрын

    Мне кажется дизайн должны делать LLM для человека это слишком

  • @BoQbL1k
    @BoQbL1k2 күн бұрын

    Что за задачи такие где оценить сложность задачи уже сложно )

  • @_c_est_la_vie4277
    @_c_est_la_vie42773 күн бұрын

    Ozon набор на route256: решите 8 около олимпиадных задач, чтоб попасть к нам на обучение Собес на джуна: что значит неизменяемый тип данных....

  • @algoseekee
    @algoseekee4 күн бұрын

    Все круто. Спасибо. Пожелание: зумить схему чтобы было видно о чем речь идет. Excalidraw позволяет зумить.

  • @flykby
    @flykby9 күн бұрын

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

  • @timmyyyyyyyyyyyydimkakoopa5732
    @timmyyyyyyyyyyyydimkakoopa57328 күн бұрын

    если сравнить структуру двух кэшей, в каждой из структур мы делаем выбор в пользу того или иного преимущества с наименее болезненным негативным эффектом - id1 : { post1, post2, post3..} - id2 : { post1, post2, post3..} - id3 : { post1, post2, post3..} - id4 : { post1, post2, post3..} vs - id1: { post78, post3001, post134} - id2: { post901, post3001, post124} - id3: { post1101, post32, post10229} __________________ условное сравнение преимущества первого перед вторым будет следующим: - легко получает записи, если перейдёшь на страницу (условный ВК/twitter/Instagram -> ты увидел страницу, зашёл на неё и тебе из кэша подгрузили n первых постов определённого пользователя) - легко собирать ленту, если у тебя частые операции на подписку/отписку, при которой формирование ленты идёт путём merge операций по timestamp в постах (к примеру у тебя есть n друзей на основе которых в твоём кэше собрана лента, отписываясь от нескольких друзей тебе сложнее вычленить посты этих друзей в уже пред-подготовленной ленте редиса) - рассматривая поддержку редактирования поста (пользователь опубликовал запись, затем отредактировал текст к ней), и после редактирования мы снова должны пробежать по n подписчикам и обновить пост для каждого из них, чтобы в момент получения /feed мы увидели уже обновлённый пост, в то время как отношение id - { posts} просто на этапе запроса ленты по id друга вытянет актуальное состояние поста (не нужно каждое редактирование поста отправлять в n друзей, обновляя их пред-подготовленную ленту)

  • @user-zx6fq1ig4h
    @user-zx6fq1ig4h9 күн бұрын

    Зачем все это делать в реальном времени? Дается задание, дается время на реализацию, потом можно обсудить результат и в процессе обсуждения скорректировать элементы.

  • @vadimsobolevskiy5579
    @vadimsobolevskiy55796 күн бұрын

    Потому что оценивается не результат, а путь к результату.

  • @user-ly6cv4sx2w
    @user-ly6cv4sx2w10 күн бұрын

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

  • @timmyyyyyyyyyyyydimkakoopa5732
    @timmyyyyyyyyyyyydimkakoopa573210 күн бұрын

    аргумент в пользу таких инженеров прост: - расчет произвести можно в конвертере и калькуляторе, не столь важно, но отличие лишь в том, что если человек умеет рассчитывать безошибочно на листочке, это продвинет лишь на одну ступеньку вверх к систем дизайну на обсуждение непосредственно системы - знание constant hashing, sharding, LB, quadtree cassandra vs mongo (master/replica strategy) и прочее, сильно может повлиять на экономику проекта не судите по себе, если вы посчитали правильно, но другие нет. Видео носит информативный характер, очень хорошо, если вы что-то из него подчерпнёте полезное. Комментарий неадекватный по своей агрессивной интонации и наверняка, ваш болезненный и тернистый путь к вершине карьеры сказывается на вас травмой, но не все должны страдать как вы. ___________ повторюсь, на видео люди УЧАТЬСЯ, демонстрируют свои навыки и определяют свои знание на общей системе координат. Они не обязаны вам или кому-то еще. Любой желающий может поучаствовать в таком мероприятии, запишитесь и вы. Очень стыдно читать не поддержку коллеги, а попытки пристыдить. Укажите на ошибки, поправьте, скиньте ресурсы, есть другой подход в обучении

  • @timmyyyyyyyyyyyydimkakoopa5732
    @timmyyyyyyyyyyyydimkakoopa573210 күн бұрын

    p.s. [являюсь опытным backend разработчиком и сертифицированным архитектором]

  • @user-ly6cv4sx2w
    @user-ly6cv4sx2w10 күн бұрын

    @@timmyyyyyyyyyyyydimkakoopa5732 судя по количеству слов в вашем комментарии, моё сообщение вас сильно задело :) ваши "аргументы", как и, вероятно, ваши сертификаты, бессмысленно комментировать. Метать перед свиньями бисер себе дороже.

  • @danilistomin5181
    @danilistomin51819 күн бұрын

    биты в байты почему то умеют конвертировать ученики 5го класса, а вот сделать приложение - почему то не все ученики 5го класса :) не находишь ничего странного? да ты видимо и есть тот самый злой стажер который не может 5 лет уже найти работу хотя выучил всю "БАЗУ" но не устроился даже на 20 тыщ .... рублей в месяц

  • @timmyyyyyyyyyyyydimkakoopa5732
    @timmyyyyyyyyyyyydimkakoopa57329 күн бұрын

    ​@@user-ly6cv4sx2w буду очень признателен, если увижу от вас ВАШУ ссылку на линкедин профиль. Задеть комментарием, вы конечно значительно преувеличиваете.. нет абсолютно никакого повода кому-то что-то доказать, чего о вас не скажешь

  • @apn0597
    @apn059710 күн бұрын

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

  • @user-pk2bo6wq6d
    @user-pk2bo6wq6d10 күн бұрын

    12:17 Расчеты немного неверные, вы 200 байт прибавили к 500 КИЛОбайт

  • @egnpost8114
    @egnpost811410 күн бұрын

    Как всегда супер!

  • @gregory._
    @gregory._12 күн бұрын

    1:06:44

  • @iFATUM88
    @iFATUM8821 күн бұрын

    Прикольное интервью, но хотелось бы понять: 1. На какой уровень это интервью 2. Такого рода задачи где то применяются на практике? Какие задачи решают?

  • @OlegToropov-uj6jh
    @OlegToropov-uj6jh23 күн бұрын

    Молодец хорошо держится! Красавчик!

  • @user-yd9xy3rb4x
    @user-yd9xy3rb4x24 күн бұрын

    Стопэ, вторая задача это по моему easy с leetcode

  • @user-yd9xy3rb4x
    @user-yd9xy3rb4x24 күн бұрын

    Я то думал там спрашивают какой то ужас, а там чет все слишком легкое

  • @user-dz6by9gb9y
    @user-dz6by9gb9y28 күн бұрын

    А зачем для этой задачи SQL DB? При 100нях миллионов - миллиардах записей тотже постгрес будет существенно замедляться. И тут вовсе не нужна транзакционность и поэтому таже Mongo будет явно предпочтительнее Постгреса (хотя под SQL может что-то другое имелось в виду). Для чего эта история с заготовленными ссылками можно просто брать timestamp 4 байта + 4байта случайное число? Вероятность коллизиии минимальна c учетом 40rps на запись и решается повторной перегенерацией в случае неудачи ( вероятность коллизии 40/4 000 000 000 = 0.000001%). И про кеш совсем не очевидная история: смущает срок жизни ссылки - 10 лет, и на эти 10 лет жизни 100 запросов на ее чтение (конечно можно предположить, что пик запросов придется на какой-то короткий интервал после выдачи, но все равно использование кеша не очевидно при данных вводных). В общем мне кажется, что о многих очевидных вещах много поговорили, а про многие важные вещи, такие как выбор СУБД (как мне кажется это ключевое) не поговорили

  • @UmanIgor
    @UmanIgorАй бұрын

    var str = "abcabcbb"; // 'abcaebac' var fn = (str = '') => { if (!str) return 0; var max = 1; for (var i = 0; i < str.length; i++) { var sub = str[i]; var n = i + 1; if (max > (str.length - i)) return max; while (n < str.length) { var ch = str[n]; if (!~sub.indexOf(ch)) { sub += ch; if (max < sub.length) max = sub.length; } n++; } } return max; }

  • @kOzae6bI4
    @kOzae6bI4Ай бұрын

    Забавно, но первую задачу вот как есть только что давали мне в мете на интервью в конце апреля

  • @user-vr4rf3se7f
    @user-vr4rf3se7fАй бұрын

    в вопросе с дефером где 123 и 456 вообще то в исходном задании выводится 456 а не 123

  • @Magomedrasul7
    @Magomedrasul7Ай бұрын

    Что если упадет хранилище заготовленных ссылок 200кк ? Если это inMemory хранилище, то при рестарте оно восполнится снова этими же заготовками или же будут новые заготовки ? 🤔

  • @yaroslavlymar6599
    @yaroslavlymar6599Ай бұрын

    Я был на совсем другом собесе в Яндекс. Там были задачи Хард из литкода, где не базовые алгоритмы нужно писать.

  • @ihorvodko767
    @ihorvodko767Ай бұрын

    Проблема интервалов не полностью решена с точки зрения временной сложности. 1) Создайте вектор с размером = максимальному концу всех интервалов. 2) Перебрать входные интервалы и сохранить их в векторе: позиция вектора - это начало интервала, если интервал уже существует, объединить эти два интервала. 4) Взаимодействие с вектором для обработки интервалов в соответствии с логикой видео. Временная сложность равна O(n), n - количество введенных интервалов. (нет необходимости сортировать O(n*log(n))). Сортировка подсчетом выполняется за время O(n), что делает ее асимптотически быстрее, чем алгоритмы сортировки на основе сравнения, такие как быстрая сортировка. ================================================================================================= хорошее место для практики (не стесняйтесь поставить звезду :) ) github.com/IhorVodko/Hackerrank_solutions

  • @haiwiaksbab7362
    @haiwiaksbab7362Ай бұрын

    Интервюер мямлит, вебки закрывают код

  • @noone7796
    @noone7796Ай бұрын

    26 букв, + верхний регистр + числа в 8 символах это 62^8 возможных уникальных значений. разве вероятность коллизии высокая?

  • @oo_ilin
    @oo_ilinАй бұрын

    В вашем варианте словарь хороший и коллизий в принципе нет если генерировать ключ последовательно. Речь шла о другом. Что если взять какой-нибудь алгоритм хеширования, например MD5, то у него длина 32 символа, а сами символы это всего лишь шестнадцатиричная система: 0-9A-F. Так как наша задача сделать короткую ссылку, то если мы от md5 отрежим 8 символов, то будет очень высокая вероятность коллизии. Ну и в интервью я подталкивал Сашу на то что 8 символов это очень большое число уникальных значений и ключ можно сократить до 6 или 7 символов.

  • @aleksandr_t
    @aleksandr_t3 күн бұрын

    @@oo_ilinКажется для того, чтобы ответить на этот вопрос, стоило понять какие конкретно символы у нас есть (алфавит), допустим если алфавит 72 (26 uppercase/lowercase, 10 цифр и 10 спец символов), то нам нужно как раз таки 6 символов (log72(10^10), 10^10 - потому что у меня получилось 12 * 10^9 ссылок за 10 лет, что примерно равно 10^10). Ну и блочный CRC как раз таки идеально подходит под эту задачу. Вообще задача хоть и тривиальная на первый взгляд, но может проверить глубокие знания и даже умение считать

  • @noone7796
    @noone7796Ай бұрын

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

  • @oo_ilin
    @oo_ilinАй бұрын

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

  • @comparison9436
    @comparison9436Ай бұрын

    Чел идет на тим лида, использует сортировку и говорит скорость линейная🤦🏻 как их вообще рассматривают с такими знаниями?

  • @Miclell
    @MiclellАй бұрын

    Как можно распинаться пол часа при решении столь лёгкой задачи то?

  • @user-zp7ty5yh7w
    @user-zp7ty5yh7wАй бұрын

    Вы идиот?

  • @HeczZots
    @HeczZotsАй бұрын

    в цикле будет паника если в матрице пустые массивы без элементов

  • @user-zl1zv9wi3m
    @user-zl1zv9wi3mАй бұрын

    Вопрос к Авито. А что у вас за разработчики такие, что доказывают мне, что при передаче ссылки на структуру в метод, на новый стектрейс помимо передачи ссылки происходит еще и копирование на куче! Был у вас на собеседовании (N этапов) и на кодинге после такого не знал что ответить. А позиция у человека была далеко не старший =)

  • @user-uv8ll6bl7t
    @user-uv8ll6bl7tАй бұрын

    Во 2й задаче можно уйти от for: в store хранить актуальные позиции встреченных символов и двигать левый указатель сразу на старый + 1, если символ уже встречался и его позиция > текущего левого. Позиции всегда обновляем

  • @romanarxxy
    @romanarxxyАй бұрын

    18:19, ну я бы не сказал что 2 ответа скорее, abc, bca, cab, abc, 4 ответа, получается, разве не так?

  • @user-nl7fw3yp8p
    @user-nl7fw3yp8pАй бұрын

    так сосредоточились на очепятках, что забыли вызвать анонимную горутину в конце)

  • @dimama1551
    @dimama1551Ай бұрын

    Наш брат головами таких в школе мел с доски вытирал

  • @user-cs3db6ct2o
    @user-cs3db6ct2oАй бұрын

    Я б обернул select в for, потому что вместо долгого ответа получили ошибку отмены таймаута. Как была низкой стабильность метода, так и осталась.

  • @lauhG3
    @lauhG321 күн бұрын

    зачем? ты в селекте ждешь канал который быстрее сработает. Там нету смысла обрабатывать другой код в этот момент

  • @young_flex3077
    @young_flex3077Ай бұрын

    16:35 ну все задачу с первой проходки не решил, в яндекс не берем

  • @young_flex3077
    @young_flex3077Ай бұрын

    6:11 Володька, что с лицом, совсем уже на юродивого стал похож со своими алгоритмами. Выйди на улицу, с детишками погуляй

  • @iamo0
    @iamo0Ай бұрын

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

  • @iamo0
    @iamo0Ай бұрын

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

  • @user-je8yv6gq7o
    @user-je8yv6gq7oАй бұрын

    Это нумерология какая то что ли? Или астрология?

  • @user-fb6wy6sq6o
    @user-fb6wy6sq6oАй бұрын

    Какие map? Вектора надо использовать во второй задаче. С этими map до 100 символов алфавита вектор быстрее будет тупо из за того, что проц хотя бы закешировать значения себе сможет. В map элементы памяти по разным адресам находятся. Это очень медленно.

  • @user-cg7jr2kt4l
    @user-cg7jr2kt4lАй бұрын

    В задаче про мердж каналов мы возвращаем закрытый канал. Что нам потом делать с закрытыми каналом? На 7 строчке мы всегда будем виснуть, потому что из этого канала никто не читает. Примерно код должен выглядеть так; out := make(chan int) defer close(out) go func() { // Код записи из всех каналов в out } return out

  • @user-cg7jr2kt4l
    @user-cg7jr2kt4l2 ай бұрын

    Чувак вообще не понимает основы программирования и компьютер сайнс, какой ему junior ему бы ещё годик поучиться

  • @spinacker16
    @spinacker162 ай бұрын

    дали тимлиду два изяна... а мне хард впаяли с дп на 50 строк кода.

  • @tsttst3179
    @tsttst31792 ай бұрын

    Вроде на собеседованиях в яндекс задачи сильно сложнее спрашивают. Или это не так?

  • @poezdun
    @poezdun2 ай бұрын

    А вы никогда не задумывались - нахер так жить? Исполнять код в уме, париться над подкапотными гвоздями? Убогие гошники...

  • @funnyduck6326
    @funnyduck63262 ай бұрын

    Спасибо большое, интересное собеседование и хорошего уровня кандидат))

  • @user-zi3er5oi5y
    @user-zi3er5oi5y2 ай бұрын

    Именно из-за таких собеседований я каждый раз отказываю рекрутерам яндекса

  • @calculaction
    @calculaction2 ай бұрын

    Полезно! Жду ещё! пс: на опечатки время я бы не тратил и на кучу лишних слов о кружках и к!отиках (имхо)^^

  • @murad_shafii
    @murad_shafii2 ай бұрын

    поддерживаю