What’s next#
Information is usually hard to grasp from the first time. Especially new information.
If you do your homework and make notes during your study, you learn a lot more information than if you just read a book. But most likely, in some way you’ll have to read about the same information several times.
Book provides only basics of Python and therefore it is necessary to continue to learn and to repeat already completed topics and to learn new ones. And there are a lot of options:
automate something at work
learn more Python for network automation
learn Python without binding to network equipment
These resources are listed selectively, considering you’ve already read the book. But in addition, I’ve made a compilation of resources where other materials can be found.
You have ideas for the scripts you want to write#
Most likely, after reading the book there will be ideas what you can automate at work. It’s a great option, because it’s always easier to learn on a real problem. But it is better to go beyond work tasks and study Python further.
Python allows you to do quite a lot with only basic knowledge. Therefore, with work tasks it is not always possible to increase level of knowledge, but knowing Python better you can usually solve the same problems much more easily. So it’s best not to stop and learn.
The following resources are connected to network equipment and generally Python. Depending on from what materials you learn best you can select a book or video course from list
Python for network equipment automation#
Books:
Network Programmability and Automation: Skills for the Next-Generation Network Engineer
Mastering Python Networking (Eric Chou) - is partly similar to what was discussed in this book but there are many new themes. Plus, examples are considered not only on Cisco equipment but on Juniper and Arista as well.
Blogs - will let you know news in this field:
Packet Pushers often have podcasts about automation:
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
Projects:
CiscoConfParse - library that parses Cisco IOS configurations. It can: check existing router/switch configurations, get a certain part of configuration, change configuration
NAPALM - NAPALM (Network Automation and Programmability Abstraction Layer with Multivendor support) - library that allows working with network equipment of different vendors using a unified API
NOC Project - NOC is scalable, high-performance and open-source OSS system for ISP, service and content providers
Requests - library for working with HTTP
SaltStack - Ansible analogue
Scapy - network utility that allows you to manipulate network packages
StackStorm - event-driven automation commonly used for auto-remediation, security responses, facilitated troubleshooting, complex deployments and more
General Python#
Books#
Basic level:
Think Python - good book on Python basics. There are tasks in the book.
Python Crash Course: A Hands-On, Project-Based Introduction to Programming - a book on Python basics. Half of the book is dedicated to “standard” description of Python basics and in the second half these bases are used for projects. There are tasks in the book.
Automate the Boring Stuff with Python - in this book you can find many ideas on automation of daily work. These topics are: working with PDF, Excel, Word, sending letters, working with pictures, working with the web
Medium/advanced level:
Python Tricks - excellent for 2-3 book on Python. Book describes various aspects of Python and how to use it correctly. The book is fairly new (late 2017) and covers Python 3.
Effective Python: 59 Specific Ways to Write Better Python (Effective Software Development Series) - book of useful advice on how best to write code
Dive Into Python 3 - briefly covers fundamentals of Python and then more advanced topics: closure, generators, tests and so on. Book written in 2009 but covers Python 3 and 99% of topics remained unchanged.
Problem Solving with Algorithms and Data Structures using Python - excellent book on data structures and algorithms. Many examples and homework.
Fluent Python - excellent book on more advanced topics. Even topics that are obsolete in the current version of Python (asyncio) are worth reading for a perfect explanation of topic.
Python Cookbook - great recipe book. A huge number of scenarios are considered with solutions and explanations.
Courses#
MITx - 6.00.1x Introduction to Computer Science and Programming Using Python - a very good course in Python. It’s a great way to continue your study after
book. In it you will repeat material on Python basics but from a different angle and learn a lot of new things. There’s a lot of practical tasks and it’s pretty intense.
Python от Computer Science Center - an excellent video lecture on Python. There are some basics and more advanced topics
Coding challenges#
HackerRank - on this resource tasks are broken down by fields: algorithms, regular expressions, databases and others. But there are basic tasks as well
Podcasts#
Podcasts will generally broaden the horizon and give an idea of various Python projects, modules and libraries: