Я готовлюсь к роли системного администратора (linux) в большой компании (топ-10 компаний), и одним из необходимых условий является знание таких языков, как perl, python или Ruby. У меня телефонное собеседование, которое предполагает совместное использование редактора с интервьюером. Какие упражнения по кодированию я могу ожидать от телефонного интервью или обычного собеседования?
Я использовал оболочку для большинства своих повседневных задач и иногда Perl и python для более крупных задач. Теперь я не жду, что они спросят
Напишите сценарий, который синхронизирует пользователей AD с LDAP.
Я не думаю, что структуры данных, алгоритмы или вопросы сортировки относятся ко мне? Можете ли вы привести примеры вопросов, связанных с кодированием системного администратора?
Я не думаю, что структуры данных, алгоритмы или вопросы сортировки относятся ко мне?
Почему ты так не думаешь? Мэйб, не зная различий между O (n) и O (1) и O (log n), но для написания хорошего кода - а скрипты - это код - определенно необходимо базовое понимание этих трех вещей.
Когда я вмешался моя текущая работа Мне задали хотя бы следующие вопросы (возможно, я забыл некоторые). Мне разрешили использовать язык по своему выбору.
Некоторые особенности системного администратора:
Я не люблю, когда собеседование кажется экзаменом. Это должно быть больше связано с тем, чтобы выяснить, подходит ли человек в целом для должности и для организации, а не столько о том, чтобы поставить собеседника на место. Конечно, хороший системный администратор должен быть в состоянии создать полезный сценарий под давлением, но это не то же самое давление.
Поэтому, вместо того, чтобы задавать серию вопросов, я был бы более склонен немного поболтать о предпочтениях языка сценариев, культуре и так далее. (Это должно быть особенно эффективно для Python, Perl или Ruby!) Как правило, этого должно быть достаточно, чтобы почувствовать, что интервьюируемый помолвка с выбранным языком или языками, что более важно, чем способность ответить на тщательно подобранный умный вопрос прямо на бумаге.
Вы всегда можете попросить прислать образцы сценариев по электронной почте после собеседования. (А затем вы можете погуглить кусочки кода, чтобы узнать, не является ли он плагиатом ....)
По моему опыту, вопросы системного администратора на собеседовании часто основываются на обработке файлов. Например, «возьмите этот файл журнала и извлеките уникальные IP-адреса вместе со счетчиком каждого из них» - вот что меня не так давно спросили в интервью.
В FizzBuzz Тест тоже остается одним из любимых вопросов программирования.
Другие предоставили несколько отличных примеров упражнений, с которыми вы, возможно, столкнетесь, поэтому я оставлю все как есть. Тем не менее, я хочу упомянуть, что так же важно, как запуск кода, сделать его поддерживаемым - это, возможно, более важно в sysadmin-land, чем где-либо еще, поскольку мы из тех людей, которые обычно пишут сценарий, а затем забывают о нем годами, пока что-то не сломается, в отличие от разработчиков приложений, которые проводят много времени в тесном контакте со своей кодовой базой и могут привыкнуть к ее особенностям. Я нанял на должности системного администратора, и эту ясность я ищу в примерах кода.
Разборчивые имена переменных в соответствии с последовательной схемой именования; достаточное комментирование; отделение конфигурации от кода (многие мои коллеги, занимающиеся программированием на Perl, имеют очень плохую привычку хранить конфигурацию своих сценариев в больших строковых скалярах с разделителями-запятыми, опечатка в которой превращает то, что должно было быть предупреждением, в полноценный беспорядочный кубик ); и т. д. очень рекомендую Дамиан Конвей "Лучшие практики Perl" в качестве ссылки в этой области. Надеюсь, поможет; удачи с интервью!