[ Read the previous Part 3 ] ♣ Let’s sum up now! Programming or writing code is fun and help prototyping easily any ideas. It facilitates innovation nowadays. We are working hard to digitalize our life and world, and software programming is a key enabler. We are empowering everyone to build mobile applications, web applications or APIs, that solve real world problems. That is why, tools, frameworks, libraries and APIs are being multiplied every day to facilitate this movement. And thankfully our networking world is joining as fast as possible this vision.
Softwares have been powering network devices for years, but most of us, network engineers; in the past don’t really care about the underlying coding aspects. We focused on devices’ features and configurations (which are very important – but not enough nowadays). With the advent of virtualization, we succeed in network functions virtualization ( aka NFV) such as virtual switch, virtual firewall, virtual router and so on. Currently with some advanced technologies, we are able to build full stack software routing platform that can run on commodity server. We are moving fast in software defined era. No matter where we are currently but, this movement (software-driven everything) will be fully adopted in a near future thanks to network programmability. Actually, we notice its impact via network task automation but we have also full programmable network solutions out there. I don’t know which area you are working on, but if you are in the networking field, programming skill must also be your interest. Basically trying to learn coding or developing software programming mindset is important for all of us networkers.
. I’m impressed by the fact; we are bringing AI (Artificial Intelligence) capabilities into networking operations world. Look at Intent-Based networking approach, Intuitive network ( Intent-Based Network System – IBNS) from Cisco for example. We are putting inteligence into networking. We are going behond automation and digital, in fact we are moving fast to smart networking era. Everyone in the networking field has his own opinion regarding this famous following question : “Should network engineers need to learn programming?”. My answer is clear if you are reading this article. But allow me to share a precise point of view.
I think network devices are mainly composed of software and hardware, but all the difference between each vendor products remain a lot on software level. During past years, engineers are focused on devices features, but now, the way we design and build NOS (Network Operating System) is made public and there are many communities around this movement. Some people, may say, we have been automated task by scripting, although, I think, with current level of APIs ( Application Programming Interface) provided by each vendor on a given device, we are above just scripting actions (just automating tasks). We are in a fully programmable networking world with well-known programming languages!
In case you are interested of learning coding, you can start with Python programming language which easy and widely used in networking operations world. Then, you can try to build something, just setup a project and working on. For examples, you can try a Chat-Based application or a File transfer application or prototyping a Layer 2|3 networking protocol. Between, i offer a mentoring or coaching program in case you are interested also. This program can be tailored to you current level or current position or future vision. Feel free to reach me via the contact form on the menu bar of the website.
Nowadays, we have more and more networking roles with programming languages knowledge required or desired. Big companies like to mention this in their job description offer. So having this kind of skill can make a big difference during the recruitment process.
Also, with the fast adoption of Cloud computing and DevOps approach, a network engineer is challenging on how to consume an API. He is invited to sit on a same table with developer team, and must be able to understand their needs and the impact of a given software design on the global network infrastructure.
Many vendors are designing smart products by making them full API-Driven. So, we need to be ready for this.
As I mentioned, feel free to reach me for any assistance in your programming learning journey. I will help you understand that any human being language is more difficult than any computer programming language. I usually say The grammar of my mother tongue is more complicated than any computer programming language. :]
Thank you for reading my article, and if you have appreciated the content, don’t forget to like by clicking on the “like icon” at the bottom. Also, feel free to share it on any social platform. Last, don’t forget to subscribe in case you didn’t do it yet.