Какую технику вы бы рекомендовали при просмотре С++ для интервью?

У меня есть опыт работы на С++ на 2/3 года, но я потратил большую часть своей карьеры на Java. Я собираюсь пойти на собеседование для роли программирования на С++, и я думал о том, как наилучшим образом очистить свой С++, чтобы я не уловил какие-то неудобные вопросы. Что бы вы порекомендовали?

Ответ 1

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

Я заметил, что во время интервью с С++ в центре внимания часто задают вопрос о том, как это работает:

  • Как реализованы виртуальные методы?
  • Что происходит, когда вы вызываете new - как распределяется память?
  • В чем разница между структурой и классом?
  • Почему вы должны пометить свой класс d'tor как виртуальный?

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

Посмотрите Часто задаваемые вопросы по стилю и технике С++

Ответ 3

Как интервьюируемый, я полагаюсь на опыт. Как интервьюер, мой любимый (и часто только) вопрос на С++ - "Расскажите мне о конструкторе копирования". Удивительно, как много путей открывается, и как мало людей знают о них - это может сделать для очень короткого интервью. Если собеседник проходит мимо этого, я затем спрашиваю: "Какие ваши любимые книги на С++ и почему?"

Ответ 4

Знай язык. Вы можете попытаться предсказать, какие вопросы они зададут, но С++ может означать много разных вещей в зависимости от того, кого вы спрашиваете. Для некоторых людей это неуклюжая Java, и все вопросы будут касаться динамического распределения памяти, виртуальных функций и наследования. Для других это все об RAII и избегает управления памятью.

Некоторые считают, что STL является самым важным, чтобы задавать вопросы, а некоторые, возможно, захотят вникать в ваши знания некоторых из более тонких аспектов языка (от конструктора копирования, о котором упоминал Нил в своем ответе, к обычным случаям поведения undefined или безопасности исключений)

Это большой, сложный язык, и люди могут задавать много разных вопросов. Если у вас есть представление о том, в каких областях они могут сосредоточиться, вы вряд ли достигнете больших результатов с помощью последней минуты.

Ответ 6

Должен иметь С++-книги для каждого продвинутого программиста:

Ответ 7

Это зависит от того, что я пошел на работу в определенную компанию крупных игр, и 90% вопросов были вопросами по графике и микро-оптимизации (это было для роли тестирования С#, самого глупого теста моей жизни!).

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

В любом случае, я бы освежил ваш BOOST, как пример хорошей библиотеки и знания вашего указателя.

Ответ 8

Я бы просто рассмотрел основы языка: убедитесь, что вы помните, как создавать классы, знать, когда передавать его по ссылке и когда проходить через указатель, и почему вы хотите сделать это, а не передавать по значению, Почему вам нужен виртуальный метод, и каковы причины, по которым используются стили стилей С++ и приведения стиля C, когда вам понадобится конструктор копирования, такие вещи, как

Я бы предположил, что поможет вспомнить историю войны или два о С++: ( "Человек, правильность константы трудно!", "поэтому я однажды вступил в драку с коллегой/учителем об этой более тонкой точке С++, и я узнал, что.."

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

Ответ 9

"напишите функцию, которая подсчитывает количество 'on' бит в байте

который никогда не стареет...

Я видел крутой способ сделать это один раз, чтобы подсчитать все биты в 32-битном DWORD, как 4 или 5 операций!

Если бы я был интервьюером в этот день и в возрасте, я бы спросил: "Что вы знаете о кодировании без кодов?"