| certifications | cisco - David Zomaya
Cisco DevNet: Why It's Time to Learn Python
When Cisco first announced it's DevNet certification program, it was an exciting moment. IT is evolving and certs that sit at the crossroads of networking and automation are needed. We're seeing more demand for professionals who have the software and automation skills that are needed in this quickly growing area. The Cisco DevNet provides the opportunity to validate skills in this growing field of infrastructure automation.
Of course, enabling automation means at least basic programming and scripting skills. These aren't always a given for traditional network professionals. This is where Python can help. We've said it before and we'll say it again: we think Python is the first language you should learn.
So, why should you learn Python now that DevNet certs are here? The simple answer is: Cisco's recommended experience for DevNet Associate certification includes: "Hands-on experience with a programming language (specifically Python)"
Of course, just because a vendor says something doesn't make it important in general. We should look at what's happening in the real world, too, and Python passes the test from that perspective as well. For many IT pros, Python is worth learning for many of the same reasons it's a great first language.
Python has become one of the most popular programming languages. It is a general-purpose programming language that is widely used for a large number of different applications. Because of that extensibility, Python skills are becoming more valuable to employers.
With the short answer out of the way, let's go a little deeper. Here, we'll look at what makes Python such a big deal — and why it's important to your success as a network professional.
A Look at Python
While Python isn't exactly new, it's rise in popularity as it relates to Cisco certs is. The reason why it's so widely used today is because it's not a very complex language. It is designed to be simple to read and write. This readability is particularly important when looking for languages that are accessible to non-developers of varying skill levels.
Python also has such a strong community with many sources available. This accessibility and large community of support makes it easy for someone to start learning Python.
Python is Great for Your Toolbox
Let's compare building up your programming skills to building your toolbox. Sure, you can get specific about specialty tools you'll need for a very specific job. But wouldn't it make more sense to start off with the tools that will get you the most use? If you want to get the most use out of what you have, you'll want to start off by including tools that will work for most jobs. A few different screwdrivers, pliers, wrenches, hammer, and a drill might be a good place to start. This way, whatever job you encounter out in the field you'll be able to start working on right away.
The same general tool building idea can be applied to developing your skills. If you're going to invest time to learn a programming language, wouldn't it make sense for it to be one you are likely to use most?
You want to have the right tools to get the job done. Learning widely used tools first will let you complete the most jobs — giving you the best return on your investment. Having this in your back pocket will help you stay ahead of things. This becomes especially true for a networking engineer.
Networking Engineering and Python
As was stated before, Python is one of the most popular programming languages at the moment. While a networking engineer might not have signed up for programming, having an understanding of a simple programming language would be very useful.
Going back to the toolbox example earlier, you need to arm yourself with the most useful tools to get the job done. In this case Python is another tool that will make your life easier. At this point, with Python, we're using it to create a specialty tool to make the craft easier.
You're using the other tools in your box to create a tool that will be used for a single purpose. In this case, the tool you're creating is a script and the goal is to make other tasks easier to perform. You'll also be able to automate some of these tasks. As with any craft, you'll typically end up making something to focus on a single purpose.
Real-World Python Use Cases
One of the best examples of the power of Python is Netmiko, a project that supports a large library of network devices. Netmiko has been tested for compatibility with vendors including Cisco, Juniper, Dell, and Palo Alto. It enables SSH connections and the automation of common administrative tasks using Python scripts.
For example, some network pros use Netmiko to create a spreadsheet detailing their inventory. Others have used Python to identify unused switch ports. Basically, anywhere running CLI commands at scale would be useful, Netmiko can help.
Additionally, more and more platforms are adopting RESTful APIs — including many network devices. With libraries like Requests, Python is a great way to interact with those APIs programmatically. In fact, the DevNet Associate exam specifically focuses on Python for interacting with the Meraki and WebEx APIs.
Configuration management tools also often play quite nicely with Python. For example, if you want to write your own Ansible modules for network management, Python is the way to go. The Ansible docs even have a section dedicated to developing Cisco ACI modules.
How Python Applies to Cisco DevNet
The Cisco DevNet Associate exam 200-901 calls out hand-on experience with a programming language and specifically mentions Python. We've already touched on using Python with the Meraki and WebEx APIs, but there are other Python-related DevNet topics as well. For example, the exam topics (PDF) call out constructing a Python script that uses the Cisco software development kit and one that uses the requests library to make an API call. Being able to read Python scripts and identify what workflow is being automated also is an exam topic.
This emphasis on programming in Cisco DevNet certs may be surprising to some. In the past, many would not have expected such a programming focus from a "network" vendor, but times have changed. DevNet addresses a gap in the market and helps IT pros validate skills relevant to today's networks. Specifically, DevNet does a good job of bringing DevOps and infrastructure automation into the fold.
Cisco's DevNet path is going in the same direction the industry is headed today. If you're an experienced developer just looking to automate network infrastructure, or a network pro looking to pick up automation, DevNet certs can help.
You can't ignore the popularity of Python these days.If you want to prepare yourself for future changes, this is the path you'll take. Maybe a few years down the road, something else becomes the new focus of Cisco DevNet exams. But for now, there is plenty of upside in learning Python.
Of course, there are no absolutes in IT. Learning a new programming language can help you, even if it's not Python. But you'll want to make sure to keep the tools that see the most use in your toolbox. Sure, you'll have use for others down the road. However, you'll want to make sure you have the right tools to get the job done. Start with the Swiss Army Knife — and figure out whether you need a chainsaw or screwdriver later on.