воскресенье, 20 октября 2013 г.

Python: С чего начать?

Быть системным администратором достаточно просто, когда есть набор инструментов и средств, которые помогают тебе в работе.

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

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

Самая большая проблема после выбора, была в том, что начался тяжелый этап вхождения. Что почитать, в чём программировать, с кем посоветоваться. Пройдя сам через все эти вопросы хочу поделиться своим опытом.

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

  1. Debian GNU/Linux последней версии. Именно так! Это не максимализм и не фанатичное пропагандирование дистрибутива. Там есть всё. Необходимые инструменты, документация, разные версии самого Python, множество модулей для разных задач, документация. И отсутствие проблем с установкой и совмещением всего этого зоопарка. Плюс дополнительные инструменты для работы с системами контроля версий, библиотеками для построение графического интерфейса и многое, многое другое.  Некоторый минус несколько устаревшие версии ПО, но в данном конкретном случает этот минус не настолько важен, чтоб перекрыть все получаемые преимущества. Пользуюсь сам и рекомендую всем.
  2. WinPython - для использующих Windows XP и выше  это просто спасение. На самом деле все компоненты входящие в этот набор программ можно скачать по отдельности и весьма мощно продвинуться в собственных глазах при их интеграции. Но для изучения Python полезность этих знаний не так уж велика. Поэтому просто ставим WinPython и пользуемся. Всё необходимое есть. В наличии сборки под 32 и 64 бита, 2 и 3 версии Python. Пакет направлен на решение научных задач, но этого особо не заметно. И для решения общих задач использовать можно не менее успешно.
Опишу более предметно что стоит использовать.
  1. Python 2.x.x - да, я рекомендую к освоению и использованию именно Python версии 2. Почему? Всё просто, под эту версию есть всё. Документация, книги, модули, программы. Ветка поддерживается и активно. Переход с неё на версию 3 не так уж и затруднителен. Перевод сценариев со 2 на 3 версию вызывает несколько проблем, но именно об этих проблемах я предлагаю подумать в тот момент когда вы станете продавать свой код .
  2.  IPython - интерактивная консоль.  В дистрибутиве с официальной версией Python поставляется консоль, не самая плохая. Но IPython реально облегчает и упрощает многие моменты как работы, так и обучения языку.
  3. Spyder - IDE (среда разработки). В общем-то если вы начинаете и озаботились средой разработки, в которой хотите видеть подсветку кода, подсказки, документацию по ходу написания кода, консоль с результатами запуска скрипта. Она подойдёт, не знаю как уж для серьёзной разработки, но для моего начального уровня вполне достаточно. Поддерживает систему контроля версий mercurial.
  4. TortoiseHg - графический интерфейс для системы контроля версий mercurial. В самом начале она не особо и нужна, но как только появится чуть более сложный скрипт, строк на 100, вы оцените.
Я намеренно не предлагаю IDLE, это среда разработки идущая в комплекте с официальным дистрибутивом. Она не так уж и плоха, но всё же я рискну предложить другие инструменты.

Определившись с инструментами остались сущие пустяки, освоить язык. На самом деле это очень просто. Я учился по следующим книгам:
  1. Марк Лутц - Изучаем Python.
  2. Ноа Гифт и Джереми М. Джонс - Python в системном администрировании UNIX и Linux.
  3. Функции help() и dir() в консоли IPython или Python.
  4. Официальная документация на сайте Python.
Первая книга заслуживает самых высоких похвал. Это действительно учебник для начинающих, всё разжёвывается, иногда по нескольку раз. Последовательный структурированный материал. Дочитав до главы где описываются принципы объектно ориентированного программирования в Python, можно сделать паузу и написать несколько скриптов для решения каких-нибудь насущных вопросов. Это уже будет возможно.
Вторую книгу стоит прочитать тем, кто задаётся вопросом использования Python в системном администрировании. Рассматривается довольно много специфических вопросов, что поможет столкнуть мысли в нужном направлении.
Возможности из третьего пункта хорошо описываются в вышеприведённых книгах.
Из всего пантеона документации для Python на начальном этапе самые нужные это - Library Reference и Tutorial. Возможно ещё может заинтересовать Languge Reference.
Лично я следовал принципу - основное берём у Лутца, уточнения в официальной документации.

Таким образом я смог преодолеть порог на вход в язык. Осталось лишь развивать навыки и умения.

Комментариев нет:

Отправить комментарий