📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

Как стать Автотестировщиком на Python с нуля в 2026 году? - пошаговый роудмап

Даниил Николаев | Легко в ИТ55:36

Transcription

Угу. Так, а всем привет ещё ещё раз. Меня зовут Даниил. Я работаю автотестировщиком и менторю в направлении автотестирования.

А сейчас пошарю экран и расскажу про Roadmap, по которому обучаю своих учеников, и рекомендую придерживаться его при, если вы хотите, начать работать как автотестировщик. Так, сейчас одну минуту пошарю. Так. Так вот скрин вот сейчас. А сейчас видно весь экран и мира, правильно?

>> Мира видно, да?

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

То есть, э, всё идёт с того, что нужно изучить основы Python, да? А здесь я расписал максимально подробно, потому что, ну, основы Python много нюансов, которые лучше всего знать. А то, что не относится к Python, да, но это идёт к основам, это изучить лучше всего PARM и Git, да, то есть по гиту - это топ-10 любых команд, на самом деле. Ну, не любых, а топ-10, да, там, а, и понимать отличие их, да, потому что работать с гитом нужно и причём уметь нужно через консоль работать. Это спрашивают на собеседованиях.

Ну, и PARM, а почему он, а не VSкод, да, есть вторая платформа для написания кода. А в пачарме всё предустановлено, да, и с ним намного проще. Даже бесплатной версии комьюнити, да, которая есть, её обычно хватает.

А дальше, а как рассмотреть данный roadmap, да? То есть вначале идём по левой стороне, а потом идём по правой, сверху вниз. А переменные и правила наименования, да, то есть, ну, это основа, да, то есть как создаются переменные, нужно понимать и и как их правильно наименовать, да, то есть то же самое касается наименования функций, потому что э потом, когда, да, вы чужой код читаете или ваш кто-то будет код читать, нужно, чтобы было понимание, да, что за переменная и за что она отвечает. Ну и, как правило, наименование помогает определить.

А далее отдельным пунктом вынес type и ID, две функции, встроенные в Python. А что они делают? Да, то есть type у нас, получается, определяет, что за тип данных, а ID позволяет определить, что за за айдишник внутри памяти Python. Вот.

А и далее лучше всего изучать, получается, типы данных, какие бывают. Начать лучше всего, проще всего с int, да, то есть это числовые данные - это целые числа и числа запятой кото, да, не целые. И, конечно же, с ними какие-нибудь арифметические операции. И также понимать, да, как пишутся сокращённые операторы, да, то есть это у нас, а, когда мы можем там, грубо говоря, сократить длинную строку, если мы к одной переменной прибавляем там единичку, да, увеличиваем её на один раз, там какая-то итерация происходит, а нужно вот эти короткие записи тоже понимать, как они работают.

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

А далее это спецсимволы в строках. То есть спецсимволы позволяют э делать перенос строки даже когда вы пишете в одной строке, да? То есть, допустим, вы написали сш, и у вас, а, строка разделится в этом месте, и следующая надпись, а, часть строки будет выведена в консоли именно с новой строки, да? То есть это тоже нужно понимать и уметь этим пользоваться, потому что а когда вы будете читать чужой код, да, то есть тоже нужно знать, а что же там написано. Ну и также есть такое понятие, как сырые строки, где вот эти все спецсимволы не работают, да, и вы можете туда написать всё, что угодно. Обычно сырые строки используются для путей Windows и в регулярных выражениях.

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

А пойдём дальше. Ну, у строк также есть такое понятие, как, э, конкатинация и повторение, да? Конкатинация - это соединение двух строк, а когда мы можем, например, написать там одну строку, вторую строку между ними плюс, и строка соединится, да, то есть склеится, и получится новая строка, а, которую можно будет использовать далее. Умножение - это когда мы можем повторить строку именно несколько раз, да? Например, там какоя-то часть строки умножили на число, и оно увеличится на нужное количество раз. Там, если, конечно, должно быть число целым. Вот.

Также длина строки, да, где мы можем сейчас увеличу немножко побольше. Длина строки, да, то есть где мы можем, а, узнать, ну, понятно, длину строки, сколько там символов. Ну и а такой оператор, как in. И in позволяет внутри строки узнать наличие подстроки, да? Например, там будет, не знаю, а строка, как моё имя, да, Николаев Даниил Александрович. И нужно найти, допустим, что проверить, что в этом имени существует там, не знаю, Даниил, да? И тогда мы напишем строку Даниил Ин Николаев Даниил Александрович, да, где будет понятно, а что это, ну, есть слово Данил внутри вот этой длинной строки, где Фио написано.

А далее отдельно вынес, вроде небольшой пункт, но должно быть понимание, да, что заглавные строчные буквы - это разные буквы, да, хоть и выглядят вроде одинаково. И то же самое для наименования переменных, когда вы используете большие буквы, это не равно теми же буквами, но маленькими, если написать переменную. Это разные две переменные. Ну и то же самое - это каждый символ, он отдельный. А метод ORD встроенный в Python функция, она позволяет как раз определить, какой айдишник у какого-либо символа. Вот можно им пользоваться, если у вас есть какие-то сомнения а в этих символах различных.

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

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

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

Ну и метод-формат, ээ, он более такой считается иногда устаревшим, кто-то говорит, но он очень удобен, когда мы передаём строку из одной функции в другую подставить какое-то значение. Это такие нюансы, которые кто-то использует. А вот тоже нужно помнить, что существует такой формат, потому что во многом коде, а когда вот я пишу, например, или смотрю чужой код, то я вижу, вот иногда используют формат, и я понимаю, да, что он делает, и тогда проще становится понимать смысл.

Далее, ну вот и вывод - это простое, да, то, что мы можем вывести в консоль, да, и то, что мы можем получить данные из консоли, да, то есть запросить у пользователя какие-то значения и получить их. А в реальной работе инпут не работа не нужен, да, он больше нужен для того, когда вы что-то тестируете, да, и отлаживаете, да, то есть вы можете написать inпут, получить какое-то значение и проверить, что оно работает. Вот. А, как правило, input не используется, а вот print, он, в принципе, используется тоже очень часто для отлаживания, да, то есть, допустим, распечатать какой-то какую-то переменную и понять, а почему вот что в неё попадает в какой-то момент, почему код не работает. А я часто принтом пользуюсь для отлаживания своего кода. Вот. А, ну и также есть параметры SEP и End, да, тоже про них можно почитать. Очень много информации, а, имейте в виду.

