Course Syllabus

Class1: Why Python, the Shell, and Strings

  • Why Python?
  • Characteristics of Python
  • The Python Interpreter Shell
  • Printing to stdout and reading from stdin
  • Dir, Help, and Variables
  • Python Strings
  • Python String Formatting

Class2: Numbers, Files, Lists, and Linters

  • Numbers
  • Files
  • Lists
  • List Slices
  • Tuples
  • sys.argv
  • Linters

Class3: Conditionals and Loops

  • Conditionals
  • Boolean Logic
  • For Loops
  • Enumerate
  • Break and Continue
  • While Loops
  • Loops Miscellaneous

Class4: Dictionaries, Exceptions, and Regular Expressions

  • Dictionaries
  • Dictionary Methods
  • Sets
  • Exceptions
  • Regular Expressions
  • Regular Expressions—Other Methods

Class5: Functions and the Python Debugger

  • Functions
  • Misc Topics
  • Python Debugger (pdb)

Class6: Netmiko

  • Netmiko Introduction and Basics
  • Netmiko Show Commands
  • Netmiko and Prompting
  • Netmiko and TextFSM
  • Netmiko Config Changes
  • Netmiko Troubleshooting

Class7: Jinja2, YAML and JSON

  • Jinja2 Basics
  • Jinja2 For-Loops and Conditionals
  • Jinja2 Dictionaries and Nested Loops
  • YAML
  • Using Python to Write YAML
  • JSON
  • Managing Data Structures

Class8: Libraries, PIP, and Virtual Environments

  • Importing Libraries
  • sys.path and PYTHONPATHv
  • pip
  • Virtual Environments
  • Creating a Simple Python Module

Student Success

  • I decided to take Kirk's courses on Ansible and Nornir during the stay-at-home-orders in 2020 when COVID-19 hit the world. After the first few lessons I was able to write my first script to check for and add VLANs to our NX-OS environment.

    Stian Liebenberg
    Senior Wireless Engineer
  • I have taken several paid and non-paid Python courses. I can say that by far your course is the best one I have taken. The way you explained stuff just makes sense to me.

    Joli Martinez
    Automation Engineer
  • I am on the material for the 3rd week and I just wanted to compliment you on the way that you explained how to unwrap the data structures. Best step by step explanation I have seen so far to help me understand and work with the data. Thank you very much!

    Ray deGuzman
    Senior Network Engineer

FAQ

What is the format of the course?

This course is an eight week email-course. Each week you will receive a lesson that contains a set of videos, some additional content, and some exercises. I will post solutions to the exercises online. The course is largely self-paced except for the weekly email cadence.

Is there a lab environment?

No, since this is a free course, there is no lab environment. For all of the lessons except for Class6 (Netmiko), you should be able to accomplish the lessons without having any access to network devices.

What are the prerequisites for the course?

This course is intended for network engineers that have some basic familiarity with programming (for example, Perl, shell scripting, other language) and who would like to learn Python. The course covers Python fundamentals, but using examples and exercises that are more relevant to network engineers.

Why Python?

Python facilitates writing clean, readable code and is natively present on Linux and MacOS. Python has gained widespread support in the networking community both from engineers and from vendors. Python has a large, active community and, consequently, numerous resources are available to you (libraries, documentation, books, tutorials, etc.).

What if I am unsatisfied with the course after I sign-up?

The course is free so unsubscribe from the email-list if you aren't happy with the lessons or our other content.

About Us

Kirk

Kirk Byers is the founder of Twin Bridges Technology–a business specializing in network automation training. He is the creator of the Netmiko Python library and also one of the maintainers of the NAPALM project. He teaches Python, Ansible, and Nornir courses for Network Engineers and writes about network automation. He is a long-time network engineer (CCIE #6243 emeritus), has extensive experience with *nix system administration, and is a Python programmer. He is interested in programming and networking and how to improve network engineering practices through automation.

Zack

Zack is a programmer extraordinaire. His language of choice is Python. He loves programming and is very big into games including: Magic the Gathering, Roblox, Dungeons & Dragons, and Terraforming Mars.

Jupiter

Jupiter is all dog. She loves to be near her people and loves her food (not necessarily in that order). She likes the water, the beach, chasing birds, and meeting new people. She is categorized as "an aggressive chew breed" and is living up to that category.