Mock - собеседование программиста: секция C++

Mock - собеседование от ведущего разработчика из Ozon секции С на платформе ⠀ - потренируйтесь проходить собеседования с разработчиками из ведущих компаний и получите подробный отзыв о том, на какую зарплату и грейд вы можете расчитывать, или над чем вам еще стоит поработать! ⠀ Потренироваться: ⠀ [[ Отзыв для кандидата ]] Рекомендовать этого человека на следующий этап? ДА Каковы были его технические навыки? 4/5 Каковы были его способности решать проблемы? 3/5 Каковы были его коммуникативные способности? 4/5 ⠀ За время собеседования решили три задачи(NewWithException, StructLikeKeyInContainer и DoubleMutexLock), а также начали писать реализацию вектора, но за пол часа смогли написать только лишь один метод push_back. Видно, что у кандидата очень неплохие знания С - знаком с большим количество нюансов в С , с контейнерами тоже все хорошо, но вот с исключениями и многопоточностью было выявлено ряд проблем (по его словам из-за того, что ему на работе с этим практически не приходилось сталкиваться). Также хотелось бы отметить, что кандидат очень медленно и небрежно пишет код, плюс ко всему была замечена небольшая незаинтересованность в том, чтобы начать самостоятельно программировать и небольшая агрессивность в некоторых местах реализации вектора и из-за “недружелюбности“ редактора. ⠀ “NewWithException“ - плохо знаком с иерархией исключений в С , а также гарантией безопасности исключений в С и ясно не понимает, что будет, если выбрасиывать исключения из деструктора. Неплохо знаком с тем, как работает оператор new и что такое noexcept (но не знает, что будет если выбросить исключение из функции, которая помечена, как noexcept). Также неточно представляет то, как сделать, чтобы в процессе реаллокации элементы вектора перемещались, а не копировались. ⠀ “StructLikeKeyInContainer“ - отлично знает, что нужно чтобы использовать пользовательский тип данных в качестве ключа в ассоциативных контейнерах, а также хорошо знаком с внутренним устройством контейнеров в STL. Заметил, что кандидат плохо знаком со структурой данных “Куча“. ⠀ “DoubleMutexLock“ - практически сразу самостоятельно заметил возможный deadlock(но подробные нюансы на счет него не смог самостоятельно описать), также знает про атомарную блокировку нескольких мьютексов(не помнит, что есть для этого в STL), но кандидат не знает, что будет, если несколько раз вызывать lock на одном мьютексе и не знает другие виды мьютексов в STL и спинклоки. ⠀ “Реализация вектора“ - во время программирования заметна была небрежность и плохая структуризация кода, плюс ко всему кандидат очень медленно пишет код, так как за пол часа смогли написать только один метод push_back. Знает что нужно делать, чтобы использовать класс или структуру внутри вектора без дефолтного конструктора. Хотел отметить, что он не очень четко понимал идею size и capacity внутри вектора, а также допускал много багов(хотел бы отметить баги на арифметике указателй). Про подход с vector_base не слышал. ⠀ Рекомендации для кандидата: Прежде всего считаю, что вам стоит развивать навык программирования (под этим подразумеваю скорость реализации выбранных вами решений, так как идеи вы генерируете быстро, а воплощаете их в жизнь очень медленно). Помимо этого на вашем месте я бы уделил дополнительное внимание многопоточному программированию и исключениям, так как в текущих реалиях - это неотъемлемая часть С . В конце хотел бы порекомендовать прочитать книгу “Чистый код“, чтобы ваш код ьыл более компактным и красивым. ⠀ #собеседование #mock_собеседование #interview #mock_interview #собеседование_программиста #programmer_interview #си #си_плюс_плюс #c #cpp
Back to Top