А далее, тип данных булевое значение, да? То есть булевое значение всего имеет два варианта, да, это true или false, то есть да или нет. Ну и, конечно же, нужно понимать логические операторы - это которые там, когда, допустим, если мы пишем там true and false, да, то есть и означает, что оба значения должны быть true, да? Если они оба не true, значит будет fфse. Опять же, может быть, сложно звучит на ходу, а, но всё это можно будет посмотреть. Также есть э в интернете. Вот. А, ну и приведение к бульвому значению. Вот это тоже лучше всего понимать, да, то, что как приводится к булу, а, различные значения, да, то есть там пустая строка, пустой список, либо ещё там какие-то элементы, единичка или нолик. А вот это часто спрашивают на собеседованиях. Причём прямо спрашивают напрямую и говорят: "Вот, а расскажи, как вот это будет действовать?" Да, в реальной работе это не всегда нужно, а вот такую проверку на собесах делают.

А далее очень большая тема и важная - это списки. лист по-другому на и вот нужно их прямо тоже знать. Тоже много всего расписал. Это лучше по порядку можно будет прочитать, да, и понять, что происходит, то есть что такое список, да, как вот получить доступ к определённому элементу. Кстати, очень хорошо, если вы про строки всё хорошо поймёте, то индексы в списках не составит труда понять, потому что а используется практически тот же самый метод а для получения доступа к какому-либо элементу внутри списка. Ну и также есть различные варианты у списков, да, то есть тоже плюс, умножение, очень похожи на строки. Также вхождение in можно то же самое будет использоваться, но удаление элементов это просто удалить можно элемент. То есть нужно понимать, а также, да, что есть изменяемые и неизменяемые типы данных. А то есть изменяемые типы данных - это, например, лист, да, где мы можем к нашему объекту добавить ещё какой-то элемент, либо его удалить. Как видите, да, есть возможность удалить. А у строк такого нет, потому что строки, когда создаётся она, она уже не изменяется, но её можно преобразовать и создать новую строку. Вот. А то же самое набор методов списков, которые используются часто, да, то есть причём они практически все используются, а тоже их можно будет почитать и углубиться в них. А, ну срезы, про срезы уже чуть выше сказал. А и то же самое там разворот списка тоже иногда спрашивают на собеседованиях. А тоже нужно понимать.

Далее, типы данных. Дикт, да, словари. Словари - это тот же самый GSON, который мы получаем от сервера, да, ответ. Если кто-то уже, например, работает ручным тестировщиком, это может понимать. Вот. И то есть словари получается это вот основа для взаимодействия через апи, а потому что мы получаем этот набор и должны уметь работать с этим словарём. А, и как какие варианты у него есть, как его создавать, как его добавлять, элементы, удалять элементы и так далее. Потому что в словарях практически всё передаётся. И хедеры, когда мы отправляем запрос, а, и, ну, тело запроса, само собой, чаще всего это jon, да, то есть по-другому словарь. Вот. Ну, конечно, Jсоon - это другой немножко объект, да, то есть просто он в Пайhне называется именно как словарь. тоже, то есть множество методов расписал, да? То есть они все какие-то, может быть, даже похожи по названию, как и в списках, но в основном, то есть они могут чуть-чуть другую функцию делать, тоже нужно знать. И также отдельно выделил, вроде небольшой такой нюанс, объединение словарей, да, то есть через update функцию, встроенную в Python, либо через две звёздочки. Вот как это сделать, это, в принципе, несложно, да? То есть также можно будет посмотреть, да?

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

А типы данных tle, да, то есть tle объекты - это неизменяемый тип данных, да, то есть где мы добавляем какие-то элементы и мы их не они не меняются, да, то есть, но причём нужно понимать, а что, да, то есть для чего он нужен, почему используется. И вот тут вот как раз вот, да, отличие от списков нужно понять, потому что тоже такой вопрос у меня был на собеседовании, да, то есть чем отличается табл от списка, да? То есть почему он так? А, но по-другому тапл - это кортеж. А, ну и нужно ещё знать тоже работу с ложными изменяемыми объектами, да? Например, у нас есть tл объект, да, то есть где внутри есть там и строки, и числа, и, может быть, даже список. И вот внутри списка должны быть изменяемые типы данных. То есть нужно понимать, а как это работает. Там такая определённая вложенность. И интересно понять, а, то есть внутри списка мы можем, конечно, изменять объекты, да? Внутри сам список заменить не можем. И, э, такой один из небольших элементов типов данных - это set. Set, ну, это просто множество неупорядоченное, причём уникальных значений, да? То есть, если у нас есть список какой-то, где есть, например, там повторные какие-то элементы, да, то есть, если мы приведём этот тип данных к сету, да, к множеству, то дубли все удалятся, да, но поряд я использовал нечасто, в основном он используется для работы с набором данных каких-то, да, чтобы можно было найти какие-то пересечения либо какие-то отличия друг от друга, да, то есть двух наборов списков. Вот это по основам.

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

А далее циклы. Вот вот на циклах у учеников чаще всего проблемы, сложное понимание именно вот йла ифо. А здесь что могу подсказать? Здесь, наверное, просто нужно наработать, возможно, а разные ресурсы посмотреть, почитать, да, можете посмотреть и моё видео, и где-то дополнительно ещё что-то подглядеть. И когда вы сделаете пару простых задачек, тогда будет понятно, да, чем они отличаются и для чего они нужны. Циклы тоже используются повсеместно, да? То есть чаще всего они используются со списками. А потому что в списке мы можем, нужно, допустим, есть набор элементов, которые нужно перебрать и обработать. Соответственно, вот цикл фо какой-нибудь или в зависимости от того, что вам нужно, можно будет использовать.

