Игорь Савчук - Отъявленный программист: лайфхакинг из первых рук

Тут можно читать онлайн Игорь Савчук - Отъявленный программист: лайфхакинг из первых рук - бесплатно ознакомительный отрывок. Жанр: Прочая околокомпьтерная литература, издательство ООО Издательство «Питер», год 2015. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.

Игорь Савчук - Отъявленный программист: лайфхакинг из первых рук краткое содержание

Отъявленный программист: лайфхакинг из первых рук - описание и краткое содержание, автор Игорь Савчук, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Введите сюда краткую аннотацию

Отъявленный программист: лайфхакинг из первых рук - читать онлайн бесплатно ознакомительный отрывок

Отъявленный программист: лайфхакинг из первых рук - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Игорь Савчук
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Например, как правильно произносится слово «procedure»? Обратите внимание на правильность ударения. Очень часто обсуждается тема сложности алгоритма, его асимптотическая оценка и нотация «большое-О», в связи с этим как бы вы произнесли вслух формулу O(log(n))?

Следующий важный момент из частых завалов — активное использование адаптивных методик рекрутерами. В самом простом случае это значит, что чем лучше вы будете отвечать, тем более сложные вопросы будете получать в продолжение интервью. Отчасти поэтому непримечательным середнячкам так часто везет в этом увлекательном забеге. Стремление казаться самым крутым не всегда оправданно, если в реальности вы не соответствуете этому уровню. В любом случае очень важны равномерность и последовательность знаний — это не лотерея, здесь не может быть «любимых вопросов», благодаря которым вы рассчитываете блеснуть. Если вы ответили на какой-то вопрос очень сильно, планка сразу поднимается, и дальше вы должны защищать уровень уже более высокого балла.

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

Покончив с наиболее типичными ошибками, хочется уточнить еще один паттерн. Я слышал, как вы обсуждали со своими курсантами составной допрос — что это значит?

Это еще один распространенный паттерн собеседования. Я называю его «составной допрос» (это когда некий теоретический вводный вопрос красиво компонуется с продолжением — практической задачей на его основе). Например, начав обсуждать теорию «Big O notation», после плавно съезжают к обсуждению алгоритма TLS Handshake, который имеет, мягко говоря, много предварительных вычислений. Для интервьюера этот прием — хорошая возможность оценить, насколько у вас большой зазор в понимании между сухой академической теорией и конкретными реализациями на ее основе. Большая проблема и одновременно узкое место нашего современного образования — то, что эти две важные составляющие подчас никак не связаны между собой.

Чтобы как-то суммировать этот большой объем информации, давайте перечислим наиболее частые и общие темы на подобных собеседованиях, которыми нужно владеть в обязательном порядке.

Нужно хорошо знать хеши, устройство деревьев и графов, главные алгоритмы поиска и сортировок, стандартные структуры данных, основы математики (особенно системы счислений, теорию чисел, основы теории вероятностей и комбинаторику). Кроме того, спецификации основных сетевых протоколов и RFC, работу процессора и памяти, детали TCP/IP и все уровни модели OSI.

Для программистов дополнительно — принципы ООП и основные паттерны, теорию работы компиляторов, а также базовые вещи. Пример последнего — очень частый вопрос о расчете времени и эффективности выполнения (Big O notation).

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

Как бы ни страшно звучало все перечисленное, требуется знать лишь основы, но знать их нужно уверенно. [1 Проецируя это на действительность бывшего СССР, необходимые знания математики примерно соответствуют уровню 1–2 курса физмата.] Также я хочу коснуться важного момента: требуется понимать то, что было прочитано в различных книгах и интернет-источниках, а не просто механически повторять ранее выученное. К примеру, вот проверочный вопрос из реальной практики собеседований на тему паттернов программирования, который поставил в тупик моего подопечного.

Давайте поговорим подробнее об одиночке (singleton). Является ли одиночка паттерном или антипаттерном? Классическая реализация одиночки приводит к невозможности использования модульного тестирования, почему вы тогда относите его к паттернам?

Подловить новичка на бездумном повторении книжных истин — это сам по себе «паттерн собеседований» в Google, который без должного уровня осмысления, произносимого порой, ставит кандидата в весьма сложные и неожиданные ситуации.

Приведу еще три вопроса-примера в этом же стиле для самоконтроля. Каков физический размер этой Си-структуры в памяти на 32-битовой системе? На 64-битовой? От чего зависит ее размер?

struct foo {

char a;

char* b;

};

Следующий пример — объясните, почему работает такой код:

#include

#include

using namespace std;

int main (int argc, char** argv)

{

cout << argv[argc-1] << endl << argc[argv-1] << endl;

return EXIT_SUCCESS;

}

Третий типичный вопрос на общую сообразительность а-ля Google: Может ли функция возвращать итоговое значение чаще, чем была вызвана?

Хорошо, предположим, мы прошли все испытания и собеседования, отмеренные нам судьбой, и вот мы в ожидании окончательного вердикта. Я знаю, иногда вместо «апрува» присылают некий «Request for evidence». Что это такое и как это влияет на вероятность одобрения?

Не нужно паниковать, это стандартная процедура. Какие-то данные из вашего резюме хотят проверить, это лишний повод изначально писать там правду и только правду. Например, если у вас запросили выслать копию диплома — сделайте это. Как правило, это заключительная стадия вашего «апрува», а это значит, что процедура близка к завершению.

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

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

Кстати, что насчет выбора языков для кодирования в рамках собеседования как на стадии телефонного интервью, так и на очном собеседовании?

Как правило, ведущие рекомендуют самим участникам заранее выбрать наиболее комфортный для себя язык программирования для прохождения всех заданий интервью. Но, конечно, экзотика при этом не всегда приемлема, ведь проводящий интервью также должен владеть этим языком. Здесь нужно иметь в виду, что в самой компании Google основными (стандартными для большинства проектов) являются языки C++/С#, Java и Python — в своем выборе лучше отталкиваться именно от них. И еще: интервью не место для импровизаций, постарайтесь выбрать действительно наиболее знакомый для себя язык программирования. Поверьте мне на слово, это очень важно, даже если он не входит в эту тройку.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Игорь Савчук читать все книги автора по порядку

Игорь Савчук - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Отъявленный программист: лайфхакинг из первых рук отзывы


Отзывы читателей о книге Отъявленный программист: лайфхакинг из первых рук, автор: Игорь Савчук. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x