Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Сегодня мы поздравляем с праздником людей, которые ежедневно заботятся о том, чтобы в мире было чуть больше порядка, — тестировщиков. В этот день GeekUniversity от Mail.ru Group открывает факультет для тех, кто хочет пополнить ряды борцов с энтропией Вселенной. Программа курса выстроена так, что профессию «Тестировщик ПО», можно освоить с нуля, даже если прежде работал совсем в другой сфере.
Также публикуем историю студентки GeekBrains Марии Лупандиной (@mahatimas). Мария — кандидат технических наук по специальности «Акустика». Сейчас она работает тестировщиком программного обеспечения в крупной инжиниринговой компании, которая разрабатывает ПО для медицинских учреждений.
В свой статье я хочу показать возможность довольно резкого изменения карьеры. До того, как стать тестировщиком, я не слишком плотно соприкасалась с информационными технологиями, за исключением моментов, которые были необходимы для прежней работы. Но под давлением ряда факторов, о которых подробно рассказывается ниже, я решила уйти из научной сферы в чистое IT. Все получилось, и теперь я могу поделиться своим опытом.
Как всё начиналось: технологии плюс наука
После завершения университета по специальности «биомедицинская инженерия» я устроилась на промышленное предприятие инженером-лаборантом. Это достаточно интересная работа, в мои обязанности входили измерение и контроль параметров продукции предприятия, а также сырья на разных этапах производства.
Мне хотелось стать хорошим специалистом, поэтому я постепенно погружалась в технологии производства и осваивала смежные специальности. Например, когда возникла такая необходимость, я изучила методику проведения химических анализов для контроля качества воды, используя в качестве источников государственные стандарты и отраслевые регламенты. Позже я обучала этой методике других лаборантов.
Одновременно я готовила кандидатскую диссертацию, которую успешно и защитила. Будучи уже кандидатом, мне удалось получить крупный грант от Российского фонда фундаментальных исследований (РФФИ). В это же время меня пригласили в университет преподавателем на 0,3 ставки. Я выполняла работы по гранту, разработала учебные планы и методические материалы по дисциплинам для университета, публиковала научные статьи, читала лекции, вела практики, разрабатывала контрольные и тесты для системы электронного образования. Преподавать очень нравилось, но, к сожалению, контракт закончился и моя карьера в качестве сотрудника университета — тоже.
Почему? С одной стороны, хотелось продолжить свой путь в науку, став, например, доцентом. Проблема в том, что контракт был срочным, и закрепиться в вузе не получилось — новый контракт, к сожалению, не предложили.
Тогда же я уволилась с предприятия, поскольку решила, что нужно что-то менять, всю жизнь потратить на работу инженера-лаборанта не очень хотелось. Мне просто некуда было расти в профессиональном плане, возможность развиваться отсутствовала. Предприятие маленькое, так что о карьерной лестнице говорить не приходилось. К отсутствию карьерных перспектив добавляем маленькую заработную плату, неудобное расположение самого предприятия и повышенную травмоопасность производства. Получаем целый комплекс проблем, которые пришлось просто разрубить, как гордиев узел, то есть — уволиться.
После увольнения перешла на вольные хлеба. Так, я разрабатывала на заказ проекты по радиотехнике, электротехнике, акустике. В частности, проектировала параболические СВЧ-антенны, разрабатывала заглушенную акустическую камеру для исследования параметров микрофонов. Заказов было много, но все же хотелось иного. В один прекрасный момент мне захотелось попробовать свои силы в качестве программиста.
Новая учеба и фриланс
Как-то на глаза попалась реклама курсов GeekBrains и я решила попробовать. Сначала прошла курс «Основы программирования». Захотелось большего, поэтому я прошла еще и курсы «Веб-разработка», причем это было только начало: я освоила HTML/CSS, HTML5/CSS3, JavaScript, после чего начала изучать Java на курсах «Программист Java». Обучение было большим вызовом своим силам — не потому, что сам курс сложный, а потому, что учиться, зачастую, приходилось с ребенком на руках.
Почему именно Java? Неоднократно приходилось читать и слышать, что это универсальный язык, который можно использовать, например, в веб-разработке. Плюс ко всему, я читала, что зная Java, можно перейти на любой другой язык, если возникнет такая необходимость. Это оказалось правдой: я писала код на C++, и он работал, при том, что в основы синтаксиса я не погружалась слишком глубоко. Получилось все и с Python, на нем написала небольшой парсер веб-страницы.
Иногда работать приходилось вот так — сажать ребенка в эрго-рюкзак, давать игрушку и надеяться на то, что этого хватит для того, чтобы выполнить очередной заказ
Как только у меня появился определенный багаж знаний и опыт программирования, я стала выполнять заказы на фрилансе.Так я написала приложение по учету личных финансов, текстовый редактор на заказ. Что касается редактора, он простой, в нем несколько основных функций для форматирования текста, но со своей задачей он справляется. Кроме того, я решала задачи по обработке текста, плюс занималась версткой веб-страниц.
Отмечу, что изучение программирования расширило мои возможности и кругозор в целом: я не только могу писать программы на заказ, но и занимаюсь проектами для себя. Например, я написала небольшую, но полезную программу, которая позволяет узнать: портит ли кто-то ваши статьи в Википедии. Программа парсит страницу со статьей, находит дату последнего изменения, и, если дата не совпадает с той датой, когда вы в последний раз редактировали свою статью, вы получаете уведомление. Еще я написала программу для автоматического расчета стоимости такого специфического товара, как рабочая сила. Графический интерфейс программы написан с помощью библиотеки JavaFX. Я, конечно, пользовалась учебником, но алгоритм разработала самостоятельно, а для его реализации использованы принципы ООП и шаблон проектирования mvc.
Фриланс — хорошо, но офис — лучше
В целом, быть фрилансером понравилось — ведь можно зарабатывать, не выходя из дома. Но здесь проблема в количестве заказов. Если их много, все хорошо с деньгами, но бывают срочные проекты, с которыми приходилось сидеть допоздна в авральном режиме. Если заказчиков мало, то чувствуешь потребность в деньгах. Основные минусы фриланса — ненормированный график и непостоянный уровень дохода. Все это, конечно, сказывалось на качестве жизни и на общем психологическом состоянии.
Пришло понимание, что официальное трудоустройство — то, что поможет избавиться от указанных проблем. Я стала искать вакансии на специализированных сайтах, разработала хорошее резюме (за что спасибо преподавателям — с ними я часто советовалась по поводу того, что стоит указать в резюме, а что лучше упомянуть уже при личном общении с потенциальным работодателем). Во время поисков я выполняла тестовые задания, некоторые были достаточно сложными. Результаты я добавляла в портфолио, которое в итоге стало довольно-таки объёмным.
В итоге мне удалось устроиться тестировщиком в компанию, которая занимается разработкой медицинских информационных систем для автоматизации документооборота в лечебных учреждениях. Найти работу помогли высшее образование по направлению «биомедицинская инженерия», плюс знания и опыт в разработке программного обеспечения. Меня пригласили на собеседование и в итоге я получила работу.
Сейчас основная моя задача — проверка приложений, написанных нашими программистами, на прочность. Если ПО не выдержало проверки — нужно его дорабатывать. Кроме того, я проверяю сообщения от пользователей системы своей компании. Над решением различных проблем у нас работает целый отдел, и я — его часть. Программная платформа, разработанная нашей компанией, внедрена в больницах и поликлиниках, если возникают сложности, пользователи отправляют запрос на решение проблемы. Эти запросы мы и разбираем. Иногда я сама выбираю задачу, с которой буду работать, а иногда — советуюсь по поводу выбора тасков с более опытными коллегами.
После того как таск закреплен, начинается работа. Для того чтобы решить проблему, выясняю происхождение ошибки (ведь всегда есть вероятность, что причина — человеческий фактор). Уточнив у заказчика все подробности, формирую техническое задание для программиста. После того, как компонент или модуль готов, я их тестирую и внедряю в систему заказчика.
К сожалению, большинство тестов приходится проводить вручную, поскольку внедрение автоматизации — сложный бизнес-процесс, который требует серьезного обоснования и тщательной подготовки. Тем не менее, с некоторыми инструментами автоматизации я познакомилась. Например, Junit-библиотекой для тестирования какого-либо блока по API. А еще есть фреймворк twin от ebayopensource, который позволяет писать скрипты, имитирующие действия пользователя, очень похож на Selenium, который используется в вебе. Плюс освоила фреймфорк Cucumber.
Мой доход на новом месте вырос по сравнению с фрилансом в два раза — правда, во многом благодаря тому, что я работаю полный день. Кстати, согласно статистике hh.ru и другим ресурсам, размер заработной платы разработчика в Таганроге составляет 40-70 тысяч рублей. В целом, эти данные соответствуют действительности.
Рабочее место оснащено всем необходимым, офис просторный, много окон, всегда свежий воздух. Плюс есть кухня, кофеварка, и, конечно, печеньки! Коллектив тоже классный, отрицательных моментов в этом плане вообще нет. Хорошая работа, коллеги, что еще программисту-тестировщику для счастья надо?
Отдельно отмечу, что офис компании находится в Таганроге, это мой родной город. Здесь немало IT-компаний, так что есть, где развернуться. При желании можно переехать в Ростов — там возможностей больше, но пока переезд я не планирую.
Что дальше?
Пока мне нравится то, что у меня есть. Но останавливаться не собираюсь — и поэтому продолжаю учиться. В запасе — курс по «JavaScript. Уровень 2», как только появится больше свободного времени, я обязательно начну его осваивать. Регулярно повторяю уже пройденные материалы, плюс смотрю лекции и вебинары. В дополнение к этому я участвую в программе наставничества на GeekBrains. Так, для студентов, успешно закончивших курсы и во время сдававших домашние задания доступна возможность быть наставником для других учащихся. Наставник отвечает на вопросы, помогает с домашними заданиями. Для меня это тоже повторение и закрепление пройденного материала. В свободное время, когда есть возможность, решаю задачки c таких ресурсов, как hackerrank.com, codeabbey.com, sql-ex.ru.
Осваиваю также курс по Android-разработке, который проводят преподаватели ИТМО. Курсы эти бесплатные, при желании можно сдать платный экзамен. Отмечу, что команда ИТМО удерживает мировое первенство по соревнованиям в программировании.
Немного советов для тех, кого интересует программирование
Уже имея определенный опыт в разработке, хочу посоветовать тем, кто планирует идти в IT, не бросаться в омут с головой. Чтобы стать хорошим специалистом, своим делом нужно гореть. А для этого следует выбрать то направление, которое ну очень нравится. Благо, в этом нет ничего сложного — сейчас в интернете масса отзывов и описаний о любой сфере разработки, языке или фреймворке.
Ну и стоит быть готовым к постоянному процессу обучения. Программисту нельзя останавливаться — это смерти подобно, правда, в нашем случае не физической, а профессиональной. Если вы готовы к этому — то вперед, почему бы и нет?