Вопрос интервью; какова основная тема эффективного C++? [закрытый]
На недавнем собеседовании мне задали следующий вопрос:
Как вы думаете, что является главной темой / единственным словом, которое подводит итог эффективной серии C++ от Скотта Мейерса?
Каков будет ваш ответ на этот вопрос?
10 ответов:
В двух старых изданиях собраны советы, особенно полезные для людей, переходящих с языка Си на язык Си++. Использование
3-е издание больше ориентировано на людей, переключающихся с других языков (Java, C# и т. д.) в C++. Он поставляется с советами по шаблонам, шаблонам, безопасности исключений, гораздо более богатой стандартной библиотеке и многим другим темам, о которых люди не думали в 1991 году.new
/delete
вместо того, чтобыmalloc()
/free()
а ОП был совсем новым еще в 1991 году.В принципе, целью Скотта Мейерса всегда было: написать "лучшую вторую книгу на C++, чтобы купить" - не то, чтобы научить вас языку, но чтобы стать настоящим профессионалом. Он хотел перечислить " 50 наиболее важных советов для практики C++".
О, и еще кое-что, что мы не должны забывать: он хотел (и преуспел в этом), чтобы это была техническая книга, которую интересно читать.
Хотя это очень странный вопрос для интервью (учитывая, что ваш кандидат, возможно, не читал такую превосходную книгу), я бы сказал, что основная тема эффективного C++-это встать на путь полуэкспертного программиста C++ и скорректировать свой образ мышления (особенно в отношении внутренних компонентов C++) на пути становления экспертом.
Одна вещь, о которой я много узнал, - это самоконтроль ссылок (стр. 71, пункт 17). Лучшее управление памятью. Предпочтение нового / удалить против Мэллока и фри (что очевидно, но его доводы были очень хорошо сформулированы). Еще одним хорошим вариантом был пункт 29 на странице 123, избегающий возврата "дескрипторов" к внутренним данным.Это не простое чтение, и это определенно не книга для начинающих. Это следующий шаг для программиста на C++, который хочет стать лучшим программистом на C++.
Это была очень хорошая книга, и хотя она немного устарела, это одна из лучших книг, чтобы стать опытным программистом на C++. Я все еще читаю отрывки из него, чтобы сегодня, и я определенно не эксперт по C++; это хобби.Чтобы произвести впечатление на собеседника, вы упоминаете, что, хотя вам нравится эффективный C++, интервьюер должен взглянуть на более эффективный C++. Объясните также некоторые плюсы этой книги и спросите его / ее, читали ли они ее, учитывая, что они читали эффективный C++. Это должно поставить в тупик болвана :).
Что C++ - это безумно сложный язык с множеством трюков, советов, идиом и странных конструкций, которые вы должны знать наизусть, а не навязывать хорошим языковым дизайном?
Вероятно, вы не получите работу нигде, кроме MSFT !