Как правило, информацию тяжело усвоить с первого раза. Особенно, новую информацию.
Если делать практические задания и пометки, в ходе изучения, то усвоится намного больше информации, чем, если просто читать книгу. Скорее всего, в каком-то виде, надо будет читать о той же информации несколько раз.
Сбор информации о статусе портов, изменения в статусе Задача собрать информацию о статусе портов на оборудовании (up/down/admin down для Cisco IOS):
- На первом этапе собирается информация о всех портах (Loopback/физические/Tunnel/...) и их статусе.
- На втором этапе из собранной информации надо отобрать только физические порты.
- На третьем сохранять информацию о статусе портов в определенный день в файлы и добавить возможность сравнивать изменения в статусе портов (текущий статус с последним записанным).
На курсе добавятся
- scrapli, pexpect
- python package
- Новые возможности в Python 3.x
- Руководство стилю кода PEP8
- black
- Аннотация типов и основы mypy
- Создание CLI с помощью Click
- Создание CLI с помощью Typer
- Модуль logging
- pdb
- Модуль Rich - создание красивых приложений в CLI
- Основы scrapli
- Import package
Курс дает лишь основы Python и поэтому надо обязательно продолжать учиться и повторять уже пройденные темы и изучать новое. И тут есть множество вариантов:
- автоматизировать что-то в работе
- изучать дальше Python для автоматизации работы с сетью
- изучать Python без привязки к сетевому оборудованию
Подборка ресурсов в которой можно найти и другие материалы.
Скорее всего, после прочтения книги, появятся идеи, что можно автоматизировать на работе. Это отличный вариант, так как на реальной задаче всегда проще учиться и изучать новое. Но лучше не ограничиваться только рабочими задачами и изучать Python дальше.
Python позволяет делать достаточно многое обладая только базовыми знаниями. Поэтому не всегда рабочие задачи позволят принципиально повысить уровень знаний или подтолкнуть к этому.
Зная Python лучше, те же задачи можно решать, как правило, намного проще. Поэтому лучше не останавливаться и учиться дальше.
Nicholas Russo:
John McGovern:
- Introduction to Python for Network Engineers
- Advanced Network Automation with Cisco and Python. CBT Nuggets
- Network Programmability and Automation, Network Programmability and Automation, 2nd Edition
- Mastering Python Networking - Third Edition (Eric Chou) - отчасти перекликается с тем, что рассматривалось в этой книге, но в ней есть и много новых тем. Плюс, рассматриваются примеры не только на оборудовании Cisco, но Juniper и Arista.
- CiscoConfParse - библиотека, которая парсит конфигурации типа Cisco IOS. С ее помощью можно: проверять существующие конфигурации маршрутизаторов/коммутаторов, получать определенную часть конфигурации, изменять конфигурацию
- NAPALM - NAPALM (Network Automation and Programmability Abstraction Layer with Multivendor support) это библиотека, которая позволяет работать с сетевым оборудованием разных вендоров, используя унифицированный API
- Scapy - сетевая утилита, которая позволяет манипулировать сетевыми пакетами
- Nornir
- eNMS
- netutils
- Think Python - хорошая книга по основам Python. В книге есть задания.
- Python Crash Course: A Hands-On, Project-Based Introduction to Programming - книга по основам Python. Половина книги посвящена "стандартному" описанию основ Python, а во второй половине эти основы используются для проектов. В книге есть задания.
- Automate the Boring Stuff with Python. На русском
- когда использовать наследование, а когда композицию
- о чем надо помнить при написании функций, классов и их взаимодействия
- как писать код, чтобы его было легко масштабировать
- "сколько" кода писать в функции/методе
- Python Tricks - отличный вариант для 2-3 книги по Python. В книге описываются различные аспекты Python и то как правильно использовать. Книга достаточно новая (конец 2017 года), в ней рассматривается Python 3.
- Effective Python - книга полезных советов как лучше писать код
- Dive Into Python 3 - коротко рассматриваются основы Python, а затем более продвинутые темы: closure, генераторы, тесты и так далее. Книга 2009 года, но рассматриваюется Python 3 и 99% тем остались без изменений.
- Architecture Patterns with Python
-
Problem Solving with Algorithms and Data Structures using Python - отличная книга по структурам данных и алгоритмам. Много примеров и домашних заданий. На русском
-
Fluent Python, Second Edition - лучшая книга по продвинутым темам
-
Python Cookbook - отличная книга рецептов. Рассматривается огромное количество сценариев с решениями и пояснением.
- MITx - 6.00.1x Introduction to Computer Science and Programming Using Python - очень хороший курспо Python. Отличный вариант для продолжения обучения после книги. В нем вы и повторите пройденный материал по основам Python, но под другим углом и узнаете много нового. В курсе много практических заданий и он достаточно интенсивный.
- Bites of Py - очень хороший сайт на котором много заданий разного уровня сложности. На нем вполне можно набить руку и на базовых вещах, но в то же время есть куда расти
- HackerRank - на этом сайте задачи разбиты по областям: алгоритмы, реглярные выражения, базы данных и другие
- CheckIO - online game for Python and JavaScript coders
Позволят в целом расширить кругозор и получить представление о разных проектах, модулях и библиотеках Python: