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!
Hello, I'm new to Cisco Technology, I'd like to know how to get income call number.The requirement is get incoming call and save the external number in a Database. I'm trying with AXL, with ECC but i can't find how. Appreciate your hel...
Is it possible within the a CCX script to get the details around the holiday. For example I would like to reference the name that is entered when configuring the calendar in the CCX admin GUI from within the script to play specific audio prompts.
Hi all, I'm trying to do more with the vManage REST API and have found a lot of great information on GET calls but not much information on POST. I am trying to work with a call that uses the POST method in order to retrieve a CSV, but I have no...
I'm learning Python and in the very first stages so please be patient with me. I'm trying to write a script to ping devices from a CSV. Specifically, the CSV is an export from Cisco ISE. We audit our TACACS devices ever so often because ...