Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Привет, друг! Собеседования в любой сфере вызывают много эмоций, зачастую это эмоции переживания. Но это вовсе не должно быть данностью. С моей точки зрения, нужно рассматривать собеседование как приятную беседу, после которой можно получить работу, либо полезный опыт.
У меня довольно богатый опыт собеседований, только в Альфе я успел провести больше 200. Я выделил несколько советов, которых стоит придерживаться кандидатам. Какие-то из советов могут показаться капитанскими :)
1. Создай правильную атмосферу за 15 минут до собеса
Я много раз видел, как человек начинает раскрываться в комфортной атмосфере. Например, когда я начинал читать лекции по Android, у меня присутствовала немалая доля волнения: «А вдруг зададут каверзный вопрос, ответ на который я не знаю», «А вдруг ребята не поймут, о чём я рассказываю», «А вдруг я что-то забуду посреди лекции».
От этого набора эмоций мне помогало избавиться прослушивание песни Kasabian — Fire. Думаю, у каждого человека есть свой такой якорь, главное — найти его. Если у тебя нет проблемы с волнением, поздравляю, дружище, ты очень крутой :)
2. Работай над умением доносить мысли
Может показаться, что это не суперважный скил в IT, да ещё и на позиции разработчика. Постараюсь опровергнуть этот тезис.
Я успел побывать на большом количестве проектов. На многих из них важную часть работы занимала коммуникация. Надо уметь объяснить бэкендеру, почему это поле стоит сделать опциональным или почему он должен в зависимости от версии приложения отдавать разные респонсы. Или обосновать и отстоять свою оценку перед продактом. И это я пробежался только по верхам.
В моей практике был случай, когда из-за проблем с коммуникацией в прод чуть было не уехал критичный баг. Если я как разработчик умею доносить мысли прозрачно, вероятность этой проблемы значительно уменьшается.
На собеседовании будут смотреть на твоё умение доносить мысли. И если собес ты прошёл «погранично», но у интервьюеров останется ощущение, что им тяжело было тебя понимать, скорее всего, они дадут отказ. У меня так тоже бывало.
Я и сам каждый день стараюсь совершенствовать умение доносить мысли: пишу статьи, тренирую дикцию, смотрю много докладов и помечаю себе в блокнотике, как спикеры рассказывают сложные технические вещи. В Альфе много задач, связанных с коммуникацией, без этого навыка у нас никак.
3. Не поленись изучить проект и компанию
Ты можешь сказать: «Ну, это уж точно не очень важно, я ведь иду на техническое собеседование». Тут могу сказать, нужно узнать хотя бы немного о компании, в которой тебе предстоит работать.
В Альфе одним из источников информации может стать канал Alfa Digital в Телеге. Например, там ты мог прочитать, что у нас концепция 80/20, когда разработчик 80 процентов времени делает продуктовые задачки и 20 процентов времени технические. Возможно ты решишь: «Вау, круто, это возможность прокачивать скилы в технических задачках, связанных со сборкой». Или же подумаешь: «Оу, мне такое неинтересно, я люблю продуктовые задачи и всё, что связано с продуктом». А представь, если бы ты узнал это уже после устройства на работу?
Плюс всегда можно посмотреть доклады с крупных конференций. Твоя подготовка произведёт впечатление. Конечно, это не заставит сразу поставить тебе ок на техинтервью, но плюсик в карму ты получишь.
4. Просто представь, что обсуждаешь технические вопросы с коллегами
За один двухчасовой собес невозможно полностью оценить знания кандидата. Но один из способов помочь интервьюеру — это не придумывать ничего лишнего и просто общаться так, как бы ты общался с коллегами на проекте.
Естественно, без перегибов и излишней фамильярности. Но опять же, тут всё зависит от ситуации. Если ты смог поймать волну, нужно двигаться в русле, которое ты посчитаешь нужным. Эмпатия — навык, и его нужно тренировать. Особенно если у тебя есть планы развиваться до управленческой позиции.
Важный момент: в таком формате ты тоже собеседуешь интервьюеров. Всегда задавай себе вопрос: «А хочу ли я с ними работать над одним проектом?» Конечно, два собеседующих не покажут тебе всю картину на проекте. Но отпечаток культурных ценностей компании ты увидишь из общения с ними.
А вот как может проходить твой собес в Альфе
Короткий скрининг: тебе звонит HR знакомится, спрашивает о стаже работы с Android, Java, Kotlin, уточняет про опыт с RxJava, Dagger, unit-тестами, code-review.
Техническое интервью с двумя мобильными разработчиками. Один интервьюер задаёт вопрос, второй записывает и наоборот, чтобы потом по фактам разобрать твои харды и софты. Мы даём больше практических задач, не душим алгоритмами. Если ты не помнишь весь синтаксис, можешь писать на псевдокоде, главное — объясни идею решения и расскажи, как оно работает. В финале тебе расскажут о проектах банка и ответят на твои вопросы.
Ты получаешь оффер или отказ с подробным фидбэком, что можно подтянуть, каких скилов не хватило, что почитать и изучить.
5. Техника. Без неё никуда
Нюансы и хитрости, которые я описал выше, просто не работают, если у тебя нет технического фундамента. Они помогут, если у компании будет выбор между двумя кандидатами, которые немного отличаются с точки зрения техники. Но они никак не помогут, если твой технический уровень не достигает планки на позицию.
Узнай про стек проекта, на который тебя будут собеседовать, эту информацию можно запросить у рекрутера. Если на проекте используется RxJava, скорее всего, по ней будут вопросы.
В случае Android-разработчика в фичевой команде от тебя будут ждать, что ты будешь делать фичи. Если на проекте RX, чтобы их решать, тебе нужно его знать, либо хотя бы познакомиться с этой технологией.
Если интервьюеры видят, что у кандидата системное мышление и хороший технический бэкграунд, незнание одной технологии не станет блокером для положительного решения. А вот если на собеседовании будут вопросы, никак не связанные с практикой на проекте, это повод задуматься, а точно ли нужно туда идти?
Небольшой дисклеймер: я не говорю о компаниях разряда Google, которые ищут именно Software engineer — универсального солдата, который сможет работать везде и на любых технологиях. У большинства компаний описаны основные требования к стеку. Вот пример нашей вакансии, любые уточнения можно получить у рекрутера.
6. Не бойся ошибаться
Думаю, ты и без меня знаешь историю про Эдисона и лампочку. Не нужно воспринимать ошибку как что-то ужасное. Не ошибается тот, кто ничего не делает, и неудача на собесе — точно не повод опускать руки и думать, что ты плохой специалист.
Всё, что ты можешь получить от неудачно пройденного собеседования — точки роста и ценный опыт. По опыту могу сказать, что я всегда максимально критично относился к своим ошибкам и воспринимал их близко к сердцу. Это не приводит ни к чему, кроме проблем со здоровьем. Ты начинаешь бояться подставить команду и совершить ошибку и тем самым подставляешь команду, потому что перестаешь перформить на том уровне, на котором перформил.
Как бы парадоксально это ни звучало, но чем больше ты ошибаешься, тем меньше вероятность ошибиться в следующий раз, но только при условии, что ты работаешь над ошибками.
Кстати, дружище, совсем недавно в нашу команду вышел разработчик. Его история интересна тем, что он смог к нам попасть только со второго раза. Первый раз он получил отказ на техинтервью, но не опустил руки, поработал над пробелами и со второго раза прошёл. Обычно возможность повторно пройти собеседование мы даём через полгода.
7. Умей признавать, что чего-то не знаешь
На это тоже обращают внимание интервьюеры. Я видел в фидбэках после собеседований пунктик: «Круто, что умеет признавать, что знает не всё».
Каждому человеку сложно признаться, прежде всего перед самим собой, что он чего-то не знает. Без этого умения человека ждёт только стагнация и отсутствие развития. Но молю тебя, не нужно сухо говорить: «Я не знаю».
Всегда лучше, когда ты оставляешь интервьюеру соломинки, чтобы вытянуть мёртвый вопрос. Например, ты можешь сказать: «Я не знаю, но можем вместе порассуждать и, возможно, придём к нужному ответу».
Естественно, опытный интервьюер сам попытается раскрутить тебя на ответ, но никто не гарантирует, что ты попадёшь на опытного. Элемент рандома всегда присутствует, прямо как в моей любимой CS:GO :)
8. Всегда проси фидбэк
Фидбэк от рекрутера поможет определить точки роста. Нужно перебороть неприятное эмоциональное состояние, когда получаешь критику в свой адрес. Если ты ставишь цель становиться лучше в чём бы то ни было, без мнения со стороны не обойтись.
Сейчас я пришёл к тому, что любая критика хороша: и конструктивная, и неконструктивная, и даже та, которая не связана с предметной областью. Я просто научил своё эго дружить с критикой :) Советую тебе поработать над этим навыком. А если уже умеешь — снимаю шляпу.
Вот один из примеров, как выглядит фидбэк после собеседования в Android-разработку Альфы:
Кандидат был приятным в общении, однако на большинство вопросов отвечал неуверенно. Я бы порекомендовал ему углубить свои знания в Kotlin, в частности изучить data class, контракты методов equals/hashcode. Кроме того, стоит ознакомиться с sealed class и другими ключевыми фичами Kotlin. Рекомендую изучить Dagger и DiffUtil в Android и как они работают под капотом. Наконец стоит уделить внимание основным паттернам презентационного слоя, таким как MVP, MVVM и MVI. На данный момент, к сожалению, после собеседования даём технический отказ.
Особенно круто, когда в фидбэке тебе расписывают, чего не хватило, чтобы получить заветный оффер :)
P.S.
Ну вот, наше сегодняшнее путешествие закончилось. Хочу ещё раз подсветить, что все эти советы субъективны, их я смог вывести из своего опыта проведения и прохождения собеседований и общения с другими ребятами. Могу только добавить: никогда не теряй веру в себя!