Programming Languages


Python Network Programming for Network Engineers (Python 3)

Program networks using Python version 3. Learn network programmability with this practical GNS3 and Cisco course

4.66 (6373 reviews)


13 hours


Aug 2020

Last Update
Regular Price

Unlimited access to 30 000 Premium SkillShare courses

What you will learn

Learn network programmability with GNS3 and Python version 3

Learn how to automate the configuration of network devices with Python

Learn how to leverage NAPALM for network automation

Use Netmiko for SSH connections to routers and switches

Quick start guide using Telnet and SSH - get started in 20 minutes!

Learn how to scale your network scripts


Learn Network Programmability and Network Automation using GNS3 and Python version 3.

This course is based on Python 3.

Want to program networks using Python, but not sure where to start? Well, this course will show you how you can start programming Cisco networks within 20 minutes.

This course was created for network engineers. There are too many other Python courses out there that try to make network engineers software developers. Instead of teaching network automation, they teach you Python theory. This course is different. 

This course is practical. I won't talk about programming in abstract terms and make you wait before you can start automating networks. I will show you how you can quickly and easily start network programming by using GNS3, Cisco IOS and Python.

You will see demonstrations of the configuration of both Cisco routers and switches in GNS3. For example, how to configure multiple VLANs on a multiple switches, or how to configure OSPF on a router and more.

This course shows you practical examples of using Python to programmatically configure Cisco network devices rather then just talking about it.

The days of configuring Cisco networks only with the command line interface (CLI) are drawing to a close. You need to add network programmability using Python and APIs to your skill set.

Learn how to automate networks using:

- Telnet


- Paramiko



Tools such as NAPALM and Netmiko make it easy to configure and interact with network devices using an API such as NETCONF or using SSH. Don't reinvent the wheel. Use the tools available to you to quickly and easily automate your networks.

Some comments about the course:

"Knowing the material from just the first video would have saved me hours of work and rework in the past." 

"It's the easiest, most fun, and most valuable course I've completed yet on Python Programming for Networking. Love it! Thanks again David!!!" 

"Excellent course on Network Programming using Python with lot's of practical network configuration examples."

"Great way of explanation.Nice video and inspiring words! Thank you so much David. You are genius."

"I've been doing network automation for a while, even so, I've learned new things through this course. The instructor start from a basic example, adding improvements in each step. It's a skill that's worth it."

"A must for all network engineers who want to learn python!!! I had very "very" basic programming skills, and couldn't just get the bridge between network and programming (mainly Python - since that's where the hype is now), this course was amazing, I have never been glued to a training course since I can remember. The couple of things I loved the most about this course: 1- David's clear voice. 2- Real world application, not only will David interduce different real-world practical modules that you can import and use, but he shows you how to apply them on ios devices."

"Excellent course on Network Programming using Python with lot's of practical network configuration examples. High quality content."


Python Network Programming for Network Engineers (Python 3)
Python Network Programming for Network Engineers (Python 3)
Python Network Programming for Network Engineers (Python 3)
Python Network Programming for Network Engineers (Python 3)




GNS3 Setup

GNS3 2.1 Install Part 1: Components and software requirements

GNS3 2.1 Install Part 2: GUI install

GNS3 2.1 Install Part 3: Troubleshooting GNS3 installation issues Windows 10

GNS3 2.1 Install Part 4: Basic GNS3 Network (your first network)

GNS3 2.1 Install Part 5: Where do I get Cisco IOS images?

GNS3 2.1 Install Part 6: Cisco IOS network using Dynamips

GNS3 2.1 Install Part 7: GNS3 VM, VIRL and switching

GNS3 2.1 Install Part 8: GNS3 VM, VMware 14 issues

GNS3 2.1 Install Part 9: Cisco VIRL IOSv import into GNS3

GNS3 2.1 Install Part 10: Cisco VIRL and Dynamips network!

Quick Start Guide to Network Automation

Quick Start 1: GNS3 Lab Setup and IDEs

Quick Start 2: Telnet Script creation

Quick Start 3: Telnet Script Test

Quick Start 4: Telnet to a switch and create VLANs

Quick Start 5: Loops

Quick Start 6: PEP8: Python Style Guide

Quick Start 7: Configure switch VLANs using loops

Quick start 8: Create a multiple switch network

Quick Start 9: Open a file of switch IP addresess

Quick Start 10: Configure multiple switch with a loop

Quick Start 11: Loops within loops

Quick Start 12: Backup Network Device Configurations

Netmiko: Use SSH for Network Automation

Netmiko Part 1: Introduction

Netmiko Part 2: Enable SSH on switches in network

Netmiko Part 3: Your first Netmiko SSH Script

Netmiko Part 4: Script for multiple switches

Netmiko Part 5: Run script and configure multiple devices

Netmiko Part 6: File of multiple Cisco commands

Netmiko Part 7: Program multiple switches with file of commands

