Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Будет очень круто, если ребята ориентируются в следующих вопросах (можно спрашивать не все, а что вам лично больше нравится):
- 1) Алгоритмы/структуры:
- — как найти 2 повторяющихся числа в миллионе чисел? Оценить сложность (знание O-семантики)
- — как можно из двух стеков сделать очередь? (бессмысленная задача, но человек должен понимать что такое стек и очередь, а то мало ли. если не понимает, наверное можно заканчивать на этом ¯\_(ツ)_/¯)
- — как развернуть односвязный список? (тоже бессмысленная, ну вдруг вам больше списки нравятся)
- 2) Любой язык:
- — как вызвать ошибку переполнения стека? (рекурсия с достаточной глубиной, например)
- — декодирование длин серий: «2q3w» ==> «qqwww», алгоритм тут элементарный, но что может пойти не так? (хочется чтобы человек понимал что, во-первых, не всякое число влезет в его «int», а во-вторых если делать это декодирование втупую, то рано или поздно такую программу убьет Oom-killer за пережор памяти)
- 3) Консоль/регулярки — было б круто дать свой ноут и посмотреть, но можно наверное и на словах:
- - взять любой файл с грепмейлога, дать задачку: вывести в порядке возрастания сколько какой айпишник/емейл/урл/http_code/что_угодно встречался (сочетание grep,sort,uniq и проч.)
- - пробежаться по всем файлам в каталоге и поменять табы на пробелы (что-то типа find src -type f -name "*.py" | xargs perl -i -pe '/\t/ /g')
- 4) Система/Сеть:
- — kernel mode/user mode? примеры когда программа находится в user mode и когда в kernel mode
- — что такое context switch процессора и чем оно плохо? если расскажет, что вымываются кеши - хорошо. если расскажет что вымывается TLB — отлично.
- — как узнать, кто слушает на локалхосте порту 80?
- — как узнать, слушает ли кто на удаленном хосте на порту 80?
- — сколько исходящих tcp-коннектов можно открыть с одного endpoint и почему?
- 5) БД:
- - что такое индекс, транзакия? как может быть реализован индекс (всякие там tree, хеш-таблицы, LSM)
- - почему много индексов - это плохо?
- - как можно пошардить что-нибудь, например емейлы юзеров на 512 шардов?
- 6) Архитектура: ну например надо спроектировать очередь:
- — какое будет АПИ у очереди? (какие концы? http/не http? почему? json/не json? почему)
- — что делать с задачей, которую взял воркер, но не подтвердил исполнение? как это делать?
- — что делать, если воркер взял задачу, долго висел, пришел с результатом, когда эту же задачу уже взял другой?
- — если в АПИ был предусмотрен long polling новых задач — круто. если нет, то как его сделать и зачем он нужен?
Advertisement
Add Comment
Please, Sign In to add comment