В экосистеме GeekBrains постоянно идёт обмен мнениями между организаторами, преподавателями, студентами и гостями сайта. Мы ищем возможности улучшить подготовку кадров, давать что-то новое в максимально удобном формате. Возьмём, например, JavaScript-код. Его, как и любой другой, необходимо тестировать, но часто junior-разработчики в силу загруженности упускают из виду эту часть профессии.
Им сложно выделить пару месяцев и иногда даже неделю-другую для освоения тестирования.Мы нашли решение и упаковали весь пласт знаний по тестированию JavaScript в двухдневный интенсив — «Тестирование приложений на React». Более подробно о формате обучения, содержании и целях курса в этом посте расскажет его создатель — Александр Сокол, разработчик React Native в Andersen.
— Александр, привет! Первый вопрос: на кого рассчитан курс?
Это JavaScript-разработчики уровня junior, может быть, даже middle, те, у кого совсем поверхностное представление о механизмах тестирования кода.
— На основе чего ты создавал интенсив?
Только собственный опыт. Не было такого, что я взял курс, ужал его до формата двух дней и выдал за своё ноу-хау. У меня есть некоторый опыт наставничества, конечно же, сам когда-то вникал в тему, этим я и руководствовался при разработке программы.
— Расскажи немного про формат.
Это двухдневное обучение. Каждый день состоит из трёх часов теории и трёх часов практики. Разделение, разумеется, условное ㅡ формат стандартный: сначала вводная часть первого модуля, потом проецируем её на реальные кейсы, затем переходим к следующему модулю и так далее.
У нас нет задачи за это время научить людей пользоваться навыком в совершенстве, но объяснить, для чего какие тесты и как применяются ㅡ времени достаточно.
— Как ты считаешь, умение тестировать код — необходимый навык junior-разработчика?
Я не могу говорить за весь рынок, но в моей компании это безусловное преимущество. На определённом этапе развития любой разработчик должен научиться тестированию. Если есть условный выбор между двумя примерно равными кандидатами на позицию junior, повезёт тому из них, в чьё образование придётся вложить меньше средств и времени.
Ограниченные профессиональные навыки всегда запирают специалиста в определённых рамках. Но в случае с тестированием кода, на мой взгляд, это ещё и рамки развития в разработке. Может ли специалист эффективно создавать код, оценивая его работоспособность лишь по результатам крупных этапов? На мой взгляд, нет. Только пройдя множество итераций, поняв специфику тестов, можно научиться быстро и эффективно создавать код. Проще всего это сделать, умея тестировать код самостоятельно.
— Приведи пару классических кейсов, когда тестирование необходимо разработчику?
Самый банальный пример ㅡ разработка кода. Даже базовые навыки в тестировании позволяют быстро определить слабые места, выловить баги и недочёты. В маленькой команде ㅡ это важно, в большой ㅡ архиважно.
Или, например, разработчик приходит в новую команду и ему дают в работу уже готовый код. Разбираться самому с нуля, понимать, где, что и как работает ㅡ очень долго и изнурительно. Но если код уже покрыт тестами ㅡ процесс занимает куда меньше времени, большая часть кода читается как книга.
— Какие ещё выгоды несёт навык тестирования кода разработчику? Увеличивает качество и производительность работы, стоимость на рынке?
То, что это повышает качество разрабатываемого кода ㅡ безусловно. Относительно производительности ㅡ вопрос навыков. Поначалу тесты будут отнимать много дополнительного времени. Но постепенно, с увеличением качества кода и наработкой навыков, ситуация будет улучшаться. И да, в конечном счёте это повлечёт повышение производительности. К примеру, сейчас тестирование кода занимает 30% моего рабочего времени, и это не так много, учитывая пользу.
Что касается стоимости на рынке ㅡ мне судить сложно. Я не HR-менеджер, и не знаю даже примерно, сколько тысяч рублей стоит тот или иной навык. Но что умеющему тестировать код разработчику будет проще искать работу ㅡ факт.
— Интенсив длится всего несколько дней. Могут ли студенты после его прохождения обращаться с вопросами?
Безусловно. Конечно, я вряд ли смогу подробно отвечать на вопросы всем, но по мере доступности постараюсь помочь. Никаких проблем. Также, если будут пожелания по формату и наполнению интенсива, я или коллеги с удовольствием выслушаем.
— Какие у тебя ожидания от интенсива?
Главное ㅡ чтобы все получили знания, за которыми пришли, и впоследствии могли применять их в деле, попутно улучшая качество кода.