Десятый месяц продолжается исследование QA-курсов, промежуточные результаты которого публикуются в серии хабра-статей “Беда “войти в айти” или курсы тестировщика отзывы” и в канале @QAsmokeQA. Сейчас в исследовании больше ста студентов. По его окончании мне хочется устроить “очную ставку” между представителями курсов и студентами.  Есть несколько курсов, которые изначально не попали в исследование, но мне в силу тех или иных причин интересны, и им я помогаю как консультант  по выстраиванию работы с заказчиками (т.е. со студентами). Когда пострадавшие рубят тебе правду-матку на десятках страниц, которую по понятным причинам никогда не сообщат напрямую, это помогает курсам делать действительно что-то полезное, а не очередной инфопродукт. Кстати, если вашей школе нужна подобная помощь - можете всегда обращаться. Небольшие камерные QA-курсы консультирую бесплатно. Консультируемые курсы не входят в публикуемое исследование, чтобы не было конфликта интересов, поэтому с их преподавателями можно пообщаться уже сейчас. Сегодняшний гость - Федор Кулишов, ведущий эксперт по безопасности в Acronis, эксперт-ментор по безопасности и Linux в QA-школе Mentorpiece, а также участник нескольких организуемых мной QA-вечеринок. В IT работает более 17 лет. — Ведущий эксперт по безопасности в Acronis уже звучит достаточно круто, но расскажи немного про свой опыт и карьеру. Вся карьера - это UNIX-системы в разных сочетаниях: админ, разработчик, ДевОпс, но большая часть карьеры - все-таки эксперт по безопасности. Где-то по пути также неоднократно был менеджером, сейчас к этой роли вернулся. К UNIX-ам потянуло потому, что еще подростком это казалось дико крутым и страшно сложным - а дальше “Challenge accepted!” и до сих пор рад, что занимаюсь именно этим. — Безопасность - это вообще такая тема, про которую много говорят, но при этом специалистов по ней не так много, в сравнении с числом бизнес-разработчиков и тестировщиков.  А нас столько много и не нужно. Представь, если к каждому “обычному” сотруднику приставить сторожа, кто работать будет? Плюс достаточно высокий порог входа - что в профильное образование (очень суровые вступительные баллы в университетах), что в саму профессию. Но было бы желание, а навыки и опыт неизбежно появятся. Желание “лезть куда не просят” (как было в моем случае), желание самообучаться, щупать новые системы и продукты, постоянно исследовать, пробовать, снова исследовать … — Давай поговорим про преподавание. Мне всегда интересны мотивы идущих в IT-преподавание. То есть я понимаю IT-специалистов с небольшим опытом, которые идут преподавать. Кому-то нужна подработка, кто-то не угадал со специальностью и ему как экстраверту интересней общаться, чем сидеть по локти в коде. У кого-то в силу возраста еще нет семьи. Но что мотивирует спецов с опытом 15+ лет, у которых и хороший заработок, и семья, и коты, и свободного времени в общем-то немного? … у меня еще и мотоциклы. А так - долгая история, скажу кратко по каждой мотивации отдельно. Гены и семья: есть на кого равняться в роду, было кому меня обучить доносить свои мысли четко и внятно.  Личные наблюдения: замечал, что мои навыки делиться знаниями и обучать коллег у большинства находят положительный отклик.  Персональная боль: набирая QA-инженеров в Acronis, столкнулся с крайне низким уровнем большинства соискателей и несовершенством мира в целом.  Классная команда: мои хорошие друзья-тестировщики запустили школу, и вот тут-то появился реальный шанс сделать мир лучше.  Личный вызов: школа позиционирует себя бескомпромиссной по качеству, поэтому как же я мог пропустить такой увлекательный челлендж?  — Понятно - мультимотивация. Давай остановимся на боли с набором людей. Можешь привести конкретные примеры?  Человек с 17 годами работы в тестировании, все время - вебка. Задаю вопрос про то, как веб-серверы работают - вижу, поплыл. Упрощаю вопросы, снова плывет. Думаю, ладно, ну хоть скажи мне, по какому порту и протоколу обычно HTTPS-трафик бегает. Кандидат резко выходит из Зума и на потом на мои письма не отвечает. Еще один эпик фейл - недавний магистр по кибербезу, несколько лет что-то тестировал в вебе. Казалось бы, идеальный кандидат. Вот только весь диплом - сплошная компиляция, ничего нового от себя, обещанного интереса к ИБ не оказалось, развиваться сам не готов, а только пассивно ожидает “интересных рабочих задач”), в предметной области де-факто не разбирается. Вся работа с вебкой сводилась к разбору автотестов, где был прикручен BurpSuite, нормального понимания технологий нет. Как говорится, WASTED. Безумно жаль потраченного времени… Эпик вин, побольше бы таких: устал от рутинных задач в “консервативной” предметной области, держит дома Raspberry Pi с Докером (!) для своих экспериментов, хочет в автоматизацию и развиваться в кибербезе, хорошо решил ДЗ по тест-плану совершенно нового для него класса продуктов. — Как я понял по QA-вечеринкам, ты любитель майора Пейна. Может, требования все-таки высоковаты? Да если бы. Искал просто нормальных грамотных технарей, понимающих на уровне технологий (а не инструментов), что и как они делают. И мотивированных развиваться в новой области. В описании вакансии предельно лояльно указал - хорошее понимание или Linux, или вебки, или кибербеза. Резюме текли рекой, но 98% сразу в /dev/null, а до самого интервью доходили единицы. — Чем плохо знание инструментов? Те, кто знают как пользоваться инструментами, как правило, не имеют понятия про устройство технологий, которые лежат чуть ниже. Молчу про знание и понимание смежных технологий. То есть вот работаешь с вебкой, долго работаешь. Всякие там DevTools, Postman, Selenium, допустим, знаешь. А хотя бы в общих чертах устройство веб-сервера, протокол HTTP, принципы работы сети, понимание возможных точек отказа и приемов локализации багов - у большинства кандидатов и близко этого нет. Мой любимый вопрос “на поговорить” - расскажите, что происходит от момента ввода URL в браузере до получения готовой страницы: хорошо, если помнят про DNS и знают HTTP-коды кроме 200, а что-то большее (сетевой уровень с маршрутизацией, TCP/UDP) знают единицы. — Да, но для 80% тестировщиков, когда речь идет про тестирование условного интернет-магазина, это всё же перебор. И да и нет. Расскажу подробней, так как коротко не получится. Если ты ограничен только интернет-магазинами и никуда не хочешь развиваться - конечно, перебор. Но тут скорее вопрос к компаниям, которые сами не понимают, что такое “качество” и как его обеспечить. Потому и не требуют глубокого понимания тестировщиками всего стека технологий, не обучают их, не поощряют развиваться. А если пытаешься “залезть куда не просят” - например, бэкэнд поковырять вместо ежедневной рутины тестирования UI -  смотрят большими непонимающими глазами. Потому и сами тестировщики часто просто не в курсе, что бывает как-то по-другому, и большая часть остается в круговороте рутины всю карьеру. Но если ты решил выйти за рамки “обычного” тестировщика (от которого, к сожалению, слишком часто ожидают “просто жать на кнопки” и не включать голову) и стать полноценным Software Engineer - оставшиеся 20 % компаний будут за тобой в очереди стоять и плюшками заманивать. Там и условия лучше, и про обучение помнят, сама работа интереснее и коллектив куда более достойный. И сами эти компании с большим трудом находят хороших кандидатов. — Что ты имеешь в виду под разницей “обычный тестировщик” vs Software Engineer? “Я просто жму на кнопки, тестирую UI, завожу баги, хорошо, что перевели с бесконечной регрессии, может быть, вырасту когда-нибудь до автоматизатора” VS  “мне интересно разбираться с софтом, я постоянно учусь и хорошо понимаю технологии, с которыми работаю, так что перейти с интернет-магазина на продукт для защиты веб-приложений - вообще нет проблем”. В моем понимании Software Engineer - это тот, кто хорошо знает сопутствующие технологии (НЕ тулы!), понимает их работу, ориентируется шире своей формальной зоны ответственности. Локализовать сложный баг, например, на уровне интеграции, ну или из-за нестабильной работы балансировщиков - почти ежедневная задача. Прийти на другой, схожий продукт, но с другим фреймворком - не беда. Проявить инициативу и, например, взять на себя деплой тестовых сред - а почему нет. Прийти к сетевикам / админам / ДевОпсам с четким описанием проблемы, что не работает и конкретным запросом “что надо” - хлебом не корми. Отранжировать тест-кейзы на основе знания продуктов конкурентов - вполне по силам. Задержится ли сотрудник с таким мышлением в мидлах или быстро сделает хорошую карьеру? Ответ очевиден. — Что в твоем понимании должен знать хороший QA в разрезе Linux и сетей? Давай пойдем от противного - я буду говорить про типичные позиции спецов. Например, “Linux мне не пригодится, потому что я работаю с UI” Все профессии нужны, все профессии важны (с). Если нравится UI - можно сидеть, конечно, на нем. Особенно если речь про UX, там свое особое мышление должно быть. Если же НЕ нравится, или чувствуется, что засиделся на одном месте, или душа просит большего, или просто стало интересно, а какие еще области тестирования есть … when you worry, call me, I make you happy ©, в песне так же поется, верно? “На сервер меня никто все равно не пустит, для этого есть другие люди” Выбери таблетку, Нео. Синяя - запереть себя в навязанных свыше рамках, по сути закрыть путь к росту в ИТ-индустрии, обучению, самообучению и иным хорошим штукам. Красная - быть готовым учиться, брать на себя ответственность, искать интересные области применений своих знаний, да в конце концов кайфовать от работы! Если да - поверь моему опыту, в своей рабочей “матрице” на фоне многих других ты будешь бегать по стенам и уворачиваться от пуль. Возвращаясь к изначальному вопросу - переспрошу, а ты пытался? Сколько раз? А тебе это правда интересно? Если горишь желанием и навыки вроде есть, но на этой работе не пускают, может, навыки еще прокачать или работу сменить? Выбор за тобой, мир большой и внезапно (!) склонный идти навстречу сильным и сформулированным желаниям. “Везде одни контейнеры и приложения, зачем в ОС лезть?” Так контейнеры же не в воздухе висят. Наверняка они развернуты в т.ч. в тестовом окружении, а там ОС, а там может заканчиваться память, место на диске, быть проблемы с сетью, конфликтами сервисов / механизмов защиты / whatever, и ДевОпсам в самый ответственный момент точно будет не до тебя, они релиз на прод накатывают. Хотя им и раньше было не до тебя - их мало, они дорогие и занятые. Если готов - бери дело в свои руки, ТестОпс - есть такая профессия. Тоже востребованная :) “Я вообще собираюсь в мобильное тестирование” Они чаще всего без сети не живут. И учитывая физические особенности мобильных сетей и нестабильность соединения, хорошее понимание сетевых технологий тут прям must have. Плюс почти всегда к таким приложениям есть большая такая, хорошая и интересная серверная часть, а там что? Правильно, то же самое, что и на большинстве серверов в мире :) — Что из вышеуказанного ему/ей действительно пригодится в карьере?  Главное, что я стараюсь дать, - не заученный набор утилит или уровней стека TCP/IP, а понимание технологий, как оно на самом деле работает. Еще очень важно, что многие студенты преодолевают свой изначальный психологический барьер (“все это круто, но дико сложно”), и начинают дружить с, казалось бы, страшной командной оболочкой и какими-то эфемерными пакетами. А раз смогли разобраться с этим - значит устройство реальных рабочих приложений тоже разберут без труда, плюс наши учебные приложения похожи на реальную жизнь (и для локализации багов в них у нас на полную катушку применяются и Linux-инструменты, и знание сетей). Но это про саму карьеру на будущее, а из самых ближайших перспектив - удивить работодателя на собеседовании своим пониманием юниксов и сетей - это не только бесценно, но и хороший шанс получить куда более интересные задачи “на вырост”, чем просто тестирование UI. — Давай немного поговорим про школу где ты преподаешь. Очевидно она ориентирована не на большинство, а как раз “на другие 20%”, так как одна из самых дорогих в России. Наш основной профиль - мануальщики с нуля до уверенного джуна (джуна, а не интерна - после обучения у нас еще интернатура есть, чтобы реального опыта набрались). Берем через входное собеседование только тех, кому интересно учиться и кто готов учиться. Базовых навыков работы с виндой на входе достаточно, остальному научим, было бы желание. Мы не новомодный EdTech, за количеством не гонимся. Группы до 15 человек, много личного общения. Программа насыщенная, курс не самый короткий, но и не длинный. Объем знаний и навыков на выходе - не всякий миддл с реальным опытом такое умеет, но наш народ справляется. Преподы подобрались “идейные”, стараются зажечь своими предметами, по реакции студентов - получается. Кураторов, ассистентов, наставников и прочих бывших выпускников, кто не смог больше никуда трудоустроиться, у нас нет как жанра: те же самые преподы ведут занятия, проверяют ДЗ и консультируют. — А как боретесь с синдромом годовых курсов, когда в человека запихивают всё подряд? Линукса-то мало не бывает. А мы и не боремся, мы просто не играем на их поле.  Тебе любой грамотный технарь или даже кадровик подтвердит, что когда в резюме интерна / джуна, или даже миддла, указано овер9000 инструментов и технологий - это не к добру. Еще Брюс Ли сказал: “Я не боюсь того, кто изучает 10 000 различных ударов. Я боюсь того, кто изучает один удар 10 000 раз”. Вот этому мы и учим. Инструменты - всего лишь надстройка над технологией. Поймешь технологию - освоишь инструменты. Поймешь одну технологию - проще будет понять смежные. На каждом учебном модуле мы стараемся не только дать глубину, но и “связки” с другими модулями и технологиями. — К вам на курс приходят люди “с нуля”. У условного бывшего бухгалтера не взрывается голова от Линукса? Зря ты так о бухгалтерах, хороший бухгалтер по складу мышления примерно как разработчик на ассемблере. А тестировщик, бывший бухгалтером - желанный кадр в разработке банковского ПО. Плюс не всех берем - человек должен сам захотеть учиться и познавать все эти штуки. Плюс не совсем с нуля - базовое умение поставить программу на windows все-таки нужно. А если есть желание учиться - всё остальное мы дадим. В любом хорошем образовании учитель - лишь проводник и мотиватор, так что конечный результат процентов на 60-70 зависит от самого ученика. И учитывая, что курс заканчивает 90+ % пришедших, голова все-таки не взрывается. — Предположим, я QA-лид и ко мне на собеседования пришли два человека. Один - не после твоих лекций, а другой - после них. Как я узнаю твоего студента? Знает о чем говорит, понимает устройство приложений, связь технологий с тест-дизайном. За счет пройденной интернатуры уже имеет опыт работы в настоящем тестировании. Уверенно отвечает на технические вопросы даже в рамках требований к мидлу. — Что эти инвестиции дадут будущему тестировщику? Можешь обрисовать какой-то карьерный путь для этих “других 20%”? Ради чего имеет смысл “рваться”? Про инвестиции “для себя”. Простой пример - у меня как-то была книжка 80-х годов по UNIX. Так вот все пользовательские команды такие же, как сейчас. IPv4 появился в 80-е годы и до сих пор повсеместно применяется, IPv6 - в 90-е и внедрен еще не везде. Linux эволюционирует несколько быстрее, однако базу что по Linux, что по сетям можно понять один раз и потом применять … ну, считай, всю жизнь. Это не новомодный фреймворк или язык программирования, Ruby on Rails - помните, такой был когда-то? Про карьерный путь. Главная причина, зачем нужно рваться в те самые 20%  хороших компаний - это быстрый карьерный рост. Тут получается интересная  “цепная реакция“: ты знаешь и умеешь больше ->  устраиваешься в  хорошую компанию -> прокачиваешь свои навыки дальше -> выбираешь  еще более интересную компанию -> и так много раз.Утрирую: в  худшем случае, тебя берут ручником на регресс, и вылезать из этого  болота потом придется долго и упорно. В лучшем случае, в тебе видят  потенциал (и ты сам это подтверждаешь своими действиями) и дают задачи  "на вырост". Так, стать сеньором / лидом / скрам-мастером по итогу трех лет работы - вполне реально, наши выпускники прошлых лет это  регулярно подтверждают. В “обычном” случае у “среднего” тестировщика  этот путь нередко занимает более шести лет.Кроме того, интересная  работа также предполагает приятный коллектив, достойные задачи и (часто, но не всегда) более высокую з/п, в среднем +30% от “неинтересных” мест. — Спасибо за интересный разговор! Напутствие QA-студентам и начинающим тестировщикам? Упорства, терпения, силы духа. Короче, выбора красной таблетки - пусть даже все преимущества такого выбора проявятся через 1.5-2 года. Постоянно держать в голове что-то из разряда “тяжело в учении, легко в бою” или “я могу вам предложить только кровь, пот и слезы”. Но понимать это строго в метафорическом ключе: это не кровь - это краска; чем труднее задача, тем она интереснее и тем больше счастья приносит ее решение; а слезы - так они и от радости очень даже бывают. Решать интересные задачи, уверенно расти по карьере, помогать коллегам, заслужить уважение в своей и соседних командах, быть в хорошем смысле “белой вороной” и на равных общаться в т.ч. с глубокими технарями-интровертами - бесценно. И всё это - в ваших руках! Если не хотите пропустить следующий материал автора, что-то новое в QA-курсах или нюансы QA-собеседований, подписывайтесь на http://t.me/QAsmokeQA  Не хлебом единым