А, ну итераторы и генераторы я вынес сюда же, э, тоже в основы Python. Здесь, наверное, больше это относится к определению итераторов, генераторов. То есть прямо на собес спрашивают именно определение, что такое итератор-генератор, чем они отличаются. Вот они в принципе не сложные, да, то есть и а у них есть как бы отличие, да, и понимать для чего они нужны. А причём у итераторов, да, то есть чем, почему они так вот работают, да, итер как его преобразовать в итератор и что такое next. А у генератора ещё дополнительно а спрашивают, что такое listion, да? То есть это когда мы можем, а, создать какой-то список с набором условий, а, через цикл for, причём в одну строку. Ну, и то же самое с добавлением if. А, то есть ещё какие-то дополнительные условия можно добавлять.

А дополнительно у Пайтона очень много встроенных функций, причём огромное количество, да, я здесь постарался выделить, ну, как занёс функции, а, и то, что с ними, как работать, да, то есть есть, а, допустим, встроенные и пользовательские функции, да, то есть есть встроенные в виде MAPФilter и ZIP, а они такие вроде бы простые, но лучше их, э, запомнить либо как шпаргалку куда-то написать, потому что большинство задачек, которые есть есть логических, да, а, вот можно решать с помощью этих функций, да, причём MAP очень часто вот в логических каких-то задачках используется. То же самое про all и any, да, то есть не раз встречал и в коде, и сам использовал вот эти вот эти функции. А дальше, ну, понятно, у функции должно быть какое-то возвращаемое значение, да? То есть функция что-то выполняет и что-то возвращает. тоже нужно понимать и знать, как оно возвращается, да, и что делать, если мы хотим ничего не хотим возвращать, да, что происходит с функцией, да?

А также большая тема - это позиционные и именованные аргументы, да? То есть позиционные - это которые мы просто передаём в виде какой-то строки, числа либо другого какого-то объекта. А именованные, когда мы пишем, например, там headers равно и какой-то набор хедеров, да, это именованные аргументы. А нужно тоже понимать, чаще всего вы будете видеть именно а набор вот таких вот аргументов, да, именованных и, а, позиционных. Ну и, соответственно, продолжение этой же темы, да, то есть это передача ARКS и КварKS. А, выглядит страшно, да, и для многих изначально непонятно, но постарался разложить всё в видеоуроке, так что не должно быть проблем. То есть, ну, это операторы, которые позволяют передать функцию неограниченное количество именованных, а, и позиционных аргументов, да, хоть сколько можно передать и уже вот с помощью Arcs и Quarks разобрать их и использовать. А причём, кстати, очень многие встроенные функции используют именно Arc Quarks. Вот, да, а потом уже перебором определяет, какой как какой элемент передался и что с ним делать нужно будет. А чтобы наша функция, например, не сломалась, если мы передали лишний элемент, либо не передали какой-то другой. Вот. Ну и также отсюда же идёт у нас, допустим, распаковка коллекций каких-то. Коллекций. Это у нас а всё, что имеет набор каких-то элементов. Это может быть кортежи, списки либо, а дополнительно сеты, да? То есть мы можем распаковать, а с помощью звёздочки, да? То есть у нас получится, а просто через запятую какой-то набор элементов.

К функциям также стоит отнести лямбда функции. А часто используется, часто вижу коде и сам иногда пишу. Вот это кратко однострочная функция, да, в виде одной строки, где ключевое слово лямбда, само собой, и оно пишется.

А декораторы вот это вот, наверное, прямо можно бы, наверное, можно было бы отдельным цветом закрасить, потому что декораторы прям, ну, суперважная тема, а, особенно, ну, в автотестировании, наверное, где угодно, потому что, ну, декораторы они повсеместно используются, причём и самописные декораторы сам писал тоже декораторы на работе, и чужие использовал декораторы, кто-то написал. То есть нужно понимать, как они работают, а, почему там одна функция в другую вложена, да? А и как вообще написать свой декоратор? Вот прямо суперважно.

А далее есть функции генераторы, да? То есть это функция, которая, а, сохраняет своё состояние. Ну, наверное, сейчас непонятно всё-таки, да? А, но после изучения, да, опять же, в видеуроков каких-то, а, станет понятно, да, что есть вместо return слово y, да, то есть и оно используется. Вот.

И подходим к следующей теме- это модули. Ну, модули и компоненты, да, по-другому называют, да, то есть, а, это, то есть модуль - это отдельный файлик, у которого есть какой-то набор функций, и мы хотим эти функции использовать у себя, да, то есть они используются с помощью там импорт, а, или ключевых словых слова s, from, а, и так далее, да? То есть мы можем импортировать либо все функции из нашего модуля, либо какие-то, а, определённые, да? То есть также мы можем портировать из своего модуля, который мы сами можем написать, либо через сторонний модуль какой-то, который мы установили. Тот жест либо Pтеest, да, самый популярный, и многие другие. Ну, установка идёт через PIP, да, то есть как это делать, это, в принципе, тоже э несложно, да, то есть и также видеоуроки рассказываю.

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

А работа с файлами тоже must have. Нужно знать. А как чтеть, как читать файлы, как и записывать их, да, причём разные форматы, а, и причём и как их правильно закрывать, да, то есть и и вот, да, то есть как используется, например, контекстный менеджер, да, чуть позже сейчас перейдём к этой теме.

А следующая тема, да, то есть написал дополнительно, да, потому что тоже важно, но не знал, как в какой блок это определить, да? То есть нужно знать existance, да, часто используется и чем он отличается от type, да? То есть existance проверяет даже плюс наследование используемое, да, которое в классах, если мы проверяем отношение к класса какого-то объекта, а вот, а Type просто проверяет его тип и понимает, что без глубокого наследования. Поэтому когда из instн используется, когда type, нужно тоже понимать.

Аа булевое значение, да? То есть я немножко закоснулся этой темы, да, что если, допустим, а к булевому значению привести там ноль или единичку, да, то это будет, а, тоже нужно понимать, то, что булевое значение, оно является под классом, а, integer, да, чисел, да, то есть булево - это как число, по идее.

А модуль рандом здесь мы просто в автотестах часто используется, да, чтобы сымитировать какой-то набор элементов, да, например, у нас когда мы создаём какую-то сущность в виде файла, а то мы должны ему имя передать. И чтобы имя было случайным, да, чтобы избежать парадокса пестицида. Это вот в в ручном тести такой термин есть, да, то есть чтобы мы не использовали одни и те же значения, да, а для наших тестов, да, одни и те же тест-кейсы, а то здесь использоваться можно рандом, где мы можем добавить там определённое количество чисел, букв и так далее. У рандомно у рандома очень много таких подфункций, методов, которые можно использовать, да?

