Platform9 Systems Опыт собеседования
Часть A: Оценка перед собеседованием (3-4 дня виртуально)
1. После заполнения регистрационной формы каждый из нас получил по почте формулировку проблемы для реализации функции опережающего ввода, аналогичной поиску в Google для заданного набора входных данных, и регулярного выражения для шаблона, который нужно найти.
2. Нам дали примерно 3 дня на то, чтобы выполнить и отправить задание, используя любой подходящий для него язык.
3. Я реализовал то же самое с помощью C ++ со встроенной библиотекой регулярных выражений для сопоставления с шаблоном.
4. Я сосредоточился на том, чтобы сначала сделать код как можно более модульным и в то же время использовать доступные функции, такие как классы, объекты и функции, чтобы упорядочить код с надлежащим контролем доступа.
5. После этого я написал несколько комментариев, выделив важные части программы, и изменил их на программу, управляемую с помощью меню.
6. Это поможет человеку, просматривающему код, понять ход вашего кода, и в то же время заставить его / ее признать, что вы можете предоставить больше возможностей, например, изменить шаблон регулярного выражения или набор входных данных, дать возможность просмотреть текущий шаблон регулярного выражения. , так далее.
7. Я отправил фрагмент кода вместе со скриншотами выходных данных для заданных ими тестовых примеров, а также рассмотрел некоторые угловые случаи, например, если в качестве входных данных для шаблона задан только '*', тогда в выходных данных должны отображаться все слова. Совет: всегда прилагайте скриншоты своих результатов для таких заданий. Иногда рецензенты могут не успеть просмотреть весь ваш код. Но если они увидят, соответствуют ли результаты для различных случаев их ожиданиям, это, безусловно, полезно.
Учитывая вышеупомянутую заявку, я был включен в шорт-лист для интервью, которое изначально было упомянуто как два отдельных интервью. Я немного нервничал, так как впервые попал в шорт-лист на собеседование.
Вот ссылка на мою заявку в CPP:
[https://onecompiler.com/cpp/3wmjzcnqk]
PS Основываясь на разговорах с другими людьми, которые подали заявку за пределами кампуса, эта постановка задачи различается для каждого набора сотрудников. Таким образом, хотя вы можете получить другую формулировку проблемы, процесс представления вашего кода эффективным образом останется прежним.
Do not memorize the code. Understand how it works.
Часть B: Интервью 1 (35 минут) - Технический раунд
1. Интервьюер сначала задал мне вопросы о моем опыте стажировки, который был упомянут в моем резюме. Вопросы варьировались от технологий, используемых в течение периода, а также задач, выполненных для того же самого.
2. Затем обсуждение перешло в сторону проверки моих знаний DS и алгоритмов с помощью базовых вопросов.
3. Интервьюер предложил перевернуть односвязный список.
4. Я упомянул, что одним из моих подходов было бы изменение указателей, связанных со структурой связанного списка, но, услышав это, он попросил меня показать мой экран и объяснить это с помощью Блокнота.
5. Я приступил к объяснению процедуры. Интервьюер попросил меня придумать другой подход, который не предполагает изменения указателей или изменения связанного списка. Я сказал ему, что могу перемещаться по связному списку, одновременно сохраняя его в массиве. А потом я распечатал массив в обратном порядке.
6. Он попросил меня придумать другой подход, который не предполагает его хранения в другой структуре данных. В то же время он дал мне подсказку, когда его спросили об использовании рекурсии.
7. Я сказал ему, что я буду использовать системный стек, чтобы сначала протолкнуть все элементы связанного списка один за другим, используя рекурсию, а затем вытолкнуть стек, чтобы получить элементы в обратном порядке. Он казался удовлетворенным таким ответом.
8. После этого интервьюер спросил меня о моем проекте последнего года, упомянутом в резюме. Я объяснил наш план относительно того же. Это был конец первого интервью.
Часть C: Интервью 2 (45 минут) - Технический раунд
1. Это был отборочный тур. Интервьюер упомянул, что он работал и одновременно просматривал мое резюме и задавал вопросы.
2. Он попросил меня представиться и упомянуть некоторые из моих интересов, связанных с инженерией.
3. После этого разговор перешел на мою стажировку и проектный опыт. Он хотел знать о задачах, которые я выполнял во время стажировки, а также о том, о чем был наш проект BE. Поскольку были задействованы некоторые протоколы IoT, он спросил меня, почему требуются конкретные протоколы вместо традиционных протоколов, используемых для таких приложений, как JSON через HTTP.
4. Затем интервьюер задал мне задачу DS: был дан массив, и результат заключался в том, чтобы сохранить произведение оставшихся элементов массива для каждого индекса в другом массиве.
5. Я приступил к написанию псевдокода в Блокноте, кратко объяснив свой подход. Первоначально в моем коде были некоторые ошибки, такие как использование переменной внешнего цикла в другом цикле в неправильной позиции или отсутствие условия для пропуска текущей позиции индекса.
6. Но интервьюер намекнул по этому поводу, и я исправил это. Тем не менее, мое решение было неправильным, потому что я не сбрасывал значение продукта до 1 перед следующей итерацией. Я понял это, и в конце концов мой код стал логически правильным.
7. Затем интервьюер спросил, какова временная и пространственная сложность проблемы и можно ли улучшить временную сложность. Совет: не представляйте полиномиальные сложности, такие как O (n ^ 2), в качестве решений, если это необходимо. Потому что они неэффективны для обработки больших данных.
8. Следующая часть касалась моих знаний команд Linux. Я упомянул некоторые, и он спросил меня о других командах, таких как -
- netstat - Если приложение должно запускаться на определенном порту, то как мы можем проверить, используют ли какие-либо другие приложения тот же порт, и освободить порт.
- chmod - Если для файла установлены разрешения на ' chmod 777', то что означает каждый бит числа 777 для чтения, записи или изменения данных соответственно?
9. Далее обсуждались различия между разными языками программирования, такими как C ++ / Java / Python. Мне задали несколько вопросов о том, какой язык подходит для конкретного приложения и почему.
10. После этого интервьюер вкратце задал мне несколько основных вопросов о СУБД, таких как свойства ACID. Он спросил меня, знаю ли я о концепции конечной согласованности, и попросил объяснить ее.
11. Интервьюер спросил меня, есть ли у меня вопросы. Я спросил о различных ролях, доступных для более свежих, таких как Dev / DevOps, разнице между ними и о том, будет ли задействован какой-либо период обучения. На этом второе интервью закончилось.
По результатам моих выступлений в первых двух турах мне сообщили, что будет третий (заключительный) тур. Я ожидал, что это будет раунд HR, но это был технический раунд.
Часть D: Интервью 3 (25 минут) - Технический раунд
1. Обсуждение началось с того, что я кратко рассказал о себе и областях, в которых я интересуюсь.
2. Интервьюер спросил меня, какие предметы мне нравятся больше всего - я упомянул, что мне нравятся встраиваемые системы, а также операционные системы (ОС). Он спросил меня, хочу ли я поговорить об ОС. Я ответил утвердительно. Совет: выберите здесь только тот предмет, который вам удобен и который ранее изучался во время курсовой работы. Потому что, если вы не ответите на основные вопросы, интервьюер может подумать, что вы лжете. Это отказ с вероятностью 90%.
3. Вопросы касались программирования сокетов - от концепции потока и его отношения к процессу. Был представлен сценарий отношений между производителем и потребителем, и меня попросили написать для него псевдокод с использованием потоков и очереди для операций.
4. Я представил базовый подход с операциями постановки и удаления из очереди как для стороны производителя, так и для стороны потребителя. Это снова было в Блокноте. Имейте привычку практиковаться в написании псевдокодов, если собеседование виртуальное, потому что здесь может помочь только представление вашего подхода для понимания другими. Если это лично, потренируйтесь писать на доске.
5. Мне не задавали никаких подробных вопросов по этому поводу, возможно, они хотели просто проверить, могу ли я работать с такими вариантами использования, когда они представлены как часть роли Dev / DevOps.
6. Затем меня спросили, знаком ли я с концепцией блокировок и / или взаимоблокировок в операционной системе. Затем интервьюер спросил меня, может ли простая программа на C / C ++ с циклом while (1) привести к тупиковой ситуации. Я дал неверный ответ, но сделал то же самое уверенно. Интервьюер спокойно объяснил, что это не так, и попросил меня помнить об этом. На самом деле я хотел сказать, что если от этой программы зависела какая-то другая программа, это могло бы привести к тупику, поскольку первый процесс не завершился - но вы почти всегда понимаете такие вещи после завершения вашего собеседования.
7. Интервьюер спросил меня, есть ли у меня вопросы. Я упомянул, что мне больше подходит роль разработчика, учитывая мой предыдущий опыт стажировки, который он также предложил во время нашего обсуждения, поскольку DevOps охватывает обширные области и требует некоторого опыта.
8. Это был конец последнего интервью.
Результат: выбран
Основываясь на моих выступлениях в этих трех интервью, вечером того же дня мне сообщили, что меня выбрали на роль «младшего разработчика программного обеспечения» в Platform9 Systems India Pvt. Ltd. Эта поездка была проведена через TPO нашего колледжа как процесс приема на работу в кампусе, поэтому результат мог быть получен немного раньше, чем процесс за пределами кампуса. Тем не менее, я хотел бы отметить, что они полностью прозрачны в процессе приема на работу. Любые мелочи, например, неработающая ссылка на встречу или сомнения, немедленно устраняются отделом кадров. Они позаботились о том, чтобы единственное, на чем мне нужно было сосредоточиться, - это интервью.
В качестве плюса компания решила увеличить пакет на 25% по сравнению с первоначальным предложением для всех пяти студентов, выбранных из нашего колледжа после собеседований. Нам также предложили трехмесячную стажировку, чтобы помочь с общим обучением и глубже погрузиться в культуру работы в стартапе. Я был в восторге, но меня больше интересуют не деньги, а изучение новых вещей с непрерывным процессом обучения. Так что это отличное начало для меня.
Always remember that if its your day, nobody can stop you. You just have to give your best.
Удачи всем. Я надеюсь, что смогу помочь вам разобраться в полном процессе приема на работу в Platform9 Systems.
Вниманию читателя! Не прекращайте учиться сейчас. Освойте все важные концепции DSA с помощью самостоятельного курса DSA по приемлемой для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию . Если вы готовы, проверьте свои навыки с помощью серий тестов TCS, Wipro, Amazon и Microsoft.