Netmiko Part 8: Script to program entire network

Netmiko Part 9: Run script to program entire network


NAPALM Introduction (P75_12)

NAPALM Python 3 versus 2.7

Ubuntu versus Network Automation Container

Install NAPALM (P68_13)

NAPALM connect to switch 1 (P68_14)

JSON and more commands (P68_16)

Mac address table, ARP cache (P68_17)


Use NAPALM to retrieve BGP neighbor information: Part 1 (P75_1)

Use NAPALM to retrieve BGP neighbor information: Part 2 (P75_2)

Use NAPALM to retrieve BGP neighbor information: Part 3 (P75_3)

NAPALM: Multiple BGP neighbors (P75_4)

NAPALM and bigger BGP Network Part 1 (P75_5)

NAPALM and bigger BGP network Part 2 (P75_5b)

Use NAPALM for device configuration audit and changes

Use NAPALM to configure Access lists (P75_6)

Check if ACL already exists and add if missing (P75_7)

Use NAPALM for auditing device configs (P75_8)

Use NAPALM to add multiple config files (P75_9)

NAPALM: Multiple config files, multiple devices (P75_10)

Iteration Examples: Netmiko scripts

Netmiko Iteration: Script Overview

Netmiko Iteration (Script 1): Basic Script

Netmiko Iteration (Script 2): Open a file of commands

Netmiko Iteration (Script 3): Configure multiple devices using a file of devices

Netmiko Iteration (Script 4): Remove passwords from script

Netmiko Iteration (Script 5): Except (Error) Handling

Netmiko Iteration (Script 6): Determine device types and run specific device typ

Netmiko Iteration (Script 7): Iterate device type script

Netmiko Scaling

Part 1: Encrypted Password File

Part 2: Netmiko Sequential Part 1

Part 3: Netmiko Sequential Part 2

Part 4: Netmiko Multithreading

Part 5: Netmiko Thread Pools

Python Theory

Theory topics - very short (P62_14_15)

Keep learning (P61_26)

2.7 and 3 setup (P61_27)

2.7 and 3 examples (P61_28)

Basic Hello World Scripts (P61_29_30)

Python Theory: Objects, Variables and Data Types

Python Objects (P61_1)

Python Objects Part 2 (P61_2)

Python Variables (P61_3)

Python Variables Part 2 (P61_4_5)

Python Variables Part 3 (P61_6)

Python Variables Part 4 (P61_7_8)

Data Types (P61_9)

Data Type testing (P61_10)

Python Theory: Numbers

Introduction (P61_19)

Numeric Types (P61_11)

Int and Float (P61_12)

Operators (P61_14)

Operators Part 2 (P61_15_16)

Operators (P61_17_18)

bin hex oct (P61_20)

binary decimal octal number examples (P62_1)

int calculation (P62_2)

Floats (P62_3)

Python Theory: Strings

strings (P62_4)

strings (GT 06-8-17 7_8)

convert to a string using str() (P62_10)

escape special character meaning with \ (P62_12)

strings (P62_9)

string concatenation with + (P62_13)

multiplication operator * (P62_16)

string offsets - extract characters with [] (P62_17)

string slice _ slicing (P62_string)

string slice _ slicing 2 (P62_1string)

string slice _ slicing 3 (P62_2string)

lower upper (P73_11)

startswith endswith (P73_12)

strip lstrip rstrip (P73_13)

isdigit (P73_14)

count (P73_15)

Old Style text using % (P66_24)

Strings: New way to do text using {} (P73_16)

dir (P73_9)

Get version information from a switch

Get show version from switch (P65_14)

Telnet and string offset (P65_16)

Show version using len (P65_17)

Split 1 (P65_18_21)

Split 2 (P73_18)

List and join (P73_17)

List and len - use Interface example (P73_25)

Index introduction(P66_1)

Real switch get version using index and slice (P66_2_3)

Python3 telnet to switch (P66_4)

Count (P66_6)

Use find to get information from a real switch (P66_10)

Python3 Telnet versus Python2 - Find version of software (P66_11)

find not found (P66_12)

String methods - upper (P66_13)

String methods - startswith and endswith (P66_14)

String methods - strip (P66_15)

String methods - split demo (P66_16)

String methods - Join (P66_17_18)

String methods - is it in string? (P66_19)

String concatenation (P66_20)

Capitalize, upper, lower, swap (P66_23)

Python Theory: Comparisons

Boolean comparisons

Boolean Truth Table

Boolean Truth Table Demo

false conditions

Python Theory: Lists

Lists versus tuples


create a list using split

lists in lists

lists versus tuples - documentation

list merge and extendC

List methods

lists insert and delete

list pop index and in

reverse sort

len copy list

Python Theory: Tuples


Tuples and Sequences v2

Python Theory: Code Structures

Comments in Code (P72_2)

Line Continuation (P72_3)

Python Theory: if / else / elseif logic