А далее, а аннотация типов, а это а важная тема, да? То есть, например, вы, возможно, кто-то уже видел, там есть функция, да, там и принимает какие-то аргументы, и ставится двоеточие, пишется там str, либо лист, либо что-то ещё вообще странное. Это и есть аннотация типов, да, то есть она позволяет показать следующему разработчику, да, либо вам в будущем, да, когда вы написали функцию и забыли про неё, а какие типы данных можно передавать в определённый аргумент. Это важно для того, чтобы потом понимать, как она работает. Причём, а, pйчарmм будет подчёркивать, если вы, допустим,

передаёте строку, а там ожидается число, у вас PyCharm подчеркнёт, скажет: "А ты передаёшь строку". Вот. Так что аннотацию типов рекомендую использовать там с самого начала обучения и во всех, а каких-то тестовых функциях всегда писать аннотацию типов, привыкать к этому.

А что же такое assert? А тоже нужно понимать, да? Это уже как раз мы переходим к автотестированию, где с помощью asserts мы отлавливаем какие-то ошибки. Причём, assert нельзя использовать в логике какой-то. Assert мы используем именно, чтобы отловить какую-то ошибку в именно в проверке чего-либо. Вот только для проверки нужен assert.

Ну и также суперважно - это обработка исключений, да, где мы можем использовать обработку исключений. Что это? То есть, например, а мы пытаемся открыть файл, которого не существует у нас в папке, да? То есть, ну, понятно, вы знаете, что у вас какие файлы существуют. А если вы отправляете код куда-то, где он запускается в облаке, да, у вас на работе, то вы не знаете, создался ли этот файл или нет. То тут как раз помогает нам вот такая обработка с помощью try, где вы можете файл, допустим, если не получилось читать, то отловить ошибку, да, что файл not found, не помню точно название ошибки, файл not found будет, а и написать своё сообщение, чтобы ваша программа не упала, а могла продолжить работу дальше. Вот.

Ну и также вот эти все четыре слова нужно знать, какой что за какое отвечает. На собесах любят спрашивать, что такое try, except и finally, да, когда какой блок запускается. А ну и отдельный raise, да, то есть он обычно используется, чтобы выкинуть ошибку какую-то, а чаще всего используется в блоке except, да, то есть когда мы поймали ошибку, raise выкинул и определённая ошибка у нас появилась.

Это что касается основ Python. А предлагаю перейти к ООП. А по ООП, а я чуть меньше расписал, потому что здесь больше нужно, а, именно понимать, наверное, три основных слова, да, то есть это наследование, инкапсуляция и полиморфизм. А, но кроме этого, конечно, есть и другие нюансы, да, то есть вообще, что такое класс, да, как его создать и чем отличается сам класс, да, от экземпляра класса. Вот здесь как раз а вам может помочь метод ID, да? С помощью ID вы сможете понять, что вот этот класс определённый, допустим, имеет отдельный айдишник, да, и у вас создался другой класс совершенно. То есть с помощью айдишников можно понимать, что это одинаковые объекты либо неодинаковые. Очень удобно для отладки а какого-то кода либо для обучения. То есть также это добавление, изменение и удаление свойств внутри класса, да? То есть что такое свойства сами класса, что такое атрибуты класса, что такое методы класса. Ну причём, ну методы сейчас чуть ниже рассмотрим ещё. Вот проверка наличия атрибутов в классе, да, то есть вот эти вот getattr и так далее. То есть тоже нужно понимать, как они работают.

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

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

А про методы, а про методы тут основные, основное я перечислил, да, что нужно понять, что такое self, да? Причём вы внутри метода можете, а, запринтовать, написать print в скобках self и айдишник его, да, то есть и, допустим, запринтовать сам экземпляр класса, который вы создали ниже. И вот после этого, возможно, начнётся понимание, что self - это и есть ссылка на экземпляр класса, когда мы используем из экземпляра класса какой-то метод.

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

А далее, ну и нужно понимать, как правильно называть, да? То есть, если атрибуты мы создаём, говорим, что это существительное, да, там entity сущность, например, там, не знаю, а или там account, да, банковский счёт или что-то ещё. А, и также нужно понимать, что методы - это должно быть глагол, да, какой-то, что он делает, например, там, не знаю, getка либо, а, fix, ну, не знаю, там, changeка, либо что-то ещё. То есть какое-то слово, а, которое обозначает глагол, а что мы делаем с определённой сущностью? Вот.

Ну, и понятно, да, то есть отдельно написал, да, хоть и понятно, вот, возможно, многим, но желательно уделить внимание и этому, да, что такое метод и что такое свойство, да, по-другому атрибут. А, ну, и чем отличаются методы, classmethod, staticmethod, тоже нужно понимать, да? То есть это опять же возвращаемся, это декораторы, которые наставляются над методами, да, и чем они отличаются. Тоже на собесах часто любит такие вопросы задавать, непонятно зачем, потому что, э, ну, ты увидишь это понимание, это, не знаю, за 5 минут можно понять, что это такое. Ну, когда вы, конечно, основы изучили. Вот.

Аа существуют также магические методы, а, во, да, то есть их мное множество, да, то есть, а, и основные вот эти, да, то есть желательно их, ну, не желательно, а нужно их понимать, да, вот я написал четыре этих метода, а плюс плюс, э, также магические методы call, str и repr тоже отдельно вынес. А почему так вынес? Потому что у меня уроки построены в таком формате, да, именно в такой очерёдности. Вот.

И property для инкапсуляции и валидации, да? То есть то есть к инкапсуляции сейчас подойдём чуть ближе. А подскажите, меня хорошо слышно? А то я вижу, картинка моя отстаёт немножко от голоса. Да, да, хорошо. >> Всё, спасибо. А пойдём дальше.

