Рубрики

Интервью на выносливость (на кампусе)

Endurance International Group посетила наш колледж для профиля разработчика программного обеспечения. Он состоял из 5 раундов (MCQ, CODING, TECHNICAL 1, TECHNICAL 2, HR).

Раунд 1 (MCQ раунд 45 минут):

Было 60 вопросов с 4 вариантами ответов. Вопросы были уровня GATE и имели +3 за правильный и -1 оценку за отрицательный ответ. Вопросы охватывали такие темы, как OOPS, Анализ алгоритмов, Сеть, СУБД и ОС. Мне удалось «пробовать» 54 из них и выйти в первый круг среди примерно 70 других участников. Около 25 человек были включены в шорт-лист для следующего тура.

Раунд 2 (Кодирование):

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

Реализуйте хранилище значений ключей в памяти со следующими функциями в командной строке :

  • Программа должна поддерживать следующее
  • Курсив — Команда, набранная пользователем
  • Полужирный — Ответ из командной строки
CommandDescriptionExample
set key value [ttl]set the key with specifiedset hello 5
value. optional ttl in secondsdone
can be specified. if ttl isset test data
specified, the key shoulddone
expire after ttl.set ttl_test 10 5
done
get keyget the key if found in dataget hello
store. or return nil.5
get world
nil
get test
data
flushflush all the keys flush

flushing done

get hello

nil

savesave all keys to a file save

saved to data.dat

load filenameload keys from a file load data.dat

loading done

Bonus PointResolve conflict when set isSet hello 5
done over same key twice.Set hello 6
Get hello
Resolve conflict when set is5 6
done over same key twiceSet ttl_test 5 10
with ttlSet ttl_test 6 20
Get hello
5 6
After 10s
6

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

Получая данные, я проверил, является ли временная метка истечения меньше текущей временной метки, затем вывел nil (выход уже истек), иначе покажу данные.

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

Для бонусной части Вы можете использовать Связанный список элементов данных.

Результаты были рассмотрены по крайней мере 2 человека.

3 человека прошли в следующий раунд, включая меня.

Раунд 3 (Технический 1):

В жюри было два судьи, и раунд занял около 30 минут. Сначала они спросили меня о моих проектах и какой из них был моим любимым. Я описал все свои проекты машинного обучения и приложений для Android. Они также заметили веб-проекты в моих стажировках и были заинтересованы в них.

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

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

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

Как обеспечить доступ пользователя к сайту только с одного устройства?

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

Как заблокировать DDOS-атаки, чтобы несколько подключений не создавались за один и тот же период времени одним и тем же пользователем?

Я предложил использовать отдельный облегченный сценарий для проверки количества соединений, установленных с общедоступного IP-адреса пользователя в течение определенного периода времени (выполнение цикла while со счетчиком), прежде чем он сможет получить доступ к серверным сценариям. Они поинтересовались уровнем, на котором я буду использовать этот скрипт, так как нам нужно было прекратить соединение перед верхними уровнями OSI.

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

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

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

Напишите свой опыт интервью или отправьте его по электронной почте на адрес contrib@geeksforgeeks.org

Рекомендуемые посты:

Интервью на выносливость (на кампусе)

0.00 (0%) 0 votes