Да-да, это будет еще одна статья про Python. Тот самый язык, который считается одним из наиболее популярных для изучения и использования. Статья будет полезна тем, кто еще только задумывается об изучении Python или делает первые шаги. Я попытаюсь описать свой опыт по изучению языка, поделюсь личными приемами, подскажу полезные и наиболее эффективные ресурсы, а также обозначу, на что бесполезно тратить время.
![image](https://habrastorage.org/r/w780q1/webt/ml/ii/io/mliiioo1l08kkafzzju1b6btj8s.jpeg)
Меня зовут Маша. Мне 28 годиков, 6 из которых я провела в обычной сфере обслуживания, а еще 5 – в сфере обслуживания с техническим уклоном (простыми словами – саппорт). Надо ли говорить, насколько за эти годы я устала от однообразия задач? И вот, в один прекрасный момент я загорелась идеей кардинально поменять свою жизнь, для чего была поставлена цель – перейти в тестировщики с применением автоматизации на Python.
Можно было бы долго прокрастинировать и маленькими шажками заставлять себя двигаться к смене деятельности, но я выбрала жесткий вариант – сразу попробовать найти работу.
Помимо самого желания сменить сферу деятельности, у меня все же был некоторый полезный багаж, а именно: высшее образование по специальности «Информатика и вычислительная техника» и предыдущий опыт работы инженером технической поддержки, где я тоже не стояла на месте и пыталась развиваться. У меня был стандартный набор знаний по HTTP, SQL, XML, а также небольшой опыт работы с PHP, Kotlin в связке с Selenium Webdriver. Кроме этого, я изучала теоретические основы по тестированию и пыталась их применять в работе, выполняя небольшие дополнительные задания.
Итак, цель поставлена: за две недели максимально эффективно изучить Python.
Будучи дитём девяностых, я начала с запроса в поисковой системе. Пролистав блок с рекламой (к нему я вернусь чуть позже), я принялась штудировать многочисленные статьи с подборками ресурсов по изучению Python. Каждая статья состоит минимум из 10-15 «отборных и наилучших» ресурсов, которые обязательно нужно использовать. Много статей просто перечисляют шедевры классики по Python, и читай их потом годами.
Я честно пыталась осилить несколько «лучших» книг для новичков по Python, однако через десяток страниц мне становилось откровенно скучно. Информация совершенно не хотела укладываться в моей голове. Признаюсь, ни одна из начатых мною книг до сих пор не прочитана до конца.
Мой совет – на начальном этапе не тратить время на изучение книг. Огромный объем информации, представленный в них, без практики не усваивается. В качестве справочников удобно использовать такие онлайн-ресурсы, как python.org, pythonworld.ru и подобные, где в структурированном виде можно найти необходимую информацию с примерами использования.
Моим следующим шагом стало изучение интерактивных курсов. Из множества предложений по бесплатным интерактивным курсам и ресурсам я выбрала несколько, которыми хочу поделиться с вами. Их будет не десяток, как обычно, а всего лишь три. Это те ресурсы, которые я лично испробовала на себе и которые дали наиболее эффективный результат. Их можно освоить как раз за две недели, проходя один за одним или параллельно.
При прохождении этих курсов я рекомендую не пропускать задания, даже если задача кажется элементарной или что-то подобное было изучено ранее. Повторение – мать учения, а если у вас такая же плохая память, как у меня, это позволит запомнить моменты, которые не усвоились с первого раза. Также в разных курсах одна и та же тема может быть раскрыта по-разному. Например, один автор описал применение одной половины методов строк и подобрал соответствующие задания, а в другом курсе более подробно рассмотрены другие методы строк.
Итак, потратив немало времени на разные курсы, я сделала для себя простой, но важный вывод. Хочешь изучить Python – найди ему применение, пиши код каждый день. Если ваша работа хоть как-то связана с обработкой данных или IT-сферой, попробуйте найти рутинную задачу, которую можно решить с помощью Python. Даже если написание скрипта займет намного больше времени, чем само выполнение действия, это уже будет большая победа. Как говорят в шутку, если действие занимает больше 1.5 секунды вашего времени – напишите для него скрипт.
![image](https://habrastorage.org/r/w780q1/webt/ad/n9/sb/adn9sbrjtgrigy-fg4fmjkfetbo.jpeg)
Например, мне на работе периодически попадалась задача, в которой нужно в веб-форме заполнить пару полей. При небольшом количестве данных каждый раз казалось проще сделать это руками, чем приступать к автоматизации этого процесса. Но когда суммарное количество заполняемых полей переваливало за десятки, я решилась написать скрипт на Python, который бы забирал данные из csv файла и с помощью методов Selenium за меня заполнял веб-форму. Мне это успешно удалось, что было приятно отмечено начальством.
Второй пример приведу из личной жизни. Помимо языка программирования, мне требуется поддерживать уровень английского языка. Моя личная проблема – я плохо запоминаю слова. Примерно как открыл-закрыл холодильник и сразу же забыл его содержимое, так же и у меня – встретила слово, посмотрела его значение в словаре и забыла перевод через минуту.
Я решила совместить два моих минуса – плохое запоминание английских слов и неидеальное владение Python – и получить из них плюс. Был написан скрипт, который выводит рандомные слова из заранее подготовленного списка и проверяет введенный мной перевод.
Моя рекомендация – прямо сейчас выбрать для себя задачу с работы или из личной жизни, которую можно автоматизировать через Python, и сразу же после завершения чтения статьи приступить к ее реализации. Кстати, наличие подобных собственных наработок в портфолио очень ценится работодателем при оценке кандидатов.
Второй отличный способ максимально эффективного изучения – использовать Python на работе. Будь то проявление инициативы на текущей работе и взятие новых задач, смена должности или даже поиск новой.
Как бы не хотелось это признавать, но изучение Python по книгам – не лучшая идея. Я люблю чтение, в нем много плюсов, но для начального этапа изучения языка это не эффективно. Обычно в книгах дается большой объем знаний без применения его на практике. Можно прочитать сотни страниц с описанием типов, примерами кода, лучшими практиками, но без самостоятельного написания кода это не имеет смысла. Например, может ли человек, только прочтя анатомический справочник, сразу же стать врачом и выполнить хотя бы простенькую хирургическую операцию?
После чтения книг у меня появилась идея в наш цифровой век воспользоваться визуальными способами потребления информации, для чего я полезла в YouTube для поиска видео или видеоканала, максимально полезного для изучения Python. К сожалению, идеальный для себя канал или серию видео я так и не нашла. Если искать конкретную тему или ответ на вопрос, то можно найти что-то полезное, но просмотр обучающего видео одного за другим в итоге снова привел к проблеме огромного количества информации, которое не применяется на практике. При просмотре видео становится лень повторять то, что ты и так уже видишь на экране. А после борьбы с ленью обязательно нужно расслабиться и включить какое-нибудь видео на отвлеченную тему. Всё, процесс обучения скатился в отдых. Тем не менее, если вы знаете отличные видео о Python на YouTube, просьба поделиться ссылками.
Следующий способ, который я попробовала и посчитала пустой тратой времени – пробное занятие в виде вебинара от одной известной онлайн-школы. В анонсе обещалось, что всего лишь за три урока я смогу написать свой собственный мессенджер. За полтора часа первого занятия на меня вылилось столько воды, что я чуть не утонула. Я узнала обо всех плюсах онлайн-школы, удобстве рассрочки оплаты, послушала счастливые истории выпускников курса и стандартный текст-введение о том, почему Python так хорош. К программированию или разбору полезной информации мы так и не приступили. Было очень жалко потерять столько времени, поэтому я даже не стала далее рассматривать другие предложения от онлайн-школ.
Когда начинаешь искать информацию по Python, в различных местах постоянно мелькают рекламные предложения о прохождении платных курсов. Их стоимость варьируется от нескольких тысяч до нескольких десятков тысяч рублей. Дается обещание, что по окончании курса ты сразу же станешь продвинутым программистом Python, найдешь работу мечты с высокой зарплатой, и вообще всё в жизни изменится к лучшему.
Почему я не включила платные курсы в списки хороших или плохих практик? Да потому что я ими не пользовалась. Кто ищет, тот всегда найдет, а на первое время достаточно только того, что можно найти бесплатно. Что касается платных онлайн-курсов, то в своем большинстве они предлагают изучение того, что и так доступно бесплатно.
Продвинутые онлайн-курсы я на начальном этапе не рассматриваю – среди них вполне могут найтись достойные кандидаты, которые помогут не только приобрести знания, но и сертификаты, ценящиеся в IT-среде. Наличие ачивок в любом случае показывает заинтересованность темой и способность к самообучению. Предлагаю в комментариях поделиться ссылками на ваши лично рекомендуемые курсы для следующего уровня после начального.
Платные очные курсы я не рассматривала, хотя предполагаю, что они могут быть очень полезны. Спустя годы, вспоминая опыт общеобразовательной школы и института, я понимаю, что очные занятия – пожалуй, самая эффективная форма обучения. Но во взрослой жизни на первое место выходят другие факторы. Моя личная причина – я не могла выделить в своем расписании свободное время на регулярное посещение очных занятий.
Это главный совет, который мне хотелось бы дать. Только это поможет не растерять запал, благодаря которому мне удалось за две недели достичь максимального результата в изучении Python с нуля.
Сейчас, даже устроившись на новую работу, связанную с автоматизацией процесса тестирования, я не останавливаюсь на достигнутом и продолжаю погружение в Python, шаг за шагом, с каждой новой поставленной задачей.
Тем не менее, для будущих питонистов в заключении я поделюсь некоторыми практическими советами, ведь изученная выше теория почти бесполезна без применения ее на практике.
Надеюсь, что эта статья поможет сэкономить время и другие ресурсы таким же новичкам, как я в прошлом.
![image](https://habrastorage.org/webt/ml/ii/io/mliiioo1l08kkafzzju1b6btj8s.jpeg)
Почему я решила изучать Python
Меня зовут Маша. Мне 28 годиков, 6 из которых я провела в обычной сфере обслуживания, а еще 5 – в сфере обслуживания с техническим уклоном (простыми словами – саппорт). Надо ли говорить, насколько за эти годы я устала от однообразия задач? И вот, в один прекрасный момент я загорелась идеей кардинально поменять свою жизнь, для чего была поставлена цель – перейти в тестировщики с применением автоматизации на Python.
Можно было бы долго прокрастинировать и маленькими шажками заставлять себя двигаться к смене деятельности, но я выбрала жесткий вариант – сразу попробовать найти работу.
«Вы не обязаны оставаться тем же человеком, каким были год назад, месяц назад или даже день назад. Вы здесь для того, чтобы постоянно творить себя». (Ричард Фейнман, известный ученый-физик)
Помимо самого желания сменить сферу деятельности, у меня все же был некоторый полезный багаж, а именно: высшее образование по специальности «Информатика и вычислительная техника» и предыдущий опыт работы инженером технической поддержки, где я тоже не стояла на месте и пыталась развиваться. У меня был стандартный набор знаний по HTTP, SQL, XML, а также небольшой опыт работы с PHP, Kotlin в связке с Selenium Webdriver. Кроме этого, я изучала теоретические основы по тестированию и пыталась их применять в работе, выполняя небольшие дополнительные задания.
Итак, цель поставлена: за две недели максимально эффективно изучить Python.
С чего все обычно начинают
Будучи дитём девяностых, я начала с запроса в поисковой системе. Пролистав блок с рекламой (к нему я вернусь чуть позже), я принялась штудировать многочисленные статьи с подборками ресурсов по изучению Python. Каждая статья состоит минимум из 10-15 «отборных и наилучших» ресурсов, которые обязательно нужно использовать. Много статей просто перечисляют шедевры классики по Python, и читай их потом годами.
Я честно пыталась осилить несколько «лучших» книг для новичков по Python, однако через десяток страниц мне становилось откровенно скучно. Информация совершенно не хотела укладываться в моей голове. Признаюсь, ни одна из начатых мною книг до сих пор не прочитана до конца.
Мой совет – на начальном этапе не тратить время на изучение книг. Огромный объем информации, представленный в них, без практики не усваивается. В качестве справочников удобно использовать такие онлайн-ресурсы, как python.org, pythonworld.ru и подобные, где в структурированном виде можно найти необходимую информацию с примерами использования.
Хорошие практики
Моим следующим шагом стало изучение интерактивных курсов. Из множества предложений по бесплатным интерактивным курсам и ресурсам я выбрала несколько, которыми хочу поделиться с вами. Их будет не десяток, как обычно, а всего лишь три. Это те ресурсы, которые я лично испробовала на себе и которые дали наиболее эффективный результат. Их можно освоить как раз за две недели, проходя один за одним или параллельно.
- praktikum.yandex.ru/data-analyst и praktikum.yandex.ru/backend-developer – два моих первых курса, будем считать их одним целым.
Отличное начало, которое показало, что изучение языка может быть нескучным занятием. На этих курсах без занудства дается теоретическая часть, которую затем нужно сразу же применить практически при написании кода.
Честно признаюсь, что я прошла только бесплатную часть курсов. Этого все равно оказалось достаточно, чтобы вдохновиться на последующее более углубленное изучение языка.
Очень советую заглянуть на Практикум. Полезные курсы там могут найти не только начинающие. И это не реклама, а действительно мое честное мнение. - checkio.org – англоязычный ресурс с выполнением задач в виде игры. Значительная часть задач имеет перевод на русский язык. Потрясающая возможность увидеть элегантные решения через код-ревью.
Обычно при прохождении курсов я считала важным только выполнить полученную задачу, «чтоб хоть как-то работало». Однако, chekio.org после выполнения задачи предложил мне оценить решения других учеников, где я неожиданно для себя сделала открытие, что одну и ту же простенькую задачу можно решить намного короче, элегантно используя конструкции языка. - hackerrank.com – тоже англоязычный ресурс с преподнесением теории небольшими порциями и актуальными задачками. Запомнился четкой постановкой задач и очень строгими требованиями для зачета прохождения задачи – схалтурить не получится!
При прохождении этих курсов я рекомендую не пропускать задания, даже если задача кажется элементарной или что-то подобное было изучено ранее. Повторение – мать учения, а если у вас такая же плохая память, как у меня, это позволит запомнить моменты, которые не усвоились с первого раза. Также в разных курсах одна и та же тема может быть раскрыта по-разному. Например, один автор описал применение одной половины методов строк и подобрал соответствующие задания, а в другом курсе более подробно рассмотрены другие методы строк.
Самый лучший способ
Итак, потратив немало времени на разные курсы, я сделала для себя простой, но важный вывод. Хочешь изучить Python – найди ему применение, пиши код каждый день. Если ваша работа хоть как-то связана с обработкой данных или IT-сферой, попробуйте найти рутинную задачу, которую можно решить с помощью Python. Даже если написание скрипта займет намного больше времени, чем само выполнение действия, это уже будет большая победа. Как говорят в шутку, если действие занимает больше 1.5 секунды вашего времени – напишите для него скрипт.
![image](https://habrastorage.org/webt/ad/n9/sb/adn9sbrjtgrigy-fg4fmjkfetbo.jpeg)
Например, мне на работе периодически попадалась задача, в которой нужно в веб-форме заполнить пару полей. При небольшом количестве данных каждый раз казалось проще сделать это руками, чем приступать к автоматизации этого процесса. Но когда суммарное количество заполняемых полей переваливало за десятки, я решилась написать скрипт на Python, который бы забирал данные из csv файла и с помощью методов Selenium за меня заполнял веб-форму. Мне это успешно удалось, что было приятно отмечено начальством.
Второй пример приведу из личной жизни. Помимо языка программирования, мне требуется поддерживать уровень английского языка. Моя личная проблема – я плохо запоминаю слова. Примерно как открыл-закрыл холодильник и сразу же забыл его содержимое, так же и у меня – встретила слово, посмотрела его значение в словаре и забыла перевод через минуту.
Я решила совместить два моих минуса – плохое запоминание английских слов и неидеальное владение Python – и получить из них плюс. Был написан скрипт, который выводит рандомные слова из заранее подготовленного списка и проверяет введенный мной перевод.
Моя рекомендация – прямо сейчас выбрать для себя задачу с работы или из личной жизни, которую можно автоматизировать через Python, и сразу же после завершения чтения статьи приступить к ее реализации. Кстати, наличие подобных собственных наработок в портфолио очень ценится работодателем при оценке кандидатов.
Второй отличный способ максимально эффективного изучения – использовать Python на работе. Будь то проявление инициативы на текущей работе и взятие новых задач, смена должности или даже поиск новой.
Что показалось менее эффективным
Как бы не хотелось это признавать, но изучение Python по книгам – не лучшая идея. Я люблю чтение, в нем много плюсов, но для начального этапа изучения языка это не эффективно. Обычно в книгах дается большой объем знаний без применения его на практике. Можно прочитать сотни страниц с описанием типов, примерами кода, лучшими практиками, но без самостоятельного написания кода это не имеет смысла. Например, может ли человек, только прочтя анатомический справочник, сразу же стать врачом и выполнить хотя бы простенькую хирургическую операцию?
После чтения книг у меня появилась идея в наш цифровой век воспользоваться визуальными способами потребления информации, для чего я полезла в YouTube для поиска видео или видеоканала, максимально полезного для изучения Python. К сожалению, идеальный для себя канал или серию видео я так и не нашла. Если искать конкретную тему или ответ на вопрос, то можно найти что-то полезное, но просмотр обучающего видео одного за другим в итоге снова привел к проблеме огромного количества информации, которое не применяется на практике. При просмотре видео становится лень повторять то, что ты и так уже видишь на экране. А после борьбы с ленью обязательно нужно расслабиться и включить какое-нибудь видео на отвлеченную тему. Всё, процесс обучения скатился в отдых. Тем не менее, если вы знаете отличные видео о Python на YouTube, просьба поделиться ссылками.
Следующий способ, который я попробовала и посчитала пустой тратой времени – пробное занятие в виде вебинара от одной известной онлайн-школы. В анонсе обещалось, что всего лишь за три урока я смогу написать свой собственный мессенджер. За полтора часа первого занятия на меня вылилось столько воды, что я чуть не утонула. Я узнала обо всех плюсах онлайн-школы, удобстве рассрочки оплаты, послушала счастливые истории выпускников курса и стандартный текст-введение о том, почему Python так хорош. К программированию или разбору полезной информации мы так и не приступили. Было очень жалко потерять столько времени, поэтому я даже не стала далее рассматривать другие предложения от онлайн-школ.
Мое мнение о платных курсах
Когда начинаешь искать информацию по Python, в различных местах постоянно мелькают рекламные предложения о прохождении платных курсов. Их стоимость варьируется от нескольких тысяч до нескольких десятков тысяч рублей. Дается обещание, что по окончании курса ты сразу же станешь продвинутым программистом Python, найдешь работу мечты с высокой зарплатой, и вообще всё в жизни изменится к лучшему.
Почему я не включила платные курсы в списки хороших или плохих практик? Да потому что я ими не пользовалась. Кто ищет, тот всегда найдет, а на первое время достаточно только того, что можно найти бесплатно. Что касается платных онлайн-курсов, то в своем большинстве они предлагают изучение того, что и так доступно бесплатно.
Продвинутые онлайн-курсы я на начальном этапе не рассматриваю – среди них вполне могут найтись достойные кандидаты, которые помогут не только приобрести знания, но и сертификаты, ценящиеся в IT-среде. Наличие ачивок в любом случае показывает заинтересованность темой и способность к самообучению. Предлагаю в комментариях поделиться ссылками на ваши лично рекомендуемые курсы для следующего уровня после начального.
Платные очные курсы я не рассматривала, хотя предполагаю, что они могут быть очень полезны. Спустя годы, вспоминая опыт общеобразовательной школы и института, я понимаю, что очные занятия – пожалуй, самая эффективная форма обучения. Но во взрослой жизни на первое место выходят другие факторы. Моя личная причина – я не могла выделить в своем расписании свободное время на регулярное посещение очных занятий.
Обучение должно быть в радость
Это главный совет, который мне хотелось бы дать. Только это поможет не растерять запал, благодаря которому мне удалось за две недели достичь максимального результата в изучении Python с нуля.
Сейчас, даже устроившись на новую работу, связанную с автоматизацией процесса тестирования, я не останавливаюсь на достигнутом и продолжаю погружение в Python, шаг за шагом, с каждой новой поставленной задачей.
Тем не менее, для будущих питонистов в заключении я поделюсь некоторыми практическими советами, ведь изученная выше теория почти бесполезна без применения ее на практике.
- Совет №1
Не ограничивайте себя поиском ответов на возникшие вопросы только в том материале, который был получен во время онлайн-уроков. Время от времени пытайтесь сформулировать свой вопрос (в этом может помочь отличное пособие sitengine.ru//smart-question-ru.html) и найти ответ самостоятельно в интернете. Поверьте, в дальнейшем такие ситуации будут возникать все чаще и чаще, а умение находить нужные данные в современном информационном потоке – одно из главных умений будущего программиста и тестировщика. - Совет №2
Разберитесь в типах данных и их методах. Запомните, какие есть типы данных в Python и какие у них особенности. При написании собственных скриптов это поможет вам лучше понять, какой тип данных подходит под конкретный случай. Также не стесняйтесь проверять, а не существует ли нужный метод у типа данных или уже готовая библиотека для выполнения какого-либо действия. - Совет №3
Заранее перед написанием кода составьте примерный план, схему или описание работы скрипта. Это позволит сэкономить огромное количество времени и сил по сравнению с подходом, когда вы сразу начинаете писать код и уже в процессе написания приходится нагромождать дополнительные фичи. - Совет №4
Проверяйте код малыми порциями. Ошибаются и делают опечатки абсолютно все, поэтому я советую при написании кода как можно чаще делать проверку, что код работает так, как нужно. У меня это происходит так: я запускаю код и делаю проверку после того, как доделаю очередной блок связанного кода. Например, блок получения или обработки данных, блок с условным оператором (if) или циклом (for, while). - Совет №5
Не останавливайтесь в своем развитии и стремлении получить больше знаний, чем есть сейчас. Продолжайте изучать новую информацию и шлифовать свое мастерство. Посещайте тематические конференции и вебинары. Попробуйте сходить на собеседования, чтобы получить независимую оценку со стороны. Кстати, на этом этапе могут помочь книги, о которых я, возможно, продолжу речь в своей следующей статье.
Надеюсь, что эта статья поможет сэкономить время и другие ресурсы таким же новичкам, как я в прошлом.