cancel
Showing results for 
Search instead for 
Did you mean: 
cancel

Python Network Programmability Additional Background

2373
Views
23
Helpful
9
Comments
Cisco Employee

Introduction to Python Network Programming for Network Architects and Engineers

Additional Background for DevNet1040, 1041 and 1042 seminars:

  Over the last two weeks, I’ve put together a series of videos that focus exclusively on Python language syntax and structure called ‘Getting Started’,(a listing of the content and link to the videos provided below).  There are twenty-five videos of about 20 to 30 minutes each - most of which have accompanying code examples.


   The idea is just to provide some background on Python so that session participants can at least go back from CL with a starting point/reference guide for the Python language.  With this in mind, I went out of my way *not* to include anything that was network focused in the content – the material is just about the Python.language.


   Given that there’s nearly ten hours of video content, wading through all of that stuff before our sessions would be nearly impossible, so there’s absolutely no expectations that participants need to get through or even understand the content – think of it as just a Python reference library that’s available for future use.


  I do intend,(time permitting) to upload some additional videos on what we cover in the seminars as well as some topics that I’ve needed to leave out because of time restrictions.


*MOST IMPORTANTLY*, I’m hoping that if you *do* happen to review the material before the sessions, please provide some feedback, comments, thoughts and/or opinions on what you think!


Where to Start/How to Use the Material:

The content is divided into three sections:


Part I  – Python Background

Part II – Python Installation

Part III – Python Fundamentals


Part I – Python Background: if your completely new to Python and would like to get some general information about things like;

  • The differences between compiled and interpreted languages
  • Python portability, modules and how the Python interpreter generally works
  • The various implementations of the Python language as well as the pros and cons of Python 2.7 versus Python 3.x

Part II – Python Installation:  Start here If you’d like to install Python yourself on your own machine.  This walks you through Python installation, virtualenv and working with the IDLE Integrated Development Environment.


Part III - Python Fundamentals:  If you’re just interested in understanding Python syntax and language structure in general, then begin here.   The 16 videos and code examples in this section cover the language basics.


‘Just Curious What’s Out There’: Finally, if you’ve worked with Python before but are wondering if any of the material would be useful, then take a look at the final video in Part III called ‘Python Fundamentals – Functions Pat V Putting it all Together’ or browse through the attached spreadsheet.  If you find yourself nodding off or bored to tears, then great!  No need to continue

What’s Not Covered in the Material:

What follows is a list of topics that have been (intentionally) left out of the videos:

  • The videos are Python 2.7 based,(although we do try to point out the differences between Python 2.7 and 3.5 whenever possible).  The reason for this is that there is still a substantial following/legacy code base of Python 2.7 deployed.  The intent is to cover ‘as much ground as possible’ by orienting everything around 2.7

  • The videos provide very little focus on Python best practices – e.g., PEP 8 standards, security, code reuse, efficiency or developing robust, ‘bullet-proofness’:):)

  • The videos only cover a *SMALL* subset of the Python language.  For example:
    • We cover only the simple data types, completely ignoring topics like; sets, numeric complex data types, etc.. 
    • The content is intended to just cover the ‘blocking and tackling aspects’ of the Python language so the videos ignore ‘more sophisticated’ topics like anonymous functions/lambda/list comprehensions/generators/decorators, etc., etc., etc.:)

The videos also completely stay away from/consciously avoid, *any* discussions about OOP.  The entire premise of the DevNet sessions is that, although OOP is an extremely powerful core component of Python, at times, it can also be an impediment to learning. 


  In my opinion, ‘classically oriented’ Python training materials sometimes have a tendency to be too focused, (and too confusing) about programming abstractions. This is a problem because I think the networking community (myself included) tend to think in terms of ‘step-by-step, block diagram-like’ procedures;) 


   The purpose of these sessions is to demonstrate that Python is so flexible that you don’t need to think in terms of one type or the other - Python can be used/coded in a purely OO style or in a completely procedural style.  The latter being something that is perfect for the types of tasks that we in the networking community typically need to accomplish.

I hope you find the material useful and enjoyable, and *please* provide feedback! – let us know what you think!

Thanks

Vince

Link to the material:

https://cisco.box.com/v/DevNet1040GettingStarted

9 Comments
Beginner

Highly insightful Vince. Thank you,

Beginner

The content at the cisco.box.com link is no longer available.

Is there another link that can be used?

fjm

Beginner

I can't get the cisco.box.com link to work either.  It says: This shared file or folder link has been removed or is unavailable to you.

Can we get it somewhere else?

Beginner
Beginner

I found the session videos without a problem.  It is the extra folders with the code samples and presentation slides that he talkes about aren't there (https://cisco.box.com/v/DevNet1040GettingStarted).

Beginner

Can you please povide an alternative link ? The link provided no longer exits !

Beginner

Unfortunately, this link doesn't work anymore ---> https://cisco.box.com/v/DevNet1040GettingStarted

Could you please provide a working one?

the link is not working. please provide an alternate link.

Beginner

HI I cannot access the Link. Is their an Alternate

CreatePlease to create content
This widget could not be displayed.