Consider learning Python. It will help you with your current job, make you more marketable for a promotion and other better jobs, and help you get ahead of the SDN curve.
You don’t need to become a full-time hard-core programmer. You just need to learn enough to be able to understand and use code that the very altruistic open-source community is constantly producing – and return the favour if you end up making something useful too. Learning to code in Python will take about 100-150 hours of your time, but, in turn will save you thousands of hours in the future. After trying a few different Python courses, I discovered this one, which is I think is THE BEST networking focused Python course, and only costs $25 USD. Mihai, the instructor, starts from scratch, assuming you don’t even know how to spell Python, and goes from there.
So, with the advent of SDN, you are hearing all over the place that all network professionals will need to become programmers. On the other hand, the vendors are coming to you, and almost like they are rescuing you, and telling you, “you know what, you don’t really need to know any programming if you buy our latest product X”. The truth is, you don’t really need to know how to code YET. You can also probably get away with not know any programming for another 5-10 years or so. BUT, with increasingly open and programmable network devices, controllers, it’s a very good idea to learn some coding.
Cisco’s ACI, Nexus 9000 series, Cumulus Networks, Juniper, HP, Nuage, etc. are all moving towards increasingly programmable infrastructure – and they all support and encourage Python as one of the methods for interfacing with their devices. Sure, there is REST, APIs, NETCONF, JSON/XML and other methods of interfacing with the new product’s programmability features, but, Python seems to be the common denominator, that’s supported by almost all vendors and systems. Unlike previous generations of products, programmability on the upcoming infrastructure is not only supported, but actually encouraged by some of the vendors.
Why learn to program?
Spending about 100-150 hours learning python programming once (which is probably a realistic estimate) will save you hundreds or even thousands of hours in the future. How?
– How about changing the MTU on all the 9216 interfaces in your network?
– How about verifying that SSH is enabled on all the 400 devices on your network? And double-checking to make sure Telnet is disabled at the same time?
– How about checking to ensure every month that all your devices have the correct ACLs applied on the management interfaces?
All of these tasks, which would normally take days or weeks, depending on the size of your network, can be automated via programming to be completed in matter of minutes.
Of course, like any other skills, learning to code will make you more marketable and increase your chances promotion and/or landing a better job! Learning to code can also help you solve some day-to-day operational problems yourself and save your company thousands of dollars that you would otherwise spend on software to help you automate and do some of the same functions.
The best part is that you don’t need to become a full-time programmer. You only need to learn enough to be able to use code that vendors and other great people in the open-source communities have already developed and customize to your need. And if in turn you end up making some awesome scripts or an application, be sure to give back to the open-source community via a portal like GitHub.
The good stuff
With goals like this in mind, I had started working towards the goal of learning Python as per one of my previous blog posts. After struggling through a few different Python courses, including two that were targeted to network professionals, I came across Mr. Mihai Catalin Teodosiu’s excellent “Python Network Programming – Part 1: Build 7 Python Apps” course on Udemy (only $25 USD!).
Mihai is a truly gifted teacher and there are many things that make Mihai’s course far better than many of the other courses I tried, which I quit due to various shortfalls. Mihai’s course has the following advantage over some of the others I tried:
– it’s only $25 USD (at the time of writing – with maximum potential price of $50 USD as that’s Udemy’s new upper limit as of March 2016)
– Mihai starts from scratch, assuming you know nothing about programming
– a VM is provided to help you get started with practicing course material immediately – without having to worry about installing Python or it’s libraries and dependencies on your computer (which is not hard in itself at all)
– Mihai consistently uses examples from the networking world to explain concepts like integers, list, dictionaries
– unlike other courses, Mihai doesn’t suddenly throw 20 or 30 lines of code at you after a few one-liner examples (with some minor exceptions), and painstakingly explains every component of the code
– at the end of Mihai’s course, you go through the process of fully building 7 apps. These are no dinky little “hello world” type applications, rather, they provide significant usable code that can be put together to significantly automate the tedious portions of your job so that you can focus on more fun things!
– there is a Part 2 to this course, to help you take things to the next level, and be able to code some serious Python applications
What are you waiting for? Enroll in the course now: https://www.udemy.com/python-programming-for-real-life-networking-use/
(Note: I have no affiliation with Mihai or Udemy – I am simply a happy customer)
You rock, thank you for this.