Я работаю в сфере IT чуть более 1 года как Test Automation Engineer.
Мое базовое образование никак не способствовало этому, поскольку в моем дипломе написано “Логистик-Экономист”. Тернистный путь в IT я начала с бесплатных курсов при одной крупной компании в моем городе, после них поработала в той же компании на 2х проектах, после чего решила сменить место работы.
Я откликнулась на 8 вакансий, еще 4 компании написали мне сами (кадровые агентства не в счет, с ними общаться я не планировала).
Возможно, важную роль сыграло то, что мои поиски пришлись на январь (вроде в этом месяце самый бум в сфере рекрутинга), но после всех телефонных переговоров и переписок у меня было 4 приглашения на собеседование от разных компаний, 3 из которых в итоге предложили мне работу.
Мне было интересно изучить процесс найма в ИТ, поэтому я решила пройти все этапы собеседований у каждого нанимателя опыта ради, даже если сама вакансия сразу не казалась мне привлекательной.
Первая компания очень хотела найти сотрудника со знанием IP-нетворкинга, но таких специалистов на рынке, по их же словам, оказалось мало, поэтому пригласили и меня:) В основном на собеседовании спрашивали о Java: static, == / equals и другие типичные вопросы, которые я не успела записать, потому что идея написать эту статью пришла после второй компании, но они будут упоминаться в описании последующих собеседований. Также были попытки спросить про IP-нектворкинг, но довольно быстро стало понятно, что я в этом не сильна. Тем не менее, техническое интервью, со слов HR, прошло хорошо и меня пригласили поболтать по скайпу с заказчиком, которому не понравилось, что у меня не связанное с ИТ образование, и потому предложения не последовало.
Вторая компания — продуктовая — разработчик онлайн-игр. Кроме обычной работы с тестами частью функционала тестовой команды было написание и поддержка ботов для онлайн-игр. В общем-то команде нужен был специалист со знанием Python, что в итоге и стало основной причиной моего отказа. На собеседовании вопросы мне задавали по Java (тк другим языком не владею, о чем и предупредила по телефону), ниже приведу их списком:
- Exceptions — какие бывают, иерархия
- Команды Git — как сделать коммит и тд
- Может ли блок finally не выполнятся?
- Постулаты ООП с примерами
- Что такое конструктор?
- Как вызвать метод родительского класса в дочернем методе, если этот метод так же переопределен в дочернем методе?
- написать xpath
- решить задачку на алгоритмизацию
- значения примитивных типов по умолчанию
- ==/equals
- Написать 2 SQL-запроса (первый содержал join, который я заменила вложенным запросом, второй — ключевые слова limit и desc)
- слово final — все, что знаешь
- описать, из чего состоит тест
А также блок про Selenium:
- Page Object
- Что такое локаторы
- findElement и findElements — в чем разница и что будет, если в findElement передан локатор, который возвращает более одного объекта
И еще мог бы быть отдельный вопросик про Линукс, но на момент прохождения собеседования я с ним не сталкивалась, потому и вопросы задавать смысла не было. После этого было еще одно собеседование, скорее, “разговор о жизни” с менеджером команды. Как я писала ранее, приглашение я получила, но не приняла из-за Python.
Третья компания — аутсорсинговая, занимается созданием и поддержкой сайтов для одного авиаперевозчика. Тестовая команда использует связку Selenium+Maven+TestNG, и используя этот же подход мне необходимо было решить тестовую задачу, чтобы попасть уже на техническое интервью. Задача состояла в том, чтобы залогиниться на сайт (юзера создать вручную), открыть почту и проверить количество входящих писем, после чего свое решение прислать ссылкой на Git. Задача была решена, техническое интервью состоялось, вопросы были такие:
- Разница между List и Set
- Написать XPath
- Try-catch-finally
- ==/equals
- Слово static
- Static блок
- Особенности FluentWait
- Абстрактные классы и интерфейсы
- (Внезапно) Что такое полиморфизм
- (еще более внезапно) Методы класса Object
- Page Object
- Какие аннотации TestNG используются для обозначение входных данных
- Как можно с помощью аннотаций указать последовательность выполнения тестов
В итоге я согласилась на работу именно в этой компании, тк на мой взгляд, их проект максимально соответствовал моим скиллам и опыту. А комфорт и уверенность в себе — мои основные критерии выбора рабочего места. (Тут можно не согласиться с моим подходом, может, кому-то нужен челлендж, это тоже прекрасно).
Четвертая компания снова продуктовая, честно говоря, была моей компанией мечты, потому что работает с AI и Machine Learning. Я уже работала с их технологиями на моем первом проекте на первой работе и прошла ими же разработанную сертификацию, о чем и написала в своем резюме. Возможно, поэтому они и пригласили меня на интервью.
На мой субъективный взгляд, этой компании нужны скорее девеловеперы или автоматизаторы с бОльшим опытом работы, чем у меня. Возможно, моим преимуществом было то, что я несколько лет работала в продажах, поскольку большая часть их проектов on-site и подразумевает постоянное общение с заказчиком.
Среди всех интервью это было, пожалуй, самое сложное. Например, привычное сравнение List и Set перешло в вопрос “В чем разница реализации метода get в ArrayList и LinkedList?”
Из банального были:
- Иерархия коллекций (неплохо, конечно, было бы повторить перед собеседованием)
- Слово Static
- Наследование
- Слово Super
- Абстрактные классы и интерфейсы
- Многопоточность — сразу сказала, что не знаю, и тем самым пресекла все вопросы
Спросили также про SQL, а именно: создавала ли я таблицы сама. Запросы писать не просили.
Кроме того, тут требовалось решить пару задач, одна на алгоритмизацию, а вторая, как оказалось, на знание такой штуки как new Command.execute() (мне любопытно, много ли человек сталкивались с этим).
И — вишенка на торте — тут были задачки на логику! Типа у вас есть ящик с черными и белыми носками, сколько раз нужно достать носок, чтобы гарантированно получить пару одинакового цвета. Ну и так далее, все писать не буду, решила, надо, сказать тоже не все.
На этом собеседовании важное место (минут 20) занимали вопросы про софт скилы, про конфликты, работу в команде и т.д.
И это было единственное место, где со мной хоть кто-то поговорил на английском. (Стоит упомянуть, что у меня B2, возможно, остальные верили на слово).
В общем я очень удивилась, когда мне перезвонили на следующий день уже с оффером, тк интервью с 30-40% (по моим ощущениям) неотвеченных вопросов казалось мне проваленным. Видимо, пройденное мной когда-то обучение их фичам имело ценность. Предложение я все-таки не приняла, потому что не была до конца уверенна в своих силах. Но эта компания все еще кажется мне самой привлекательной в моем городе, возможно, я еще буду на них работать.
В общем, самое важное, что я хотела донести, это то, что не нужно боятся что-то изменить. В итоге я подняла свою зп в 2 раза в сравнении с предыдущим местом работы(да, я сейчас где-то на уровне джуниор-миддл и в числовом выражении это не так уж много, но это только подтверждает мысль, что перемены имели смысл!)
А для тех, кто пока что только смотрит в эту сторону, но не решается сменить сферу деятельности в качестве вывода хочется отметить, что для работы в ИТ в первую очередь нужно уметь учиться. И никогда не прекращать это делать. Тогда и работа будет легкой и зарплаты высокие =)
А еще мы сами можем не подозревать о своих сильных сторонах.
Надеюсь мой скромный опыт поможет вам решиться на перемены или будет просто интересным и познавательным.
Автор: Naths