А по правой стороне, а здесь я выделил отдельные строчки, стрелочки. Сейчас расскажу, почему. А атрибуты, то есть, ну, атрибуты нужно понимать, что вида, да? То есть это публичный, защищённый, приватный, да? То есть может быть, а, плохо видно, да, да? То есть есть просто атрибут названия, есть атрибут с нижним подчёркиванием одним и атрибут с двумя нижними подчёркиваниями. Их отличие нужно понимать, как они работают и почему их такие делают. А если кратко, да, приватные атрибуты делают для того, чтобы, а, когда ты создаёшь экземпляр класса, ты не мог обратиться к этому атрибуту. То есть это приватный атрибут нужен для того, чтобы только работать с ним внутри класса. Вот. Обычно какие-то это пароли либо хешируемые какие-то суммы, которые, например, не хочется, чтобы кто-то видел снаружи, да, либо что-то ещё. То есть какая-то чувствительная информация.

А далее, а отдельным блоком вынес принципы ООП, да? То есть это четыре слова, а три - это те, которые нужно прямо 100% знать, а абстракцию нужно, ну, так посредственно знать. Я, например, на собесе говорю, что, ну, абстракцию, ну, не использую я в работе, да, то есть я понимаю, как она выглядит, знаю, что такое, но в работе не использую. И обычно вопросы отпадают, а вот и понимаю, что абстракцию, ну, просто на собесе спрашивают, наверное, просто для того, чтобы спросить, а не для того, чтобы понять, знаешь ли ты, что это такое.

Вот давайте переведём к первому принципу, да, это наследование, да? То есть то, что у нас есть определённый класс, а причём сразу хочу отметить, что вот есть главный класс object называется в Python. И все классы, даже если мы явно не наследуем, не пишем, что мы наследуем, они все наследуются от object. Вот это вот прямо нужно знать, ээ чтобы понимать, что потому что все вот эти вот встроенные, э, магические методы, они все идут от object. То есть, допустим, вы создали класс и вот эти методы не указали, но они существуют у нашего класса по умолчанию, потому что мы их унаследовали от главного класса Object. У него хранится все вот эти вот магические методы. Кстати, слово ещё вот говорят иногда на собесе методы, магические методы, ну или просто метод с двумя подчёркиваниями. То есть все эти три слова я слышал с интервьюеров, когда собеседовался.

А, и также нужно понимать множественное наследование, да, когда мы хотим, например, наследовать несколько классов разом в наш класс текущий.

Инкапсуляция. Я вот провёл стрелочки различные. То есть к инкапсуляции как раз относятся защищённые приватные атрибуты, и относятся сами классы, да? То есть внутри классов аа инкапсуляция как раз и строится с помощью вот приватных атрибутов. Также могут быть и приватные методы, да, не только атрибуты. Здесь я почему-то не добавил, но методы тоже могут быть приватными и защищёнными. Просто обычно атрибуты делают такими, а методы тоже делают с нижними подчёркиваниями, чтобы понимать, что они используются внутри класса.

А полиморфизм, ну, здесь слово такое, э, ну, на самом деле простое, но, возможно, и в начале оно путает, да? То есть я тоже путался. А что это значит? Это значит, что есть один интерфейс. Допустим, у вас пять клас пять методов ой, пять классов различных, и они все обозначают животные какие-то, да? А, ну неважно, что. А обычно такой пример делают в виде животных. И у всех у них есть, допустим, а какой-то метод, э, hello, да? То есть что-то животное какой-то звук издаёт, там, не знаю, loud, шум, ну, не знаю, как на английском правильно сказать. Вот метод такой есть. А, и он получается у них у всех одинаковый. Вот. И это есть, э, полиморфизм, да, что у нас вроде разные все элементы, да, разные классы, но у них общий есть метод, который у каждого свой, да, там котёнок мяукает, там баран бекает и так далее.

Абстракция. Абстракция - это вот четвёртый принцип ООП, а в который используется с помощью библиотеки ABC. Вот. Наверное, этого достаточно. Если кратко, для чего нужна абстракция? Абстракция позволяет делать так, что когда у нас, допустим, мы создали главный класс, от которого планируем что-то наследовать, и в этой абстракции мы можем указать, что, допустим, вот эти методы можно наследовать, а какие-то методы, ой, где мы можем указать, э, что вот эти методы обязательно в начальном классе должны быть реализованы, иначе у нас ничего не заработает. Вот. Эго нужна абстракция, да? То есть это дополнительный библиотека дополнительная, которая позволяет установить декоратор над определённым методом. Вот это тоже можно почитать, где-то посмотреть.

А вот далее менеджер контекста а тоже сюда вынес, да? То есть его можно отнести и к основам Python, да, и в принципе классом. Почему именно в классы вынес его? Потому что э нужно понимать, как работает менеджер контекста. То есть он изначально там есть ключевое слово, да? И мы уже какую-то делаем манипуляцию, а, и потом автоматически происходят какие-то действия. То есть внутри класса, который создаёт менеджер контекста, есть ключевые, а, магические методы, да, то есть это __enter__ и __exit__. То есть __enter__ - это то, что мы делаем при входе в наш менеджер контекста, потом выполняем какие-то операции и __exit__, когда мы что-то делаем своё. А вот есть встроенные менеджеры контекста, например, у метода open, который открывает у нас файлы, да, с помощью специальных команд внутренних. И когда мы manager контекст используем with open какой-то файл и потом делаем манипуляции с файла и заканчиваем работу, то файл автоматически закрывается. Если его руками открывать, да, руками имеется в виду там, не знаю, а с помощью file.open там открывать файл без менеджера контекста, то его нужно руками потом закрыть. А если с менеджером контекста, то файл автоматически закроется, не будет никакой утечки памяти, а либо каких-то проблем. То, что файл зависнет, да, там заблокируется и им нельзя будет пользоваться. в будущем, ну, конечно, его потом можно будет снять за блокировку, да, если, допустим, какой-то метод начинает в него что-то записывать, да, и он блокирует файл. Вот. Но менеджеры контекста тоже на собеседованиях часто спрашивают.

