Программирование  •  20 июля  2023  •  5 мин чтения

Какой путь в IT выбрать: программиста или тестировщика

Для старта в IT лучше всего подходят две профессии — тестировщик и программист. Чтобы выбрать между ними, важно чётко понимать задачи и особенности каждой.

Задачи тестировщика и разработчика

Оба специалиста работают в сфере IT и создают программное обеспечение. И чтобы понять, чем тестировщик отличается от программиста, нужно понимать их круг задач.

Разработчик, или программист. Пишет код, чтобы создать новый или улучшить существующий программный продукт. Специфика работы разработчика зависит от следующих критериев:

● язык программирования, который используется на проекте;
● продукт: веб-сервис, мобильное приложение, ПО для компьютеров, алгоритмы машинного обучения.

Неважно, идет ли речь о дизайне и вëрстке интерфейса сайта, создании программы, чтобы автоматизировать станки на заводе, или разработке модели машинного обучения — всё это круг ответственности программиста. Так что это разноплановая профессия, хотя спектр задач в целом общий:

● получать требования от заказчиков — обычно это руководители разработки;
● создавать код, соответствующий этим требованиям;
● при необходимости продумывать логику и структуру будущих модулей или частей приложения;
● исправлять найденные в коде ошибки.

Тестировщик. Его задача — проверять уже созданный код на ошибки. Тестировщик взаимодействует с продуктом и проверяет корректность работы в соответствии с заявленной функциональностью и выявляет отклонения или ошибки при стандартных или нестандартных действиях.

Тестировщики тоже бывают разными:

● ручные (или мануальные) проверяют всё самостоятельно, буквально нажимая на кнопки и вводя данные в формы, как простые пользователи;
● автоматические пишут специальный код (мини-программы, которые проверяют функциональность приложения автоматически). Им самим приходится программировать — но писать не готовый продукт, а инструменты для его тестирования.

Отдельно выделяют профессию QA-инженера. От начинающих обычно требуют не больше, чем от простых тестировщиков, но с опытом такие специалисты начинают отвечать за качество продукта в целом: составляют требования к ПО, планируют и организуют процесс тестирования, составляют отчёты о результатах.

Получается, что и программисты, и тестировщики работают над программами — просто на разных этапах их существования.

Так в общих чертах выглядит работа над программой: здесь в качестве примера используется приложение. Доработок и проверок может быть больше, плюс часто тестирование отдельных функций идет параллельно с разработкой других, поэтому на практике процесс не такой линейный

Что нужно знать разработчику и тестировщику

Программист должен

Знать языки программирования.
Какой конкретно — зависит от выбранного направления. Например, фронтенд-разработчикам понадобится JavaScript, а специалистам по машинному обучению — Python.
Понимать общие принципы программирования.
Знать, как выполняется код, разбираться в алгоритмах и структурах данных, понимать и использовать шаблоны проектирования.
Работать с библиотеками и фреймворками.
Это инструменты, которые помогают программисту быстрее решать стандартные задачи. Для каждого языка программирования они свои, нужно знать те, которые применимы в выбранной сфере работы. Например, React для фронтенд-разработчика.
Работать с базами данных, сетевыми протоколами, безопасностью.
В общем, с инфраструктурой, которая обеспечивает работу созданного ПО.

Тестировщик должен

Разбираться в теории тестирования.
Знать классификацию, основные методы и инструменты, уметь писать тест-кейсы.
Владеть инструментами баг-трекинга. Помогают отслеживать статус выявленных ошибок и координировать действия тестировщиков. Это могут быть Jira или Bugzilla.
Уметь работать с базами данных.
Это понадобится, чтобы протестировать взаимодействие приложения и БД.
Знать языки программирования.
Хотя бы базовый уровень будет полезен всегда. А более глубокие познания — если потребуется писать автоматические тесты.

Как долго учиться на тестировщика и разработчика

В Практикуме базовые курсы по программированию длятся от 9 до 18 месяцев, а по тестированию — 4 месяца. Основы профессии тестировщика, с которыми можно начинать работу, освоить проще.

При этом дальнейшее развитие тестировщика требует не меньше времени, чем обучение программированию. Например, курс «Инженер по тестированию +» занимает уже 9 месяцев. А чтобы освоить автотесты, придется потратить несколько месяцев на изучение программирования — причем специфичного, именно для тестировщиков.

Зарплаты программистов и тестировщиков

