24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна.
Подробности случившегося. Мы призываем всех неравнодушных
помочь нам с восстановлением утраченного контента!
1. Проявляйте энтузиазм
Энтузиазм имеет огромное влияние на результаты собеседования. Около 50% наших кандидатов, не прошедших дальнейшие интервью в компаниях, провалили их не по техническим причинам. Обычно компании объясняют это тем, что человек «не вписывается в культуру компании». Однако, в девяти из десяти случаев «вписаться в культуру» — это проявить энтузиазм в том, чем занимается предприятие. Компании нанимают людей, которые проявляют живой интерес к их миссии. Для многих это так же важно, как и технические знания. И в этом есть смысл. Мотивированные сотрудники будут чувствовать себя счастливее и работать усерднее.
Проблема в том, что это может быть наиграно. Некоторые кандидаты умудряются убедить каждую компанию, в которой проходят собеседование, что только об этой работе они всю жизнь и мечтали, в то время как другие (искренне мотивированные и заинтересованные работой) не могут донести свои истинные стремления. Мы снова и снова встречаемся с этим. Решение здесь одно для всех — научиться показывать свой энтузиазм. Это не значит, что вам позволено обманывать. Собеседование — это как первое свидание. Никто не хочет на первом свидании слышать, что он является лишь одним вариантом из множества, даже несмотря на то, что обычно так и есть. Так и здесь, большинство программистов просто хотят иметь хорошую работу с достойной зарплатой. Но начинать с этого интервью не следует. Лучше всего перед собеседованием подготовить заметки о том, что вам нравится в компании, и упоминать об этом, когда человек, который проводит собеседование, спросит, есть ли у вас вопросы. Хорошим источником идей может быть прочтение недавних постов в блоге компании и пресс-релизов, тогда вы можете упомянуть те материалы, которые показались вам наиболее интересными.
Эта идея кажется довольно поверхностной. Я думаю, что, читая это, вы и сами соглашаетесь. Но (и каждый, кто когда-либо проводил собеседования скажет вам то же самое) процент кандидатов, которые делают это, поразительно мал. Если вы внимательно подготовите записи о том, почему вы находите компанию интересной, то это действительно увеличит вероятность вашего прохождения. Вы можете даже ссылаться на свои записи по ходу собеседования — это покажет то, что вы готовились.
2. Изучите термины, часто встречающиеся на собеседованиях
Огромный процент задаваемых на собеседовании вопросов касается структуры данных и алгоритмов. Это правда. Мы собираем у кандидатов информацию о вопросах, задаваемых на собеседованиях в компаниях YC, и более 70% вопросов касается именно алгоритмов. Вам не нужно быть экспертом, но знание расположенного ниже списка алгоритмов и структур данных поможет вам получить работу в большинстве компаний.
Хеш-таблицы
Связанные списки
Поиск в ширину, поиск в глубину
Быстрая сортировка, сортировка слиянием
Бинарный поиск
2D множества
Динамические массивы
Двоичное дерево поиска
Динамическое программирование
Big-O анализ
В зависимости от вашего образования и ранее выполняемой работы этот список может оказаться простым либо абсолютно пугающим. Эти понятия гораздо чаще встречаются на собеседованиях, нежели в действительности в веб-программировании. Если вы самоучка или давно закончили учебное заведение, и эти понятия вам незнакомы, то вам следует изучить их для успешного прохождения собеседования. Даже если все это для вас не ново, то освежить знания все равно не помешает. Поразительно большой процент вопросов на собеседовании сводится к поиску в ширину или использованию хэш-таблицы для подсчета уникальных элементов. Вы должны уметь написать алгоритм BFS и понимать, как задействуются хэш-таблицы.
Выучить все это не так сложно, как предполагают многие люди, с которыми мы говорили. Алгоритмы обычно объясняются научным языком, и это может сбивать с толку. Но по сути своей, ничто из этого списка не сложнее, чем архитектура современного веб-приложения. Если вы можете (хорошо) построить веб-приложение, то вы сможете выучить и это. Со своей стороны, я могу порекомендовать книгу Стивена Скиены (Steven Skiena) под названием «Алгоритмы. Руководство по разработке» (The Algorithm Design Manual). Данный материал замечательно излагается в 3-5-й главах — просто и доступно. Да, в книге используется С и математический синтаксис, но она отлично раскрывает тему. На Coursera также можно найти несколько хороших курсов по алгоритмам. В этом курсе, в частности, уделено внимание понятиям, знание которых важно при собеседовании.
Изучение алгоритмов и структур данных помогает не только потому, что материал необходим для успеха на собеседовании, но также и потому, что подход к проблемам, взятым в курсе алгоритма, является тем же самым подходом, который работает лучше всего в собеседовании. Изучение алгоритмов поможет вам получить правильное мышление для прохождения собеседования.