К следующей теме. А следующая тема - это основа ручного тестирования на YouTube. Она у меня есть бесплатно также, да? То есть причём со всеми вот этими темами, которые есть, кроме Linux. Linux ещё не снимал. Вот. Ну, здесь всё просто, да, то есть это база теории тестирования, да, то есть вообще там основа, чем чем отличается там а тестировщики, какие виды их бывают, да, там э причём спрашивают на собества, хотя сами могут не понимать, какие виды тестировщиков. А классификация тестирования, да, то есть техники тест дизайны какие-то, то есть как тестировать лучше всего документация тестовая, да, то есть это важно понимать, какие документы создаются.

А, ну, базы данных прямо основа основ, да, нужно знать язык SQL. Вроде бы ручное тестирование, но язык программирования, ну, SQL - это не язык программирования, да, а язык запросов. Вот. Но нужно знать, а что такое клиент-серверная архитектура, да? То есть что такое клиент, сервер, микросервисы, всё это нужно понимать вот в рамках вот этих уроков. А тестирование фронта - это нужно понимать, что такое инструмент, есть инструмент DevTools, какие у него вкладки, как им пользоваться и что есть внутри. В принципе, тоже всё это вот в YouTube бесплатно всё это рассказываю про это.

А, окружение для тестировщика, а это инструменты развёртывания, да? То есть какие есть это что у нас может быть? Это CI/CD часть, это Docker, Kubernetes. А нужно понимать, какие окружения бывают, да, там тестовые окружения, prod окружения, prod окружение. То есть нужно понимать, а что это такое, да? Потому что изначально это непонятно, да, и когда вы придёте на работу, будет многое непонятно. Лучше заранее об этом почитать.

Так, и почему-то тестирование фронта второй раз написал, удалю его сразу. А, ну, технологии, инструменты, понятно, это Postman для запросов API, то есть с помощью, то есть не только API можно передать, да, там можно и GraphQL подключиться, а, и в Kafka что-то отправить. А, ну, тоже есть урок хороший у меня про Kafka, где мы через Postman сможем отправить запрос. А, и причём Kafka разворачивать будете у себя через Docker. Локально на компьютере у вас будет своя Kafka, в которую вы можете отправить запрос. Вот тоже такой урок есть. А Kibana. Kibana - это просмотр логов. Сейчас ещё популяр набирает популярность. А нате добавлю сразу. Splunk называется. Вот он для чего нужен? Splunk нужен то же самое, но только это импортозамещение, потому что Kibana платная, да? А Splunk open source и его начинают использовать и на него кто-то уже переезжает какие-то компании. А там в принципе тот же самый просмотр логов, только в Splunk немного по-другому это есть. Вот ещё есть другие, конечно, логи в разных сервисах, но обычно вот Kibana, Splunk из того, что я слышал.

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

А TestRail - это один из примеров TMS. А - это Test Management, да? То есть система, которая управляет, а, тесткейсами. Вот. А, то есть это тесткейс - это что? Это набор каких-то шагов, которые мы должны выполнить и получить какой-то определённый результат, да, ожидаемый результат. Вот. И TMS помогает это всё оптимизировать, делать в наборы тесткейсов, например, там перед релизом, да, запускать их, проходить их руками и там подставлять, прошли, не прошли. Вот есть RAIL, есть Test IT, есть. А TestOps чаще всего с автотестами используется, потому что, ну, не знаю, чаще всего встречал, по крайней мере, так, но, наверное, многие TMSки такие же есть.

А, ну Docker Kubernetes кратко рассказал, да? То есть Kubernetes - это у нас оркестратор, а, которые могут Docker Docker контейнерами управлять, да? А Docker - это, э, раньше это было как что-то общее, потом Docker отдельно вывалился в виде отдельной платформы, а, которая позволяет у нас, а, создавать образы, да, то есть какого-то набора, а, набора функций внутри, да, то есть какой-то своей операци не операционной системы, а части операционной системы урезанной, вот, и какое-то там приложение разворачивать, чтобы вот, ну, понятно, то есть нужно понять отличие, что такое Docker, что у него есть там внутри, какие атрибуты есть и так далее. Ну и желательно тоже вот в видеоуроках есть возможность посмотреть, когда вы Docker будете разворачивать. И там же есть логи, тоже можно их посмотреть, чтобы понять, как найти какую-то ошибку.

CI/CD - это continuous integration и continuous delivery, да? То есть continuous integration она позволяет, а у нас оптимизировать, оптимизировать, наверное, автоматически выполнить какую-то набор функций при интеграции, да? Например, вот в Continuous Integration у нас позволяет встроить автотесты наши для того, чтобы код, который написали разработчики или frontend, неважно, запустили и а что-то это сохранилось. То есть, ой, не сохранилось, а, а, извините, сейчас немножко отдышусь. А, то есть он позволяет запустить наши автотесты именно в тот момент, когда наш код, например, направляется на следующий этап, да, там, на следующий, а, а, на следующий стенд, да, то есть это тестовый припровод или и так далее. Вот. И автоматически запускается. Это позволяет проверить сразу на наличие каких-то ошибок либо багов в поиск, либо просто проверка. Это может быть обычное кода, да? То есть там какой-то линтер, который проверяет, что код написан красиво, отступы все правильные и так далее. А CD - это уже сама доставка, да, то есть какой-то набор конфигов, который позволяет отправить код уже непосредственно до конечной точки.

Добавил сюда пункт Linux. А здесь что нужно? А здесь лучше всего просто, не знаю, выделить топ 20 каких-то команд Linux, их почитать и понять, как они работают, попробовать у себя, да? То есть, если даже у вас Windows, вы можете спокойно установить себе WSL либо WSL2 сейчас, да, то есть и какую-то Ubuntu консольную, и в ней уже позапускать команды Linux.

Далее, а следующее - это блок именно автотестирования. Ну, э, здесь, э, расписал основное, да, то есть это нужно понимать окружение в Python, как они работают, а, то есть что такое вообще окружение, какие там библиотеки вы ставили, не ставили, почему там в одном окружении есть библиотека, в другом нет. Вот это нужно понимать. А также есть большая библиотека Pytest, да? То есть я выписал основное, то, что есть у неё там параметризация, группировка и исключение, и также отдельная фикстура. То есть нужно понимать, у Pytest есть свои исключения, да, помимо вот except, где мы посмотрели, у него есть свои ещё исключения, которые тоже можно использовать. И фикстуры, что это такое и как их писать. В автотестировании также важна структура проекта, да, то есть какие файлики где создаются, какие папки, как всё это организовать.

