Эта книга базируется на опыте практического участия автора во множестве собеседований, проводимых лучшими компаниями. Это квинтэссенция сотен интервью со множеством кандидатов, результат ответов на тысячи вопросов, задаваемых кандидатами и интервьюерами в ведущих мировых корпорациях. Из тысяч возможных задач и вопросов в книгу были отобраны 189 наиболее интересных и значимых.
Очередное собеседование обернулось разочарованием... в очередной раз. Никто из десяти кандидатов не получил работу. Может быть, мы были слишком строги? Несмотря на свой ум, кандидат с трудом справлялся с поставленными задачами. Более успешные кандидаты быстро разобрались с первым вопросом, который был построен на известной задаче, а у моего студента возникли проблемы с разработкой алгоритма. Когда он наконец-то осилил алгоритм, то не учел возможность оптимизации для других сценариев. Когда дело дошло до написания кода, он допустил множество ошибок. Это был не худший кандидат, но все видели, как ему далеко до победного результата.
В данной книге основное внимание уделено задачам алгоритмизации, программирования и дизайна. Почему? Потому что ответы на •поведенческие» вопросы могут быть такими же разнообразными, как и ваше резюме. И хотя в некоторых фирмах задают вопросы на эрудицию (например, •Что такое виртуальная функция?»), навыки, полученные в ходе подготовки к таким вопросам, ограничены весьма узкими областями. Я расскажу и о таких вопросах, но прежде всего я хотела бы уделить внимание более сложным вещам.
В большинстве ведущих технических (и многих других) компаний основную часть процесса собеседования составляют вопросы по алгоритмам и программированию. Считайте, что это проверка навыков практического решения задач. Интервьюер старается оценить вашу способность решать алгоритмические задачи, которые еще не встречались вам ранее.