- ru
- Language: en
- Documentation version: latest
Продолжение обучения
Как правило, информацию тяжело усвоить с первого раза. Особенно, новую информацию.
Если делать практические задания и пометки, в ходе изучения, то усвоится намного больше информации, чем, если просто читать книгу. Но, скорее всего, в каком-то виде, надо будет читать о той же информации несколько раз.
Книга дает лишь основы Python и поэтому надо обязательно продолжать учиться и повторять уже пройденные темы и изучать новое. И тут есть множество вариантов:
автоматизировать что-то в работе
изучать дальше Python для автоматизации работы с сетью
изучать Python без привязки к сетевому оборудованию
Тут ресурсы перечислены выборочно, с учетом того, что вы уже прочитали книгу. Но, кроме этого, я сделала подборку ресурсов в которой можно найти и другие материалы.
Написание скриптов для автоматизации рабочих процессов
Скорее всего, после прочтения книги, появятся идеи, что можно автоматизировать на работе. Это отличный вариант, так как на реальной задаче всегда проще учиться и изучать новое. Но лучше не ограничиваться только рабочими задачами и изучать Python дальше.
Python позволяет делать достаточно многое обладая только базовыми знаниями. Поэтому не всегда рабочие задачи позволят принципиально повысить уровень знаний или подтолкнуть к этому, но зная Python лучше, те же задачи можно решать, как правило, намного проще. Поэтому лучше не останавливаться и учиться дальше.
Ниже описаны ресурсы с привязкой к сетевому оборудованию и в целом по Python. В зависимости от того, по каким материалам вы лучше учитесь, можно выбрать книги или видео курсы из списка
Python для автоматизации работы с сетевым оборудованием
Книги:
Network Programmability and Automation: Skills for the Next-Generation Network Engineer
Mastering Python Networking (Eric Chou) - отчасти перекликается с тем, что рассматривалось в этой книге, но в ней есть и много новых тем. Плюс, рассматриваются примеры не только на оборудовании Cisco, но Juniper и Arista.
Блоги - позволят быть в курсе новостей в этой сфере:
У Packet Pushers достаточно часто выходят подкасты об автоматизации:
Show 176 – Intro To Python & Automation For Network Engineers
Show 198 – Kirk Byers On Network Automation With Python & Ansible
Show 270: Design & Build 9: Automation With Python And Netmiko
Проекты:
CiscoConfParse - библиотека, которая парсит конфигурации типа Cisco IOS. С ее помощью можно: проверять существующие конфигурации маршрутизаторов/коммутаторов, получать определенную часть конфигурации, изменять конфигурацию
NAPALM - NAPALM (Network Automation and Programmability Abstraction Layer with Multivendor support) это библиотека, которая позволяет работать с сетевым оборудованием разных вендоров, используя унифицированный API
NOC Project - NOC is the scalable, high-performance and open-source OSS system for ISP, service and content providers
Requests - библиотека для работы с HTTP
SaltStack - аналог Ansible
Scapy - сетевая утилита, которая позволяет манипулировать сетевыми пакетами
StackStorm - StackStorm is event-driven automation commonly used for auto-remediation, security responses, facilitated troubleshooting, complex deployments, and more
Python без привязки к сетевому оборудованию
Книги
Основы:
[Think Python](https://greenteapress.com/wp/think-python-2e/) - хорошая книга по основам Python. В книге есть задания.
[Python Crash Course: A Hands-On, Project-Based Introduction to Programming](https://www.amazon.com/Python-Crash-Course-Hands-Project-Based-ebook/dp/B018UXJ9RI/) - книга по основам Python. Половина книги посвящена “стандартному” описанию основ Python, а во второй половине эти основы используются для проектов. В книге есть задания.
[Automate the Boring Stuff with Python](https://automatetheboringstuff.com/). [На русском](https://www.ozon.ru/context/detail/id/137673590/) - в этой книге можно найти много идей по автоматизации ежедневной работы. Тут рассматриваются такие темы: работа с файлами PDF, Excel, Word, отправка писем, работа с картинками, работа в веб
Среднего/продвинутого уровня:
[Python Tricks](https://www.amazon.com/Python-Tricks-Buffet-Awesome-Features-ebook/dp/B0785Q7GSY) - отличный вариант для 2-3 книги по Python. В книге описываются различные аспекты Python и то как правильно использовать. Книга достаточно новая (конец 2017 года), в ней рассматривается Python 3.
[Effective Python: 59 Specific Ways to Write Better Python (Effective Software Development Series)](https://www.amazon.com/Effective-Python-Specific-Software-Development-ebook-dp-B00TKGY0GU/dp/B00TKGY0GU/) - книга полезных советов как лучше писать код. В конце 2019 года [планируется выход второго издания книги](https://www.amazon.com/Effective-Python-Specific-Software-Development/dp/0134853989/).
[Dive Into Python 3](http://diveintopython3.problemsolving.io/) - коротко рассматриваются основы Python, а затем более продвинутые темы: closure, генераторы, тесты и так далее. Книга 2009 года, но рассматриваюется Python 3 и 99% тем остались без изменений.
[Problem Solving with Algorithms and Data Structures using Python](https://runestone.academy/runestone/static/pythonds/index.html) - отличная книга по структурам данных и алгоритмам. Много примеров и домашних заданий. [На русском](http://aliev.me/runestone/)
[Fluent Python](https://www.amazon.com/gp/product/1491946008/) - отличная книга по более продвинутым темам. Даже те темы, которые устарели в текущей версии Python (asyncio) стоит прочитать ради прекрасного объяснения темы.
[Python Cookbook](https://www.amazon.com/gp/product/1449340377/) - отличная книга рецептов. Рассматривается огромное количество сценариев с решениями и пояснением.
Курсы
MITx - 6.00.1x Introduction to Computer Science and Programming Using Python - очень хороший курс по Python. Отличный вариант для продолжения обучения после книги. В нём вы и повторите пройденный материал по основам Python, но под другим углом и узнаете много нового. В курсе много практических заданий и он достаточно интенсивный.
Python от Computer Science Center - отличные видеолекции по Python. Тут есть и немного основ и более продвинутые темы
Сайты с задачами
HackerRank - на этом сайте задачи разбиты по областям: алгоритмы, регулярные выражения, базы данных и другие. Но есть и базовые задачи
Подкасты
Подкасты позволят в целом расширить кругозор и получить представление о разных проектах, модулях и библиотеках Python:
Документация
Tiny-Python-3.6-Notebook - Отличная шпаргалка по Python 3.6