Right now the IT industry for network engineers is in a place of change and adaptation. Within a COVID-19 environment, companies had to adapt with remote workers at home 100% of the time. Network capital and operational costs continue to expand and grow even in the middle of the pandemic. Most network changes are performed as a manual process which increases operational costs overall. This operational cost has been magnified due to working resources now at home due to the pandemic. Companies have a high demand for automated network solutions at scale.
For the traditional engineer, I've noticed several vendors have made their enterprise equipment accessible for network programmability. Network Programmability as defined by Network Computing "is a set of tools to deploy, manage, and troubleshoot a network device. A programmability-enabled network is driven by intelligent software that can deal with a single node or group of nodes for configuring services and connectivity".
With that said, learning a programming skill is imperative for network engineers to meet and thrive within the demand for automated network solutions. Learning a programming language such as Python will increase the engineer's marketability and skillset. Their skillset will be in constant demand and increase salary opportunities.
Python Programming Resources
Here are some great resources for learning Python Programming:
This is the best and most comprehensive site for learning about Python programming. It offers great insight for documentation on new code features, has a section for beginners, quiz information and tutorials, and exercises on different categories within Python. No matter your level of expertise this site has great resources overall.
This course offered through FreecodeCamp gives a full introduction to all core concepts in Python. This course is offered online via the FreecodeCamp YouTube channel which I highly recommend subscribing to.
PythonForBeginners offers lots of information directly related to Python content. There are tutorials that cover everything from Introduction to Loops, lists and operators, and plenty of other foundational topics. They also offer step-by-step tutorials for learning Python.
4. Book: Mastering Python Networking by Eric Chou
This book is one of the best-written documents for network automation that I have seen to date. It's thorough and easy to understand and follow along with the topics. This book is a solid reference material to keep within your technical library.
5. Google's Python Class
This site offers a free course targeting people that have a little bit of programming experience with a need to learn Python. The class includes written documentation, lecture videos, and various code exercises to reinforce technical knowledge.
6. The Hitchhiker's Guide to Python
This site is a great mix of information targeting beginners and programming veterans. This site is opinionated towards various development scenarios for network applications, databases, cryptography, and many more tools. The site has collaboration results from hundreds of people around the world contributing information.
7. Udemy 100DaysOfCode Course
This site offers technical training options for learning Python at your own convenience through tutorials, video lectures, and coding challenges. There is also an online community via Twitter using the #100DaysOfCode
8. Udacity Free Introduction to Python Programming
This is a free class to learn the fundamentals of Python Programming language along with best practices. The class is approximately 5 weeks long at the beginner level.
9. Kirk Byers Python For Network Engineers
Kirk Byers offers Python training for traditional network engineers. He's the creator of Netmiko Python Library and also maintains the NAPALM project. There are free 8 week Python classes available through his website.
If I see additional links or resources for Python I will add them here in this location. If you have any questions or comments, feel free to leave a comment. I am always looking for new helpful content, so if you have any ideas for articles or videos, please reach out to me using the comment section.