25 классических вопросов, которые HR-ы задают программистам на собеседованиях

Образовательный портал GeekBrains подготовил подборку вопросов, не зависящих от языка программирования и вашего опыта.

25 классических вопросов, которые HR-ы задают программистам на собеседованиях

Классическое собеседование состоит из предварительного разговора HR и соискателя, выполнения тестового задания, личного диалога с менеджером по подбору персонала и далее – с техническим специалистом. Во время предварительного разговора вас спросят об опыте работы, попросят прислать портфолио, узнают про ваши амбиции, цели, возможность переехать в другой город. Далее, если вы должным образом отнесётесь к выполнению тестового задания, а ваше резюме устроит менеджеров, вы приедете в офис компании и почти наверняка услышите многое из следующих вопросов.

Категория общих вопросов

В прошлом десятилетии вы могли прийти на собеседование и услышать вопрос: «Что такое программирование?» Трудно представить человека, который в этот момент не растеряется, а многие ещё и разочаруются в будущем работодателе. Однако сегодня подобного непрофессионализма среди HR мало, но пространных вопросов по-прежнему хватает. О них речи не пойдёт, сразу перейдём к тем, которые имеют очевидные ответы:

  • Что такое высокоуровневый и низкоуровневый язык программирования?
  • Что такое полнота языка по Тьюрингу?
  • Какие есть операторы цикла в вашем языке и методы организации цикла без операторов?
  • Что такое компилятор и интерпретатор?
  • Какие бывают типы констант?
  • Дайте определение императивным, функциональным и процедурным языкам программирования. Приведите по 2-3 примера каждого.
  • Что такое методология программирования? Что представляет из себя Agile.
  • Жизненный цикл программы – опишите или изобразите его.
  • Что такое модульное программирование, в чём его плюсы и минусы.
  • Когда вышла последняя версия вашего языка, какие основные изменения и нововведения?

Подобного рода вопросы направлены на выявление не только хорошо обученных программистов, но и тех, кто живёт темой кодинга, интересуется деталями и трендами.

Методы сортировки

Знание разных методов сортировки и их применяемости позволяет разработчику эффективнее обрабатывать данные. HR-менеджеры, в свою очередь, любят эти вопросы просто потому, что очень многие новички в мире программирования знают лишь пузырьковый метод, да и то теряются, когда слышат это название. А ведь есть ещё несколько подходов. Взгляните, сможете ли вы ответить на все эти вопросы:

  • Изобразите алгоритм сортировки методом пузырька.
  • Изобразите алгоритм быстрой сортировки.
  • Изобразите алгоритм сортировки методом вставки.
  • Изобразите алгоритм сортировки методом слияния.
  • Изобразите алгоритм поразрядной сортировки.

Алгоритмы поиска и замены

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

  • Напишите программу поиска минимума и максимума в массиве из 100 чисел.
  • Напишите программу поиска пропущенного значения в массиве целых чисел от 1 до 100. Текущий размер массива – 99 чисел, рассмотрите варианты, когда он уже отсортирован или ещё нет.
  • Напишите программу поиска повторяющихся значений в массиве целых чисел от 1 до 100. Текущий размер массива – 101 число, рассмотрите варианты, когда он уже отсортирован или ещё нет.
  • Напишите программу «разворота» массива целых чисел. То есть первое и последнее меняются местами, второе – с предпоследним и так далее. Без использования специальных библиотек.
  • Напишите программу вставки пропущенного или удаления дублированного значения в массиве целых чисел от 1 до 100 без использования специальных библиотек.

Сами по себе описанные задания для написания программ далеки от понятия «сложные». Однако подготовленный HR или технический специалист может попросить вас всё подробно объяснить и поискать несколько способов решения. Часто – тот, который нравится собеседующему больше всего. Надо быть к этому готовым, и, если что-то не вспомнили, не паниковать, а спокойно начать рассуждать вслух, показав ход мысли.

Работа со строками

Несмотря на простоту, новички часто допускают ошибки именно в работе со строками: то неправильно отсчитают номер символа из-за незнания основ, то сравнят значение со ссылкой, то вообще запутаются с совместимостью типов. Добавим сюда немного алгоритмов и получим следующие вопросы:

  • Напишите программу, проверяющую являются ли две строки анаграммами друг друга.
  • Напишите программу проверки строки на проверку наличия только символов или только цифр.
  • Напишите программу, подсчитывающую количество гласных и согласных в строке.
  • Напишите программу, которая вытаскивает из резюме основные данные (ФИО, профессия, город, возраст, стаж работы) и передаёт их в соответствующие массивы для дальнейшей работы. Подсказка: необходимо не только разбить текст, но и удалить недопустимые символы, лишние пробелы, присвоить нужный тип.
  • Покажите несколько методов конкатенации строк и объясните различия в исполнении кода.

Также популярностью пользуются вопросы, аналогичные «массивным»: про поиск дублированных символов, в частности, пробелов, задачки на переворот символов без использования библиотек

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

66K66K открытий
56 комментариев

Какие бывают типы констант?Постоянные и такие "ну я вся такая постоянная"

Дайте определение императивным, функциональным и процедурным языкам Это языки выражаемые через императивы, функции и процедурки
программирования.

Приведите по 2-3 примера каждого.Садись!
Садиться это сгибать колени прижопливая зад к горизонтальной поверхности....
Посадка это сгибания колен, прижопливание зада.

Что такое методология программирования? Это когда пацаны решают что хаос разработки надо обсуздать и придумывают много маленьких под-хаосов.

Что представляет из себя Agile.Гибкий хаос.

Жизненный цикл программы – опишите или изобразите его.Съедается бабло. Оно попадает внутрь компании-организма. Бабло переваривается с помощью фермента времени. А потом тугая колбаса продукта выталкивается из билд сервера компании обрубаясь сжимающимся кольцом дедлайна.

Что такое модульное программирование, в чём его плюсы и минусы.Это когда компания вместо офиса покупает контейнер-бытовку, набивает туда 10 программистов и заставляет их работать за еду. Это модуль. Из плюсов - бизнес маштабируется добавлением контейнеров. Из минусов, стопку больше 5ти в высоту ставить нельзя, нижние заминаются.

Когда вышла последняя версия вашего языка, какие основные изменения и нововведения?в 2016 вышел хотфикс моего языка. У слова "кофе" появился средний род, а "йОгурт" стал "йогУртом".

Ответить

А потом тугая колбаса продукта выталкивается из билд сервера компании обрубаясь сжимающимся кольцом дедлайна.

Гениально.

Ответить

Прижопить

Ответить

До чего же потешная метафора про сфинктер дедлайна, ставлю леголаса этому комменту. Статью не читал.

Ответить

Сжимающееся кольцо дедлайна - это прекрасно. Очень точно объясняет качество софта последних лет.

Ответить

Классная статья и обалденный комент😄

Ответить

HRы такого нигде не спрашивают, разве что HRом является бывший разработчик.

Но и дурацкие вопросы про Тьюринг-полноту и сортировку вставкой на технических интервью сейчас нечасто встретишь, в основном потому что сами интервьюеры их не знают.

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

В общем какие-то глупости.

Ответить