Разработка BPM (конкретно Pega) либо автоматизированное тестирование на Java, что выбрать?
Всем добрый!
Опишу ситуацию.
22 года, 3 курс финансового факультета, школа21, имею начальные навыки и знания в разработке. Если конкретно: С, Java, Sql, html, git, maven. Понимаю суть ООП, concurrency/collections/немного stream api, умею работать с основными структурами данных и понимаю различия между ними, в том числе "из под капота", unix пользователь (свободно работаю в терминале).
Около месяц назад осознал, что хотелось бы двигаться в более быстром темпе и получать знания на реальном проекте непосредственно в работе. Стажировка на позиции интерна java, как мне показалось, может весьма сильно этому поспособствовать. Собственно разослав резюме и пройдя несколько собеседований, имею потенциально два пути для дальнейшего развития.
Первый: стажер автоматизация тестирования (месячное обучение и подписание контракта на минимум год работы в сфере тестирования). Из плюсов - стабильность и хорошая зп(по словам hr). Из минусов - не совсем уверен, что это нужное направление, которое даст необходимое развитие и навыки (изначально хотелось бы развиваться как разработчик) и невозможность уйти ввиду обязательств.
Второй: стажер в разработку bmp на платформе pega. Из плюсов (как я вижу) обучение в сфере разработки и отличный по отзывам от знакомых работодатель. Не уверен на счет стека используемых в этом, полагаю, узком все же направлении (pega, bpm) и насколько эти навыки будут актуальны (возможно я заблуждаюсь, скорей всего).
Конкретно вопросы:
1. Что такое разработка в сфере bpm? Как она коррелирует с общепринятым стеком (spring, hibernate и тд)?
2. Много ли навыков можно получить в АТ актуальных для дальнейшего развития в разработке? Не произойдет ли застоя за год в плане развития? Какой процент времени автоматизатор работает непосредственно с кодом по отношению к остальной рутине (насколько я знаю ручные тестировщики код не пишут совсем).
3. Стоит ли претендовать на позицию тестировщика и заложить на это год, чтобы далее претендовать на позицию джуниор-разработчика? Или же лучше получить опыт в бпм разработке? Также есть вариант еще полгода потратить на изучение фреймворков, технологий и далее уже искать вакансии джуна без опыта.
Вопрос, какой путь выбрать и куда двигаться дальше висит надо мной уже долгое время и однозначного ответа до сих пор нет. Надеюсь на помощь от людей, которые прошли уже некий путь и могут со своим багажом знаний и опыта дать рекомендацию куда двигаться. Важное дополнение: полученные навыки являются более приоритетным фактором нежели сумма зп.
1) Я работал пега разрабом. Это ужасный стек. У тебя не будет дебагера и рефактора. Поиск по "коду" в 99% не находит все, а только часть. С общим стеком пега коррелирует чуть мение чем никак. Да, она крутиться на websphere и сама java приклад, но во первых application serverы умирают, во вторых у pega свой язык и java там только в кишках. Пега про визуальное программирование мышкой в основном. Если требования бизнеса выходят за текущие границы пеги, то это печаль из редактирования пеговских jsp.
Если не дай бог в пеге баг, то править ты будешь его сам, так как поддержка от индусов будет отвечать просто не делай так. Как пример, поле для ввода цифр принимало буквы и пользователь мог заполнить форму невалидными данными, валидация только на server side с сбросом всего пользовательского ввода. На тикет в пегу, мне сказали просто не вводить буквы в поле для цифр. Такой подход к самостоятельныи правкам багов пеги, порождает боль обновлений, где четверть твоих костылей нужно снова переписывать.
2) Лучше сразу найди работу java junior, чем идти в профессию которая тебе не интересна
Я бы рекомендовал автоматизацию, как более перспективное и востребованное направление. Сейчас найти мидл-автотестера сложнее чем разработчика.
Во многих компаниях, автотесты - это отдельный внутренний продукт и скилы у автоматизаторов не сильно уступают разрабовским. Тут тоже нужно знать язык программирования, паттерны, основные структуры и алгоритмы, сети и протоколы, понимать CI/CD процесс и уметь интегрировать свое творчество в него.
Из плюсов отмечу:
- более низкий порог входа чем в разработку: нет такого высокого требования к знанию алгоритмов и тонкостей языка
- при этом ЗП не существенно ниже или на том же уровне что и у разрабов
- высокая востребованность
При желании перейти в разработку можно без проблем.
С одной стороны тестировщиков на рынке как собак, а BPM подарит вам редкий опыт и знания, которые сделают вас ценным специалистом для энтерпрайза, особенно банковского. С другой стороны - это специфическая область, не уверен, что она хороша для начинающего и научит вас именно программировать, а не настраивать Pega под бизнес.
Если хотите программировать - нужно программировать. ;-)
1. Тестировщик. Узнайте на чем и как будут писаться тесты. Погуглите, подумайте.
2. Рисовальщик картинок. ИМХО если хотите программировать, а не "знать предметную область", то не стоит.
Да никто вам не ответит. Принимайте решение как взрослый человек, самостоятельно.
Список технологий или работ никак не расскажет что на самом деле происходит на проекте. Об этом нужно выяснять у тех, кто работает именно там.
Хорошая ЗП по словам рекрутеров - это как? Пусть назовут сумму. Если не называют, то общайтесь с теми, кто называет.
Разработка в автоматизировании тестирования - тоже неплохой путь, особенно если будете получать ЗП.
Год - это немного. Научитесь работать, научитесь принимать самостоятельные решения - тоже ок.
Не бойтесь потерять год, бойтесь потерять 10 лет из-за боязни что-то начать.
Опять же, если у вас есть "потенциальные два места", это вы уже собеседования прошли? Почему не задавали эти вопросы на собеседовании? Там же сидят как раз те, кто лучше всего знают что вам ответить.
Касаемо технологий, возможно, я неправильно сформулировал вопрос.. есть опасения, что bpm и pega это нечто узкое, навыки которые далее будут ценны только в этом направлении. Аналогию могу провести разве - что с salesforce (опять же могу ошибаться в своих представлениях). И хотелось бы опровергнуть либо подтвердить эту позицию услышав мнение людей, кто имел опыт работы на подобных проектах.
На счет зп в АТ была названа вилка с нижней границей 45-50 на позицию стажера, имхо это отличные деньги учитывая обстоятельства, как минимум в два раза выше моих ожиданий. Но есть ли в АТ разработка как таковая, именно работа с кодом и соответствующими технологиями (помимо инструментов для тестирования)?
Собеседования были, но ввиду не имения опыта и понимания, начал задаваться вопросами уже постфактум, а решение необходимо принять в ближайшие дни. Эти вопросы, очевидно, нужно задать и я это сделаю, но вдруг здесь найдутся люди, которые смогут дать более исчерпывающее ответы "изнутри" нежели hr.
bardini_van,
Если собеседование уже было, если офер уже был, какие проблемы связаться с рекрутерами или менеджером напрямую и попросить пообщаться с кем-то из коллег?
Никто ж не укусит.
Saboteur, оферов не было, т.к ему предшествует обучение и дальнейший отбор. в случае с АТ необходимо подписывать договор на стадии обучения (т.е сейчас), который в свою очередь допускает тебя продолжить обучение и рассчитывать на офер. Вопрос по bpm смогу задать только в понедельник, и соответственно возникает ситуация когда нужно определиться - либо отказаться от договора по АТ и готовиться к bpm, либо же не распыляться и полностью углубляться в тестирование (отложить в сторону java ee, spring итд.)
Не хотелось бы оказаться на месте того парня из истории про двух зайцев.
bardini_van, Я уже много лет занимаюсь автоматизаций тестирования. И тут все очень не однозначно.
Есть компании где почти все делают разрабы а тестерам оставляют только клипать кейсы - тут работа с кодом есть но очень примтивная
Есть компании где все лежит на наших плечах, и опять же они разные. Есть не большие компании где у тебя там будет 100-200 кейсов. работа с кодом будет но не чего сверхъестественного ждать не стоит.
Есть крупные компании где автоматизатор тот же разработчик, только в другом стеке. там уже отдельный отдел на это все со своими приключениями.
так как у вас нет офера по началу стоит его получить а дальше думать.
bardini_van, Не очень понятно по поводу договора.
Это случайно не курсы по обучению, которые в случае успешного прохождения, ты обязан отработать год, отдавая часть зарплаты курсам?
Ты же можешь и неуспешно их пройти. И трудоустройство не гарантировано
Saboteur, нет, это не курсы, это аутсорс, который предоставляет кадры заказчику, и работа происходит на территории заказчика соответственно. Договор звучит так: его необходимо подписать на стадии обучения, далее в случае успешного прохождения вам предоставляют оферы от заказчиков, в договоре прописано - в случае отказа, вы должны компенсировать его, отработав год.
У меня был проект связанные с тестированием смарт ТВ.
Там команда разработчиков написала целый фреймворк для автоматического тестирования, чтобы можно было эмулировать поведение пользователя (пульт, кнопочки). И писала тесты уже на собственном фреймворке.
В общем автоматизиация тестирования бывает очень разная