Pydantic поможет для валидации данных, которые вы отправляете и получаете. .env - это часто такой файлик есть, а, и может в супер ввести, потому что непонятно, что он делает. Он это это окружение, environment по-другому. И у него может быть какие-то токены, а мы обычно прописываем локально, чтобы можно было подключиться к какому-то сервису удалённому. И всё. Обычно уже они настроены, просто говорят вам, где его включить. Вот просто нужно знать, что есть такие файлики точка.

А также нужно понимать Git, что такое, да, то есть то, что такое PR, MR, merge и так далее. Вот, то есть как это всё работает вместе. А причём в основах Python видеоуроках, которые есть вот на YouTube, а там, в принципе, кратко я рассказываю про Git тоже есть. И автотестирование основное у меня тоже есть на YouTube, тоже бесплатно. А можете посмотреть там про Git хороший видеоурок снял, где тоже рассказываю про том, как мержить, как правильно на работе работать с Git.

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

А есть ещё вся CI/CD часть. Здесь я отдельно выделил автотестирование, да, то есть то, что её нужно чуть глубже знать. То, что есть Jenkins, да, у которого есть язык Groovy, на нём писать нужно jobs, pipelines, которые по порядку идут. GitLab CI, да, есть и GitHub Actions, да, то есть есть три таких основных, а какие-то ещё есть, но я только с ними работаю, с этими тремя. Вот. Ну, и также есть, э, понимать способы запуска автотестов, да, то есть такая более теория бизнесовая, да, то есть когда запускать по расписанию руками из job, либо какие-то триггеры будут срабатывать, да, то есть триггеры, где вот я говорил про CI/CD часть в ручном тестировании, то, что наши автотесты запускаются, например, после того, как отправил код какой-нибудь разработчик. Вот.

Наверное, это основное. Далее, а-э, я расписал здесь всё это я скинул в телеге. А, то есть как понять, что готов к автотестам? А здесь просто нужно, то есть вот это основные, наверное, то, что смог вспомнить и перечислить. Вот. А то, что с этим вы уже можете, в принципе, работать как автотестировщик, наверное, это основное. Это более такое хардовое, конечно, не бизнесовое, а, то есть с хордами вот этого достаточно. А здесь останавливаться не буду. Здесь лучше почитать, да? То есть и в принципе оно всё перекликается с тем, что я рассказал ранее.

А далее был вопрос, где искать реальные вопросы с интервью? Ну м короткий ответ ВМ всё есть, да? Причём вот есть VM и бот, где можете вопросы выбрать любое направление, причём. А также есть список собеседований, да, то есть вот я ссылочку сюда же приложил. У меня есть свои собеседования, я выкладываю на Boosty, да, то есть можете тоже посмотреть. И в YouTube бесплатно шорцы. Я вырезаю самые прикольные вопросы, на мой взгляд. Вот плейлист тоже указал. Можно будет щёлкнуть, когда PDFку скину в чатик, и посмотреть. Там уже порядка тридцати, наверное, есть и будет пополняться каждый раз. Вот.

А далее, аэ, ну и, конечно, после всего этого хочу что-то предложить, да. Я открываю бесплатно, то есть всегда у меня было с предоплатой платное обучение. Я открываю сейчас, а, бесплатную группу. То есть, что это имеется в виду? А, то есть это без первоначального взноса, только с постоплатой, да? То есть вот ссылка на анкетку также скину в Telegram. А-а, то есть вы можете заполнить и приступить, если хотите, ко мне. Вот, то есть будет отдельная группа, где у нас будут жёсткие дедлайны, да, то есть просрочивание дедлайнов - это значит вас исключают из группы, да, и из обучения и так далее. То есть будет какой-то договор с вами составлен. А так что имейте в виду, можете записываться, да, кто хочет бесплатно, но готов учиться. Очень важный нюанс. Вот, ну, ещё какие варианты обучения со мной, да? То есть это личное обучение без каких-либо дедлайнов, либо просто покупка курса как отдельного продукта, где тоже будет проверка домашников. То есть личное обучение - это и проверка домашек, и помощь в трудоустройстве, а покупка курса - это проверка домашки, а, и минимальная помощь с трудоустройством. Вот, наверное, всё.

>> А можно первый вариант вопрос задать ещё?

>> Да, конечно. А это бесплатное обучение, набор группы, соответственно. И есть ли там помощь с трудоустройством? И какая постоплата?

>> Постоплата - это 100% 115% от зарплаты, то есть в течение 3х месяцев.

>> А, о'кей. А по помощи с трудоустройством >> тоже? Ну я на бесплатном обучении, да? То есть без предоплаты. Мой основной заработок будет с того, что ты получишь работу и я получу свой процент от твоей зарплаты.

>> Угу. Супер. Это потом по ссылке можно перейти.

>> Да. Я скину в Telegram, да, то есть на анкету эту ссылку. По ссылке можно пройти, если не найдёте, можете написать мне вот Aqua Pro Enter в Telegram, там попросить у меня ссылку, я скину и заполните.

>> Угу. Супер, спасибо.

>> Вот. А на этом всё. Какие-то вопросы, может быть, есть? Если вопросов нет, всегда можете написать мне, да? А также добавлю в Telegram ссылку на свой личный аккаунт, на группу свою. Вот. Так что, а, наверное, всё. Всем спасибо большое за внимание.

>> Спасибо. Очень классно было.

>> Всё, всем пока. Все вот эти вот как роума весь будет скинут в виде PDFок. Тоже всё это сделаю.

>> Данил, есть вопросы в чате.

