Python Training

Python for Network & Systems Engineering

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
  • 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: Essential Python libraries and tools

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

  • Python developer tools and debugging tools
  • Parsing log files with regular expressions
  • Handling dates, times, and IP addresses
  • Working with files and paths
  • Cryptographic hashing of file contents (SHA256, MD5 etc.)
  • Compressing and uncompressing data (zip, tar, bzip2 etc.)
  • Automatically sending emails
  • Running external commands as subprocesses
  • Process and system monitoring with psutil
  • Worked example: finding duplicate files (by contents)

Day 4: Real-world programming in Python

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)
  • Intro to creating web APIs with Flask
  • Templating with Jinja2; automatically creating config files (e.g. YAML)
  • Network automation via SSH with Fabric
  • 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

Melbourne

Python for Network & Systems Engineering:
28 Jan – 31 Jan 2019

50 Queen Street (Mezzanine Level), Melbourne CBD

Book Now

Singapore

Python for Network & Systems Engineering:
13 May – 16 May 2019

108 Robinson Road (Level 11), Singapore

Book Now

Other Locations

Python for Network & Systems Engineering:
Dates TBA

Be notified

Upcoming Public Courses

Sydney

Introduction to Python:
21 Jan – 22 Jan 2019

Level 4, 60 Clarence Street, Sydney CBD

View Details Book Now

Melbourne

Python for Network & Systems Engineering:
28 Jan – 31 Jan 2019

50 Queen Street (Mezzanine Level), Melbourne CBD

View Details Book Now

Melbourne

Introduction to Python:
28 Jan – 29 Jan 2018

50 Queen Street (Mezzanine Level), Melbourne CBD

View Details Book Now

Brisbane

Introduction to Python:
25 Feb – 26 Feb 2019

88 Creek Street, Brisbane

View Details Book Now

Brisbane

Python for Scientists & Engineers:
25 Feb – 28 Feb 2019

88 Creek Street, Brisbane CBD

View Details Book Now

Sydney

Python for Finance:
04 Mar – 06 Mar 2019

60 Clarence Street (Level 4), Sydney CBD

View Details Book Now

Sydney

Introduction to Python:
04 Mar – 05 Mar 2019

60 Clarence Street (Level 4), Sydney CBD

View Details Book Now

Melbourne

Introduction to Python:
12 Mar – 13 Mar 2019

50 Queen Street (Mezzanine Level), Melbourne CBD

View Details Book Now

Melbourne

Python for Predictive Data Analytics:
12 Mar – 15 Mar 2019

50 Queen Street (Mezzanine Level), Melbourne CBD

View Details Book Now

Canberra

Introduction to Python:
18 Mar – 19 Mar 2019

54 Marcus Clarke Street (Level 4), Civic

View Details Book Now

Perth

Introduction to Python:
25 Mar – 26 Mar 2019

105 Saint Georges Terrace (Level 7), Perth CBD

View Details Book Now

Adelaide

Introduction to Python:
28 Mar – 29 Mar 2019

38 Gawler Place (Level 5), Adelaide CBD

View Details Book Now

Melbourne

Python for Finance:
15 Apr – 17 Apr 2019

50 Queen Street (Mezzanine Level), Melbourne CBD

View Details Book Now

Melbourne

Introduction to Python:
15 Apr – 16 Apr 2019

50 Queen Street (Mezzanine Level), Melbourne CBD

View Details Book Now

Sydney

Introduction to Python:
29 Apr – 30 Apr 2019

60 Clarence Street (Level 4), Sydney CBD

View Details Book Now

Sydney

Python for Predictive Data Analytics:
29 Apr – 02 May 2019

60 Clarence Street (Level 4), Sydney CBD

View Details Book Now

Singapore

Python for Network & Systems Engineering:
13 May – 16 May 2019

108 Robinson Road (Level 11), Singapore

View Details Book Now

Singapore

Introduction to Python:
13 May – 16 May 2019

108 Robinson Road (Level 11), Singapore

View Details Book Now

Canberra

Introduction to Python:
03 Jun – 04 Jun 2019

54 Marcus Clarke Street (Level 4), Civic

View Details Book Now

Canberra

Python for Scientists & Engineers:
03 Jun – 06 Jun 2019

54 Marcus Clarke Street (Level 4), Civic

View Details Book Now

Melbourne

Introduction to Python:
17 Jun – 18 Jun 2019

50 Queen Street (Mezzanine Level), Melbourne CBD

View Details Book Now

Melbourne

Python for Scientists & Engineers:
17 Jun – 20 Jun 2019

50 Queen Street (Mezzanine Level), Melbourne CBD

View Details Book Now

Register Your interest

Other courses and locations
Dates TBA

Register your interest

Location

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