Всем привет!
Примерно год назад я почувствовал, что пора двигаться в сторону поиска работы. К большому сожалению для себя я обнаружил, что знаний Java SE недостаточно даже для позиции Intren'a, а моё резюме вовсе не нарасхват - всего пара ответов на отклики за месяц, и те отрицательные.
Тогда случайным образом я наткнулся на компанию Epam, которая проводит бесплатные курсы, а потом, при успешном окончании, предлагает стажировку на реальных проектах с дальнейшим трудоустройством. О Epam в интернете довольно много неоднозначных отзывов, а со стороны студентов почти ничего, собственно, цель моего рассказа - восполнить этот пробел.
Сразу хочется отметить, что всё описанное ниже относится конкретно к Санкт-Петербургу и конкретно к направлению Java. У большой компании много отличий от офиса к офису и от проекта к проекту, не говоря уже о городах.
Путь в Epam начинается на сайте training.ru, где можно выбрать интересующее направление в вашем городе, посмотреть требования и отправить заявку на участие. В моём случае это был тренинг Java Core. Процесс отбора на тренинг состоит из 3 этапов - телефонное интервью с HR, где зададут несколько простых технических вопросов и проверят ваш английский, компьютерное техническое тестирование + интервью по его итогам, а так же письмо на английском в офисе, и общее интервью с HR, где подробнее узнают о вас, о ваших целях, мотивации и подробнее расскажут о компании. При успешном прохождении этих этапов вам поступит предложение пройти тренинг.
Тренинг - это лекции в офисе 2-3 раза в неделю в вечернее время по 3-4 часа, где проходится, как правило, Java Core (синтаксис, ООП, коллекции, исключения, строки, многопоточность в общих чертах, JDBC). В итоге курс рассчитан примерно на 100 часов. Качество лекций зависит от лектора, в основном это миддлы / синьоры с продакшена, обычно люди довольно грамотные. Помимо лекций есть домашние задания, качество и своевременность выполнения которых является одним из критериев успешности прохождения курса. На самом деле, у меня помимо 25 уровня на Javarush, был некий опыт разработки своих, хоть и не больших, пет-проектов, поэтому, курс давался мне довольно легко - 80% проходимой информации я уже и так знал. Окончание тренинга и ключевой критерий успешности прохождения в разных городах отличается. Где-то, например в Киеве, - это довольно большой итоговый проект на чистой джаве, с авторизацией, сервлетами и базой данных. Как мне сказали, его почти никто не мог выполнить успешно, поэтому, в Питере от него отказались в пользу итогового теста на основе сертификации от Oracle OCA / OCP (имхо не лучший вариант проверки знаний, но что есть то есть).
Если вы регулярно посещали занятия, хорошо и быстро делали домашние задания, и хорошо сдали тест (или написали проект), вы попадаете на следующий этап - в лабораторию, и тут начинается самое интересное.
Сразу хочется сказать, что лаба не оплачиваемая. Проекты не коммерческие, то есть, компания не получает за вашу работу прибыли. А ещё вас учат, тратят на вас ресурсы и время менторов. Поэтому, и платить вам никто не будет. Это придумал не я, а компания таким образом аргументирует свою позицию. Насколько справедливы подобные суждения - решайте сами.
Лаба начинается с трехнедельного проекта (опять же, не уверен насчет других городов). Как правило, у каждого студента свой личный проект, который будет являться неким дополнением к основному студенческому. Обычно они представляют из себя классические CRUD приложения с UI, ну или чуть посложнее, которое с нуля нужно писать самому. Цель - познакомиться с процессами внутри компании, "потрогать" используемые на проекте технологии, ну и вообще освоиться, чувствовать себя более уверенно перед задачами на основном проекте. После презентации вашего проекта перед вашим потоком, менторами, руководством лабы, и просто людям, которым интересно, начинается полноценная учёба.
Обычно в компании просят уделять лабе от 20 часов в неделю. В целом, никто не может вас к чему-то обязывать, потому что никакими договорными отношениями вы не связаны. Тем не менее, от вашей посещаемости и успехов на проекте будет зависеть срок прохождения стажировки. Вся работа в компании ведётся по методологии Agile - много общения, различных встреч и митингов, в том числе дэйли митинги, на которых нужно присутствовать лично. Вопрос совмещения с основной работой сложный. Я бы сказал так - совмещать можно, но сложно и не желательно. Во-первых, большинство дэйли проходят в обеденное время. Во-вторых, помимо задач на проекте есть ещё лекции, по этим лекциями домашние задания и тесты. Все это успевать довольно сложно, вместе с основной работой тем более.
Задачи на проекте совершенно разные и зависят от самого проекта. Обычно на студенческих проектах используются довольно современные и востребованные технологии, например: Java 8 / 11, Spring Core, Spring Boot, Spring Data, Hibernate, JUnit, базы данных. Как я уже сказал, в лабе так же проходят лекции по основным направлениям: Java 8, Spring, базы данных и многопоточность. Каждый из этих модулей длится примерно полтора месяца, поэтому, если вам не хочется сидеть в лабе пол года, какую-то часть технологий придётся осваивать самому.
Кстати, в течение лабы необходимо пройти ассессмент по английскому языку с преподавателем. Если вам определят уровень ниже B1, то просто не сделают оффер, каким бы вы не были хорошим специалистом с технической точки зрения. Компания ориентирована на зарубежных заказчиков и знания английского действительно важны. Если есть какие-то пробелы, я бы советовал идти на сдачу как можно раньше. В случае, если определяет уровень ниже требуемого, будет возможность записаться на курсы от компании, подтянуть язык и пересдать его в конце. Вообще, по правилам, пересдача минимум через пол года, поэтому, лучше сразу хорошо. Но в теории могут сделать исключение и разрешить пересдать раньше.
Какого-то фиксированного срока прохождения лабы нет, у каждого он индивидуальный и зависит от двух факторов: фидбек от менторов с проекта и готовность к техническому интервью. Средний срок по моим наблюдениям - 4 месяца. Лично я прошёл меньше чем за 3, но при этом уделял учебе по 8-10 часов в день. Кто-то при мне проходил и за полтора месяца, но это совсем исключительный случай. В конце стажировки вас ожидает техническое интервью. Оно длится 2 часа и спрашивают по всем темам, пройденным за время учебы, а так же, как правило, дают практические задачи по SQL / стримам. Интервью сложное и готовиться к нему надо очень долго. Карьерный рост в епаме довольно быстрый - через пол года можно повышаться до миддла. Поэтому, и знаний от вас будут требовать соответствующих. Вот лишь небольшой список тем, которые обязательно спросят на интервью: Spring (Core, Data JPA, MVC, AOP, Boot), Git, Java 8, SQL и базы данных (уровни изоляции транзакций, индексы, нормальные формы, аномалии), Hibernate, Многопоточность (от основ до Concurrent коллекций, Completable Future и ForkJoinPool), CI / CD, JMM и так далее.
До нового года в питерском офисе для трудоустройства достаточно было успешно пройти интервью и иметь уровень английского B1 или выше. С тех пор политика компании изменилась и теперь берут только лучших и сразу на проект. Когда он появится, захотят ли туда предложить именно вас и сможете ли вы пройти интервью с заказчиком - не известно и никто вам ничего не обещает.
Со своей стороны хочу сказать, что о компании в целом осталось положительное впечатление. В ней хорошо налажены процессы, обратная связь, крутые, современные, комфортные для работы офисы, куча мероприятий для студентов, высокие требования, но главное - практический опыт, с которым шансы на получение работы повышаются многократно. Я успешно прошёл лабу, но не смог получить работу в Epam из-за текущей ситуации в мире и отсутствия проектов на данный момент. Тем не менее, с полученными знаниями я без проблем получил несколько офферов из других мест и сейчас работаю как junior разработчик. Стоит ли оно того - решать вам.
Если у вас остались вопросы, пишите в комментариях, и, спасибо за прочтение 😉
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