>> В чате. А я чат не вижу, потому что я шарю. Сейчас как-то его открою. Во, нашёл. А. Так, Даниил, Влад Толчеев. Влад Толчеев курирует группу ООП в ООП именно по направлению QA. Вот. А сколько учеников получили работу? На данный момент получили полностью три ученика работу. Ориентир ЗП Aquнок Аквай Aquва. Сегодня рынок вот такой. Прямо сейчас перед встречей я посмотрел сейчас, блин, как убрать эту вкладку. Сейчас исчезнет вверху полоска. Во, вот на QA Python есть 609 вакансий. Блин, да что ж такое? Так, наверное, QA 3 можно циферку натрить, да? На QA Java 545, да? Это отвечу сразу на вопрос. В личку мне писали, а а какой язык лучше? Ну, по мне, Python проще, чем Java. Вот. Но это на всё на личное усмотрение, конечно же. Глубина Python для QA по сравнению с разработкой. А глубина меньше, потому что ты будешь меньше писать, а каких-то коннекторов для как в реальной работе, да? То есть там тебе нужно будет учитывать какую-то APIшку, писать для того, чтобы фронт мог зацепиться за твой энд и что-то чтобы что-то получилось. В автотестировании это проще, да? То есть это такой чуть проще разработка. Уровень задачкодинг Python на собесе очень различный, да? Э, иногда могут закинуть тебе какой-нибудь, а, там, не знаю, средненькую задачку с лидкода, либо могут закинуть вообще простейший какой-то вопрос. Бывали разные, бывали собесы вообще без лайфкодинга, просто мы разговаривали и всё. Аа менторство бесплатное, оно групповое, а менторство индивидуальное - это отдельное условие. Тоже можете в личку написать, уточнить. А, расскажи о себе свой путь. Сколько лет в IT? В IT с 2018 года основное, э, Python изучал с того же года примерно. полноценное IT такое, наверное, с двадцатого года получилось. А именно в автотесте максимально плотно начал с прошлого года. Вот. А ещё задавали мне в личку вопросы: "А нужно ли становиться ручным тестировщиком или этот этап можно скипнуть, если есть базовые знания языков программирования, понимания простых алгоритмов?" Я вообще не понимаю, ну да, часто такие вопросы возникают, но я не вижу смысла, что, допустим, нужно сначала стать ручным тестировщиком, а потом только автотестировщиком. Но это как, знаете, есть вот разработчики энд, да, они же в начале не становятся аналитиками, а потом энд раз-разработчиками, да, они сразу идут в энд-разработку. Вот здесь то же самое. Ты идёшь в разработку, только в разработку автотестов. Вот и всё. А тесты можно писать на любом языке или Python в приоритете. Тут Да, на любом языке практически, да, это Java и JavaScript, и TypeScript даже есть. И на C#ARP тоже пишут автотесты, но самый популярный из того, что я знаю - это Python. А какие интересны разницу в ЗП ручных тестировщиков и автотестировщиков? Ну, сейчас на рынке крайне нестабильно, да, и по зарплатам очень большая разница, да, например, а, на ручное тестирование из того, что я видел, да, там это, наверное, от 50 до 250, максимум 300, а для автотестировщиков это, наверное, а от тех же пятидесяти, причём видел, да, тоже такие вакансии интересные, а до 400, наверное, можно рассчитывать, но 400 - это очень сложно, и таких крайне мало вакансий. А дальше ещё был вопрос. А тактактак, а хочу также на на QA аквапозиции ходить собеситься для QA со знаниями бэкпитона. Нужно теорию доучить. То есть если, допустим, знаешь бэкпитона, нужно лишь что-то учить. Да, нужно учить. Именно учить нужно вот это направление блок автотестирования, где ты должен ознакомиться с Pytest, да, и с автотестами, с CI/CD частью и понимание, что такое Allure и так далее. Ну, Git, наверное, ты уже знаешь. А как выстроить roadmap? А всё. А если ты А как выстроить roadmap на авто, если ты вкатился на первый проект ручником? А по сути то же самое, да, только вот можно скипнуть часть блока основы ручного тестирования. Вот по хардам инструментам я бы что-нибудь посмотрел, а типа Kafka, и MQ, а всякую основу, если ты знаешь хорошо, то не обязательно. Вот какие-то ещё вопросы, может быть? Если всё, тогда всем спасибо, что пришло. В этот раз очень много людей пришло. Для меня, по крайней мере, да, у меня не часто бывают такие созвоны. В прошлый раз было 10. Спасибо всем большое. А в Telegram скину не сегодня, завтра, наверное, уже. Сейчас нужно бежать. А, спасибо тогда ещё раз. А, а ещё кто-то написал: "А как именно происходит? Выглядит на бесплатном курсе или будет подготовка к собеседованиям?" А собеседо составление фейк истории. Как именно процесс обучения? А курс будет тот же, который я сейчас даю и на личном обучении. Просто я сейчас уже доснял все видео для всего обучения, и будет постепенно выдаваться урок. А в течение недели нужно будет выполнить домашнюю работу, и каждые 3 дня новый урок выходит. Вот. Ээ это всё в индивидуальной группе. Вот нужно сдавать домашку. будет ментор у меня помощник тот, кто будет проверять всю домашку у вас и с вами общаться и еженедельные созвоны обязательно. Вот где мы будем проговаривать, у кого какие вопросы и что случилось. Вот. А будет ли подготовка к собеседованиям? Да, будет, потому что, ещё раз повторюсь, э курс бесплатный имеется в виду без предоплаты, а постоплата она, конечно же, будет в виде 115%. А и подготовка, безусловно, будет. Составление фейк истории. А, да, есть люди, те, кто хотят фейк историю, есть те, кто не хотят. У меня и такие, и такие ученики есть. Так что будем рассматривать и тот вариант, и тот. Вот.

>> А сколько по времени, кстати, он длится? Подскажи, пожалуйста.

>> Смотри, а всего примерно 34 урока. Урок выходит каждые 3 дня 3 месяца. То есть примерно старт курса будет в понедельник. А я забыл, в понедельник какое число? Через неделю только сейчас скажу. А через неделю, это ноябрь. Ноябрь через неделю. 10 ноября будет старт бесплатного потока вот этого. А, и 3 месяца получается 10го, так, ноябрь, декабрь, январь. А так и 10 февраля получается мы закончим. Так, да, правильно. Нет, да, всё правильно посчитал. 10 февраля закончим. Как раз рынок оживёт, и мы начнём подготовиться к собесам.

>> Спасибо.

>> Так. Какие-то вопросы ещё есть? Если нет, тогда всем хорошего дня. Пока. Ещё раз спасибо.

>> Спасибо. Пока.

>> Спасибо.

>> Спасибо. Пока.