Python Training

Python for Network & Systems Engineers

This is a course for network engineers and systems engineers, devops staff, hardware engineers, and back-end developers.

Prerequisites

Some familiarity with programming concepts (in any language) is assumed.

Expected Outcomes

By the end of the course, you will have all the knowledge you need to write and interact with Python code for a variety of purposes, with a particular focus on controlling machines, automating system processes, and interacting with APIs. You will understand the elegance and power of Python and have had experience using several important standard and third-party libraries, including for parsing text and log files, matching strings with regular expressions, and scripting tasks via SSH connections. You will also have learned about consuming and creating web APIs and some best practices in Python for writing maintainable code.

Course Syllabus

Day 1: Python basics

Day 1 covers how to use Python for general programming tasks, including tips and tricks for making this easy. The syllabus is as follows:

  • Setting up your Python development environment (IDE, Jupyter notebook)
  • Packages and modules
  • Python syntax and concepts: an introduction through examples
  • Functions and their arguments
  • Essential data types, tips and tricks: strings, tuples, lists
  • String methods; input and output of text data (including CSV files)
  • Dictionaries and their applications
  • Worked example: consuming web APIs
  • Raising and handling exceptions

Day 2: Handling, analysing, and presenting data in Python

Day 2 will introduce further important concepts and tools for making the most of Python. In particular, it will give you a comprehensive introduction to reading and writing the most important data formats; slicing, dicing and analysing data in powerful ways, and exploratory data visualisation.

  • Further important data types: namedtuples and sets
  • Classes and objects
  • Reading and writing essential data formats: JSON, CSV, Excel, SQL databases
  • Indexing and filtering data in Pandas
  • Data fusion: joining & merging datasets
  • Summarisation with “group by” operations; pivot tables; hierarchical indices; reshaping data
  • Handling dates, times, and time-series
  • Interactive visualisation and data exploration with Altair

Day 3: Network and system automation

Day 3 gives you a tour of the amazing standard library and important 3rd-party tools for automating various systems-level tasks with Python:

  • Network automation via SSH with Fabric
  • Parsing log files with regular expressions
  • Handling files & paths; dates, times, and IP addresses
  • Cryptographic hashing of file contents (SHA256, MD5 etc.)
  • Worked example: finding duplicate files (by contents)
  • Compressing and uncompressing data (zip, tar, bzip2 etc.)
  • Running external commands as subprocesses
  • Process and system monitoring with psutil
  • Worked example: automatically sending emails

Day 4: Web APIs and best practices

Day 4 shows you how to automate a variety of further tasks, such as consuming and creating web APIs. It also teaches you about some "best practices" of development using Python:

  • Accessing web APIs in more depth (sessions, OAuth)
  • Creating web APIs with Flask
  • Templating with Jinja2; automatically creating config files (e.g. YAML)
  • Python developer tools and debugging tools
  • Best practices for maintainability; tips and tricks
  • Creating scripts that take command-line arguments
  • Creating reusable modules and packages
  • Logging and unit testing

Supplemental materials

We will supply you with printed course notes and a USB stick containing electronic versions of the course notes as Jupyter notebooks, solutions to the programming exercises, several written tutorials, and reference documentation on Python and the third-party packages covered in the course.

Other information

Personal help:
Your trainer(s) will be available after the course each day for you to ask any one-on-one questions you like — whether about the course material and exercises or about specific problems you face in your work and how to use Python to solve them.
Food and drink:
We will provide lunch, morning and afternoon tea, and drinks.
Timing:
The course will run from 9:00 to roughly 17:00 each day, with breaks of 45 minutes for lunch and 20 minutes each for morning and afternoon tea.
Computer:

An internet-connected computer will be provided for you for the training.

Upcoming Courses

Sydney

Python for Network & Systems Engineers:
14 Oct – 17 Oct 2019

60 Margaret Street (Level 13), Sydney CBD

Brochure Book Now

Other Locations

Python for Network & Systems Engineers:
Dates TBA

Be notified

Testimonials

“The course was delivered by trainers who were extremely knowledgeable in their field. It was really good to learn from the best!”

- Marius Roman

“Great course. Enjoyed it and will follow up with some practical implementation of some of the work.”

- Adam Grace

“One of the best training courses I've been on.”

- David Scurrah

“I loved it. Ed was inspiring.”

- Onoriode Coast

“Really impressed by Python's capability and excited to use as alternative to MatLab, as is free and better supported.”

- Carsten Hofmann

“Very comprehensive intro to every aspect of python. Highly qualified trainer. Beyond my expectation on every aspect.”

- Baichuan Sun

“The VM setup and USB is great. Ed is an excellent instructor - he presents well and welcomes any questions. He is clearly a super smart guy who has a great grasp on what he is teaching - able to just prototype on the fly and the course overall really opened my eyes to python.”

- Jack Hendy

“Course content was well presented and easily digested. Practical exercises were an essential part of the course – a good ratio of lecture/play was achieved. Well done Ed and Henry!”

- Steve Zegelin

“Simply awesome!!”

- James Park

“Both Ed and Henry presented well…. The course structure was adjusted to suit the participants quickly and easily.”

- Jenet Austin

“Excellent training course, excellently presented. Perhaps the best that I have had in the area of IT / programming.”

- George Grozev

“One of the best programming courses I have attended - thanks!”

- Giant Billen

“This course has shown me how I could have done the work I was doing just last week 10x more efficiently in Python.”

- Maruf Rahman

“It was a pleasure ... Shared feedback from all involved was that it’s been one of the most beneficial and well delivered training courses we’ve been a part of.”

- Dylan Matthews

“Was the most fulfilling and rewarding class I have taken since "general relativity" at uni. Was extremely well run. Excellent all round!”

- Dr Millicent Maier

“Very impressed with the course, delivery. And depth of knowledge of Ed and Henry. Far exceeded my expectations and has greatly improved my core skills as well as inspired so many new ideas for my current work / projects. Thank you!”

- Kelsey Druken