Найти тему
Контур.Школа

Как я выучил Python за месяц

Оглавление

Содержание статьи

  • Как все начиналось
  • BASH vs Python
  • И все-таки Python
  • Как выучить Python за 3 недели и спать спокойно

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

Мой путь к Python был тернист, зато и первые задачи на нем сразу пошли в продакшен. Но обо всем по порядку.

Как все начиналось

Давным-давно в мои руки попала инструкция от ZX Spectrum — популярного в восьмидесятых и начале девяностых 8-разрядного компьютера. Я читал ее ночами и поражался, насколько же это круто — знать специальный язык, с помощью которого можно управлять компьютером, буквально подчинить машину. С тех пор моя жизнь и карьера неразрывно связаны с программированием.

Первую программу я написал на языке Dark Basic в третьем классе. Компьютера у меня не было, зато были друзья. Поэтому программа сначала появилась на тетрадном листе, а затем перекочевала на компьютер друга. Ничего великого она не делала: сперва спрашивала имя собеседника, а затем оскорбительно о нем отзывалась. Зато не просто Hello, World! 😉

  • Hello, World! — программа, результат работы которой — вывод на экран фразы «Hello, world!».

Моя первая программа. Не горжусь, но для третьеклассника неплохо

Смотреть программуАвтоматизация тестирования на PythonОнлайн-курс для тестировщиков

Затем был Visual Basic 6.5. Это было время расцвета локальных сетей, и я загорелся идеей написать сетевой чат. С ним я выступил на городской конференции для школьников. На презентации мой друг и ассистент, демонстрируя функции чата, словил все возможные баги. Надо узнать, не стал ли он тестировщиком 😉

В старших классах школы я начал изучать язык C. Это строгий и по-своему красивый язык, который требует большой вдумчивости и с завидной легкостью позволяет стрелять себе по ногам. В вузе были Pascal и Delphi, но лабы и курсовые я по возможности писал на C++. Не скажу, что очень нравилось: после C++ осталось послевкусие переусложненного С.

BASH vs Python

Тогда же я познакомился с Linux и почти сразу влюбился в BASH. Что я только на нем ни писал — от анализа логов сетевого шутера для автоматического бана читеров до автоматизации параллельной разработки доступной среды или ядра Linux для распределенных блокировок. При этом между процессами использовал именованные пайпы — ФИФО.

-2

BASH — как глоток свежего воздуха после терминала Windows

  • А еще я написал скрипт, который вытягивал рандом с Башорга и показывал по одной цитате. Кажется, он все еще работает.

Выбрал бы я сейчас Python для задач, которые когда-то решал на BASH? Пожалуй, да. Все, как обычно, зависит от задачи:

  • Если нужно быстро обработать текст, переложить стопку файлов, найти что-то в логах, то связка BASH — grep — upset все еще хороша. Многие тестировщики и системные администраторы со мной согласятся, потому что пользуются этими инструментами, по крайней мере на Linux-серверах.
  • Если нужна сложная логика, работа с сетью или структурированными данными вроде JSON и XML, Python — отличный помощник. В качестве развлечения это всё можно написать на BASH — будет весело и займет все выходные. Но если серьезно, то скрипт на Python прекрасно помогает справляться с рутиной при решении рабочих задач.

Из последних задач, которые не касались непосредственно разработки, был поиск устаревших зависимостей для библиотек в GitLab. Можно вручную посмотреть несколько десятков проектов, но я не надеюсь на собственную внимательность. Скрипт на Python отработает надежнее и быстрее даже с учетом времени, которое уйдет на его разработку. Особенно если счет источников данных идет на десятки.

И все-таки Python

Где-то между страданиями на С++ и BASH-безумием мне написал друг и спросил, не хочу ли я выучить Python. Я и не подозревал, на что подписываюсь, а когда спросил, что почитать, мне прислали две ссылки: на Dive Into Python и на официальную документацию языка.

И почти сразу дали задачу — написать высокоуровневый асинхронный драйвер для модема. Слово «асинхронный» для меня было новым. Дело в том, что модем — штука неторопливая, и в синхронном коде, пока он отвечает, придется ждать всей системе. Будет тормозить интерфейс и остальной ввод/вывод.

Читайте также: Как написать парсер телеграм-каналов на Python

Никакого asyncio тогда не было, зато были Python 2 и select — системный вызов Linux, который позволяет дождаться, когда будет готов ввод/вывод, и после этого приступать к чтению.

Через месяц я написал рабочий прототип. Это приблизительный тайминг, который позволяет освоить Python при большом желании.

-3

Примитивный, но рабочий DNS-прокси-сервер на Python. К нему можно выполнить DNS-запрос, и он отдаст IP-адрес сервера

Это решение я переиспользовал, когда работал сисадмином в своем родном лицее. На его основе написал DNS-фильтр, чтобы дети не ходили куда попало через школьный интернет.

Вот так я за месяц с небольшим влился в разработку на Python. Это были сразу задачи в прод — сумасшедшая история. Чтобы быстро во всем разобраться, пришлось сидеть днями и ночами, при этом в помощь мне были только доки. Теперь, конечно, возможностей у новичков в сотни раз больше.

Как выучить Python за 3 недели и спать спокойно

Что читать

Рекомендую ту же книгу, с которой начинал я, — Dive into Python. В 2009 году вышла версия Dive into Python 3, имеет смысл начинать именно с нее. А еще важно не забывать о PEP — индексе предложений от сообщества Python для внесения изменений в язык — и документации к языку.

Где учиться

Вы можете превзойти мой результат и освоить Python за 3 недели на онлайн-курсе «Основы языка Python». Опытные преподаватели не оставят студентов один на один с компьютером. Вам не придется проводить ночи без сна, мучаясь над очередной задачкой, и развитие пойдет гораздо быстрее.

А если нужно обучить сразу нескольких сотрудников, выбирайте Годовую подписку. С ней вы сэкономите не только время, но и деньги. Эксперты подберут курсы для специалистов по всем направлениям обучения в Контур.Школе.

Кроме того, пользователи Годовой подписки получают безлимитный доступ к экспресс-курсам, вебинарам и рубрике «Вопросы экспертам». Приносите сложные рабочие кейсы — будем разбираться вместе 🤓