У меня есть опыт работы на С++ на 2/3 года, но я потратил большую часть своей карьеры на Java. Я собираюсь пойти на собеседование для роли программирования на С++, и я думал о том, как наилучшим образом очистить свой С++, чтобы я не уловил какие-то неудобные вопросы. Что бы вы порекомендовали?
Какую технику вы бы рекомендовали при просмотре С++ для интервью?
Ответ 1
Если у вас достаточно времени, попробуйте написать приложение с использованием С++ - перейдите по основам, поэтому, когда вас попросят показать навыки кодирования, вы сможете свободно писать код.
Я заметил, что во время интервью с С++ в центре внимания часто задают вопрос о том, как это работает:
- Как реализованы виртуальные методы?
- Что происходит, когда вы вызываете
new
- как распределяется память? - В чем разница между структурой и классом?
- Почему вы должны пометить свой класс d'tor как виртуальный?
Я думаю, что хороший способ узнать все это - прочитать хорошую книгу на С++ - если у вас есть живот, вы можете читать Книга Страуступа - но там должны быть другие книги, столь же хорошие (с меньшим количеством страниц в них).
Ответ 2
Эффективный С++ от Scott Meyers
Ответ 3
Как интервьюируемый, я полагаюсь на опыт. Как интервьюер, мой любимый (и часто только) вопрос на С++ - "Расскажите мне о конструкторе копирования". Удивительно, как много путей открывается, и как мало людей знают о них - это может сделать для очень короткого интервью. Если собеседник проходит мимо этого, я затем спрашиваю: "Какие ваши любимые книги на С++ и почему?"
Ответ 4
Знай язык. Вы можете попытаться предсказать, какие вопросы они зададут, но С++ может означать много разных вещей в зависимости от того, кого вы спрашиваете. Для некоторых людей это неуклюжая Java, и все вопросы будут касаться динамического распределения памяти, виртуальных функций и наследования. Для других это все об RAII и избегает управления памятью.
Некоторые считают, что STL является самым важным, чтобы задавать вопросы, а некоторые, возможно, захотят вникать в ваши знания некоторых из более тонких аспектов языка (от конструктора копирования, о котором упоминал Нил в своем ответе, к обычным случаям поведения undefined или безопасности исключений)
Это большой, сложный язык, и люди могут задавать много разных вопросов. Если у вас есть представление о том, в каких областях они могут сосредоточиться, вы вряд ли достигнете больших результатов с помощью последней минуты.
Ответ 5
- Пройдите вопросы по SO с помощью С++, теги OOP.
- Часто задаваемые вопросы по С++
Ответ 6
Должен иметь С++-книги для каждого продвинутого программиста:
-
Herb Sutter Исключительный С++: 47 Пазлы проектирования, проблемы программирования и решения
-
Herb Sutter Более исключительный С++: 40 новых головоломок, проблем программирования и решений
-
Herb Sutter Исключительный стиль С++: 40 новых головоломок, проблем программирования и решений
-
A.Alexandrescu and Herb Sutter Стандарты кодирования С++: 101 Правила, рекомендации и лучшие практики
-
Скотт Майерс Эффективный С++: 55 конкретных способов улучшить ваши программы и проекты
-
Скотт Мейерс Более эффективный С++: 35 Новые способы улучшения ваших программ и дизайнов
- Скотт Мейерс Эффективный STL: 50 конкретных способов улучшить использование стандартной библиотеки шаблонов
Ответ 7
Это зависит от того, что я пошел на работу в определенную компанию крупных игр, и 90% вопросов были вопросами по графике и микро-оптимизации (это было для роли тестирования С#, самого глупого теста моей жизни!).
Однако, если вы собираетесь использовать обычную роль для настольных приложений, вас, вероятно, спросят о пользовательских интерфейсах, или если вы собираетесь использовать какую-то роль встроенных вычислений, вас, скорее всего, спросят об оптимизации и памяти управление.
В любом случае, я бы освежил ваш BOOST, как пример хорошей библиотеки и знания вашего указателя.
Ответ 8
Я бы просто рассмотрел основы языка: убедитесь, что вы помните, как создавать классы, знать, когда передавать его по ссылке и когда проходить через указатель, и почему вы хотите сделать это, а не передавать по значению, Почему вам нужен виртуальный метод, и каковы причины, по которым используются стили стилей С++ и приведения стиля C, когда вам понадобится конструктор копирования, такие вещи, как
Я бы предположил, что поможет вспомнить историю войны или два о С++: ( "Человек, правильность константы трудно!", "поэтому я однажды вступил в драку с коллегой/учителем об этой более тонкой точке С++, и я узнал, что.."
Если задание для задания С++ начального уровня (которое должно быть с вашим ограниченным опытом на С++), я бы предположил, что это будет хорошо, и что вы (надеюсь) не получите слишком глубокое впечатление без весла/старший инженер, который поможет вам.
Ответ 9
"напишите функцию, которая подсчитывает количество 'on' бит в байте
который никогда не стареет...
Я видел крутой способ сделать это один раз, чтобы подсчитать все биты в 32-битном DWORD, как 4 или 5 операций!
Если бы я был интервьюером в этот день и в возрасте, я бы спросил: "Что вы знаете о кодировании без кодов?"