if logic

physical router demonstration


Python Theory: While Loops

while loop

infinite while loop with break

infinite while loop with continue

while loop with a list

while loop with else

Python Theory: For Loops

for loops

for loop with dictionary

for loop with if and lists

Python Theory: Ranges

Ranges 1

Ranges 2

Python Theory: Dictionaries

Dictionary Theory (P70_17)

Dictionary Demo (P70_18)

Combine Dictionaries (P70_19)

Dictionaries: Clear and check (P70_20)

Dictionaries: Add values (P70_21)

Python Theory: Functions

Functions Intro

Functions Intro Part 2

Functions Part 3

Functions - Netmiko and Router

Functions - Netmiko and Router

Function 6 - Named keyword arguments (Netmiko)


Vitalii9 October 2020

Good course, material explained well. Unfortunately, lacking exercises or suggestions for practice. Basically, good lectures where you can repeat what the lecturer is doing, but completely missing homework where your would actually learn.

Ian29 September 2020

Great course David! I wish you introduced external modules however. Other than that it was a great course and as always a very practical implementation of network automation which most of us find useful! 4.6/5 starts!

Norberto15 September 2020

I learned a lot and I have many scripts to start a network automatization: Also, for doing this course, we need to have some knowledge of python.

Yogesh14 September 2020

Thanks , David Bombal. It was the deep learning with python for automating the networks architecture.

Christian6 September 2020

Introduction to Netmiko and NAPALM was great. Coding was very clear. Sometimes there was too much repetition in the Examples. The Python theory was certainly nice for beginners with Python but for everyone else boring, especially as it was half of the course. Showing diffrent hardware setups was nice. My hardware wasn't able to mange GNS3 und I wasn't willing too buy the cisco stuff. So it was a great alternative to use the devnet lab (so I had some connection problems after re-establishing the vpn-connection - I think because of the used bridging device in the pre-configured lab). Overall the course was great but I would have liked a proper end and a view und topics to go further.

Neal25 February 2020

I would like to review the answers to the questions individually and after I answer. I pray that that is a possibility with application? Is this feature available?

Troy15 February 2020

There was a lot of information jam packed in this course. I learned an awful lot. Now some of the critiques. This course was made in 2017. It should be re-recorded with the current version of GNS3 (three years later). Some things were changed in GNS3 such as available and installed devices. It would be easier to follow. Also, it would be helpful if you showed us the necessary steps to set up VMware workstation player in this course. I don't think that it's ideal to say go out and find my video if you want to install this. A video to install VMware workstation pro (paid) and VMware workstation player (free) should be included. The pro version expires in 30 days of installation. That means if you don't finish the course before that time, you have to pay for the product. I was able to track down your video to install and configure VMware workstation player 12. I installed the latest version (15.5 versus 12), and installed VIX and it wasn't compatible. I found out that you have to use VMware workstation player 14 because that is the latest version that has VIX. This was frustrating to me.

Klause9 February 2020

Exactly what I was looking for, and finding this subject with David Bombal as the Instructor was a huge bonus he's a very good instructor :)

Marcus9 February 2020

I'm new to network automation and I thought it was going to be hard to learn, but this course has showed me that most of the scripts I need are available on github. Its a great course for beginners to learn network automation.

Shahinur1 February 2020

This course is an eye opener for a network engineer to start automating. Thank you David Bombal. You have shown me the path to walk in the world of Network Automation. I am glad that i have attended this course.

Joe27 January 2020

Overall this is a great course, although it is frustrating that the GNS3 topology seems to change in every module. There is no consistency between modules and GNS3 topologies. I have already recommended this course to many of my peers because it is so well done.

Sam22 January 2020

David Bomball is A boss. Let's meet some day when I'll receive my CCIE :):). Very well explained. You got to love it

Sivaji21 January 2020

This is quite useful for the network engineers quickly to understand how to start with python scripting

Barry16 January 2020

Not much explaination about the code itself, I've found myself looking at some parts of the code wondering why it is there and what it does. Feel there could be some more in-depth explanations at this point.

Florentin13 January 2020

I already have a basic understanding of python but this course allows me to have a better understanding of how it integrates with networking. It also introduces an idea or implementation of python and gets me thinking of a different way to implement the idea or a way to expand/refine the process.


4/7/2020100% OFFExpired
4/12/2020100% OFFExpired
5/13/2020100% OFFExpired
6/8/2020100% OFFExpired
7/25/2020100% OFFExpired
8/18/2020100% OFFExpired
11/26/2020100% OFFExpired
12/19/2020100% OFFExpired
12/21/2020100% OFFExpired
12/24/2020100% OFFExpired
2/20/2021100% OFFExpired
3/17/2021100% OFFExpired
6/6/2021100% OFFExpired
6/23/2021100% OFFExpired
7/23/2021100% OFFValid


Udemy ID


Course created date


Course Indexed date
Course Submitted by