Начинающие программисты обычно получают от 60 до 120 тыс. рублей в зависимости от города, языка программирования и требований к кандидату. Например, иногда компании готовы нанимать людей без опыта, а иногда даже от джуниоров требуют участия в проектах, хотя бы некоммерческих.
Иногда можно встретить зарплаты и выше 100 000 ₽, но в основном это характерно для более сложных и узкоспециализированных языков вроде С++
С опытом зарплаты программистов серьезно растут и доходят до 200 000 ₽, а потом переваливают и за 300 000 ₽. Есть компании, которые платят программистам и больше 500 000 ₽, — но обычно там люди занимаются уже не столько программированием, сколько управлением командой или целым отделом.
Зарплата такого уровня для программистов не редкость — причём иногда достаточно и трёхлетнего опыта работы
У начинающих тестировщиков зарплаты тоже начинаются от 50 000 ₽, но обычно доходят только до 80 000 ₽. И в целом предложений с более низкой оплатой больше, чем у программистов. Это связано с тем, что порог входа в профессию ниже и навыков новичку нужно не так много.

Средняя зарплата тестировщиков в России, по данным калькулятора «Хабр Карьеры», достигает 147 тыс. рублей в месяц

А вот с ростом зарплаты у тестировщика история интереснее. Если оставаться на ручном тестировании, зарабатывать больше 100 000―150 000 ₽ точно не выйдет. А вот если развиваться в сторону автоматизированного тестирования или QA, то есть контроля качества всего продукта, зарплаты вполне сопоставимы с зарплатами программистов: 200 000―300 000 ₽.
На таких высокооплачиваемых позициях знаний требуется гораздо больше — придётся изучить и программирование, и управление командами, но зато разницы в зарплатах с программистами почти нет

Легко ли найти работу

На HeadHunter вакансий по запросу «программист» почти в два раза больше, чем по запросу «тестировщик». Это происходит по трем причинам:

● Часто в команде на несколько разработчиков хватает одного инженера по тестированию.
● Одной вакансией «тестировщик» закрывают сразу несколько мест, в то время как программисты компании часто нужны разные.
● Команды кросс-функциональны, и процесс тестирования делегирован каждому участнику. То есть каждый пишет как код, так и проверяющие его тесты.

В целом вакансий тестировщика и правда меньше, а конкуренция чуть выше, так как порог вхождения в профессию ниже. Но зато и людей, которые думают, что «тестирование — это просто», тоже много, и конкурировать с ними при серьезном подходе достаточно легко. В программировании же требования даже к джунам в последнее время довольно высокие, и иногда получить работу с совсем нулевым уровнем бывает сложно.

Поэтому нельзя сказать, что кому-то однозначно легче найти работу. В выигрыше в любом случае будет соискатель, который отнесется к обязанностям серьёзно и сможет продемонстрировать базовые навыки и желание учиться и развиваться.

С ростом грейда ситуация немного меняется. Многие начинающие тестировщики после переходят в программисты, и опытных инженеров по тестированию, особенно автоматизированному, часто не хватает. Так что если остаться и развиваться в профессии, в будущем искать работу будет, вероятно, проще.

Тестировщик или разработчик: что выбрать

Определить, какая профессия подходит больше, можно по нескольким признакам.

Выбирать профессию тестировщика, если:

● есть желание быстро войти в IT, не тратя много времени на обучение;
● пока нет уверенности, чем конкретно хочется заниматься в IT, есть желание посмотреть на сферу в целом;
● нет готовности писать много кода, но хочется приложить руку к созданию IT-продуктов;
● устроят более низкие зарплаты и высокая конкуренция на старте;
● человек усидчив, дотошен и внимателен к деталям.

Выбирать профессию разработчика, если:

● есть чёткое желание работать в IT над чем-то конкретным: сайтами, приложениями для смартфонов, аналитикой данных и т.п.;
● есть время дольше учиться на старте;
● человек обладает структурным и аналитическим мышлением;
● есть желание больше времени именно создавать новые продукты.

Совет эксперта

Николай Федосеев

IT дает возможности для поиска себя в наиболее релевантной роли и для дальнейшего развития. Причем как в глубину — наращивать знания в конкретной области, так и в ширину — переходить в смежные области или совмещать их. Базовые навыки для любой специальности основаны на понимании информатики: операционных систем, сетей, дискретной математики, программирования, и умения использовать прикладные инструменты для решения поставленных задач и возникающих проблем. Чтобы не потерять фокус и понимать связь технологий друг с другом, можно использовать дорожные карты (roadmap). Вот некоторые их примеры: по информатике в целом, по бэкенду, по тестированию.

Статью подготовили:
Яндекс Практикум
Education Mentor, SDE в PlayCanvas
Яндекс Практикум
Редактор
Полина Овчинникова
Яндекс Практикум
Иллюстратор

Дайджест блога: ежемесячная подборка лучших статей от редакции

Поделиться

Успейте начать учебу в Практикуме до конца ноября со скидкой 20%

Thu Aug 29 2024 17:15:04 GMT+0300 (Moscow Standard Time)