Cisco Network Programmability[Training,specialist and fundamental]
Start Out With a Wide and Balanced Approach
My first bit of advice for anyone who asks me this question is to start out building a wide foundation of knowledge across key topics rather than go super deep in one area. There are a couple reasons for this particular approach.
First, and probably most importantly, is that programmability topics intermingle a lot. You will likely find yourself confronted with related topics you don’t understand if you try to go too deep into one topic. For example, if you decide to go deep down the rabbit hole of containers, container networking, and Docker without having a basic understanding of Linux networking, you will quickly find yourself confused coming to grips with the details of Linux bridges and namespaces.
Secondly, there are a LOT of potential topics you could study, with more launching everyday. If you pick one topic and study it to the exclusion of all else, you risk missing out on a topic that you find really really interesting. Or worse, you could find yourself having put months into learning a topic that is no longer relevant.
Introducing Network Programmability Fundamentals
This self-paced training will introduce IT professionals (Application Developers, Networking operators, Architects) to the power, the flexibility and the openness of the Programmable Infrastructure that Cisco is making available to customers with Cisco ONE and beyond. Learn about the tools now available to you like open APIs, network overlays and network virtualization and how to leverage them to address the use cases of various customer environments.
Networking professionals know that technology is always evolving. As networks continue to progress, how can IT professionals remain competitive in the job market?
The five–hour training on demand, “Introducing Cisco Network Programmability Fundamentals, ” can begin to prepare industry professionals for the next wave in networking technologies: flexible, open, and application-aware programmable infrastructure.
If you have Cisco certification at the CCNA® level or equivalent knowledge, and an intermediate level of skill in application development and programming languages, this course can provide understanding in six key areas that make up the Cisco software-enabled network:
- Module 1: Software-Defined Network (SDN) Basics
- Module 2: Cisco Open Network Environment (ONE) Framework
- Module 3: Programmatic APIs — Cisco One Platform Kit (onePK)
- Module 4: Controllers — Cisco Extensible Network Controller (XNC)
- Module 5: Virtual Network Overlays
- Module 6: OpenStack
From this first of four network programmability courses being released in 2013, you will learn the terminology and tools that can help you enhance your core networking competencies to include an emphasis on software.
With further study in this learning series, and future Cisco certification in this area, you will be able to:
- Complement your programming skills
- Harness the flexibility of the infrastructure
- Design network applications that can implement customer use cases requiring programmability
The following browsers are supported:
- Internet Explorer 10
Cisco Network Programmability Developer Specialist
The Cisco Network Programmability Developer Specialist certification is for software programmers who focus on the development of the network applications layer, which can live in any of the Cisco provided programmable components, and will enable service provider, campus, and data center use cases. This certification and course develop the foundation skills needed to develop network applications in programmable environments such as Cisco’s One Platform Kit (onePK), Open Daylight Controller (ODL), and Application Policy Infrastructure Controllers (APICs). Unlike SDN courses that focus on network theory, this certification adds to your practical networking understanding and utilizes Cisco’s experience in WAN, data center, and campus environments to provide you with the skills you will need to become a network developer.
Candidates should be able to program in Python, C, or other languages in an open networking environment prior to this certification.
What topics to study?
When it comes to what topics to study and when, I’ve provided my thoughts on that in my look at Carl the Network Engineer’s journey in both blog and presentation form. For a truly fun look at how a fellow network engineer approached his own evolution I highly suggest taking a look at the full story. But in short, I suggest a three phase approach to diving into network programmability.
Phase 1: Programming Basics
In this first phase you need to build a basic foundation in the programmability skills, topics, and technologies that will be instrumental in being successful in this journey. This includes learning basic programming skills like variables, operations, conditionals, loops, etc. And there really is no better language for network engineers to leverage today than Python. Along with Python, you should explore APIs (particularly REST APIs), data formats like JSON, XML, and YAML. And if you don’t have one already, sign up for a GitHub account and learn how to clone, pull, and push to repos.
Phase 2: Platform Topics
Once you have the programming fundamentals squared away (or at least working on squaring them away) the time comes to explore the new platforms of Linux, Docker, and “the Cloud.” As applications are moving from x86 virtualization to micro services, and now serverless, the networks you build will be extending into these new areas and outside of traditional physical network boxes. And before you can intelligently design or engineer the networks for those environments, you need to understand how they basically work. The goal isn’t to become a big bushy beard wearing Unix admin, but rather to become comfortable working in these areas.
Oh, and maybe take a break from all these new topics to checkout some of the new networking standards like YANG data models and NETCONF/RESTCONF interfaces. It isn’t “dead” but the CLI is definitely loosing some of it’s focus as the lead programmatic interface for the network.
Phase 3: Networking for Today and Tomorrow
Now you are ready to explore the details of networking in these new environments. In phase three you will dive deep into Linux, container/Docker, cloud, and micro service networking. You have built the foundation of knowledge needed to take a hard look at how networking works inside these new environments. Explore all the new technologies, software, and strategies for implementing and segmenting critical applications in the “cloud native” age and add value to the application projects.
Topics along the way…
As you spend your time going through the phases above, your particular enterprise or interests will likely have you brush up against topics like NFV, controllers, IOT, DevOps, and NetDevOps. The three phases aren’t written in stone, use your best judgement to explore and learn about the things that seem important, relevant or just interesting as you find them.
Resources to Get Started
I know what your thinking.. “That’s all great Hank… but where do I get started?” Have no fear, here are some great resources you can checkout to get started.
It just so happens that I put together a set of 28 videos designed to help jumpstart network engineers on their journey. It doesn’t cover everything you need to learn, but it offers a great start.
Programmability topics have long been finding their ways into all the Cisco Certs, but Cisco Learning also has a certification dedicated to Network Programmability.
There have been many sessions at Cisco Live in the last several years that discuss network programmability. Checkout this quick list from the free online on-demand catalog.
In partnership with the Cisco SE organization, DevNet Express events bring multi-day hands on programmability training around the world. Look for an event near you
In addition to the certifications, Cisco Learning also holds regular webinars on many topics and has a whole series just on SDN.
DevNet Learning Labs and Sandboxes
DevNet has built a whole library of self-guided learning labs covering many topics of programmability. In addition, DevNet Sandbox provides 24x7x365 access to development environments composed of Cisco and Open Source hardware and software. And all these resources are FREE!
To Certify or Not? That Is the Question
Whenever a question about certifications comes up I always feel like I’m back on debate club. It’s a topic I could argue on either side effectively because there is no clear answer for everyone. Instead I like to point out two facts that have helped me when tackling this question for myself.
First, outside of a few specific partner requirements, certifications on their own should NOT be the goal. Sure a cert might help you land that job, or snag you a bit of a raise at work, but the real goal of a certification should be the knowledge you gain while studying and earning the certification. If that isn’t the goal, then in the long run you haven’t really gained that much from the effort.
Next, consider one of the benefits of working towards a certification. It provides a curated set of topics, study material, and potentially training classes you can take to acquire the knowledge. This can be a huge time saver as anyone who has ever set out to learn something completely on their own can tell you. The internet is full of information, too full in fact. You can spend days just looking for accurate and reliable resources to learn from before you even begin to study.
With these two bits of detail in mind about certifications, my advice is this. If you are just getting started in any topic, pursuing a certification can be very helpful. It provides a roadmap that was designed to relay a particular set of information. And if there is a certification that well aligns with what you are looking to learn, it can save you a ton of time from assembling your own training plan.
However, there will come a time when you need to learn a topic for which there is no certification, or the certification just isn’t up to date enough for what you need to work on. At that point, you’ll need to head out on your own to explore and learn using the resources you find out on the internet.
For most of us, I expect a back and forth between certification work and independent study will be the norm for the foreseeable future.