Have you just passed the DevNet Associates Exam? Well then Congratulations! You did it! After spending countless hours learning about Python, REST APIs, Linux, NETCONF, YANG, and software development methodologies, you are now DevNet Certified!
So now what? What do you do with your new skills?
Step 1: Begin to add value
Start by looking at the processes in your current job. If there are people or teams working on automation, you can now help them (and understand better how they can help you).
Some ways that you could assist are:
- Create and update documentation: Often the biggest need in automation projects is documentation. This will allow you to gain an understanding of the scripts that are being used in your org and since you will be reviewing the code it will indirectly help to improve your skills.
- Bug fixes: Fix any bugs that may exists in the code. There have been many times in my career where there are scripts engineers utilize to perform a task and the script either partially works or no one no longer supports it. This is your opportunity to step up and take ownership. Especially if there is no one to support the tool.
- Resolve any security vulnerabilities: Are there any security issues in the current code base? How are passwords being stored? You will be surprised how many passwords are stored in scripts on a shared drive in plain text or using an unsecure hash. This your chance to improve your organization’s security by finding better ways to store passwords by using environmental variables or by implementing something like Hashicorp’s Vault.
- Here are a few more advanced approaches:
- Write unit tests: Ensuring that the code executes as intended.
- Add new features to the existing pipelines.
- Develop your own scripts: But this approach requires that you always test your code in a testing development environment, and your code should be approved before ever being run in production.
Automate the things
I have found that the best way to improve new DevNet skills with python, bash, ansible, and so on is to take on the challenge of automating a task that I do repeatedly. It can be work-related or something personal – whatever you care about. On the home front, you could dive into home automation, or something as simple as building a twitter bot to automatically tweet daily motivational quotes to your timeline. Here’s an example of a bot I created to help me learn Python.
Join an open-source community
Many software developers engage with open-source projects (almost exclusively on GitHub). You can, too. You can open issues on code, fork repositories, and do pull requests. With pull requests, you do not even need to write code. You can add to a project just by updating its documentation. You will be surprised how much value you can add by doing this one little task. Through these contributions you develop new relationships and the opportunity to get real feedback on your work.
Here’s a list of projects you may be interested in. I chose these projects because many of them are tools for network automation. And by contributing to projects that are in your technical area you can add value to the community and to your resume:
- pyATS – an ecosystem that streamlines and standardizes how you set up and run automated network tests.
- Scrapli – python 3.6+ library focused on connecting to devices, specifically network devices (routers/switches/firewalls/etc.) via Telnet or SSH.
- Netmiko – Multi-vendor library to simplify CLI connections to network devices.
- Probot – GitHub Apps to automate and improve your workflow.
- Home Assistant – Open-source home automation that puts local control and privacy first.
Solve problems with automation
As you get comfortable with your DevNet skills, you can start looking for ways to solve bigger problems with automation. A few examples are writing a script that backs up all your devices running configs, saving them with the hostname of the device and the date of the backup, and storing them to a private repo like github. Another problem you could solve is automating device deployment with something like Cisco DNA, or creating your own custom automation project. The goal here is to help you to start thinking like a developer. What I mean by this is even though you may want to automate every task in your data center. You must learn to break your automation goals down into the smallest iteration and then build on that.
Which leads me to my last point. Just because you have a new certification, does not mean that you stop learning! Continue to take courses, read books, blogs, attend conferences. Soon enough you’ll be contributing your own content to the community. Teaching and sharing what you have learn is a great way to reinforce the knowledge that you have obtained.
Now I must do a shameless plug. If you have not already signed up for DevNet, here’s a link to Start Now. The resources we have will not only help you continue your learning. But when you complete our learning labs and modules you can also challenge yourself by submitting new code to the DevNet Code Exchange. Submitting code to your peers is an excellent way to gain feedback, build community, and to display your new skills. Remember there is an active DevNet community here to support you!
Your next challenge
Network engineering and app dev is a journey. In this blog post I provided you with several options that will hopefully lead you on an exciting journey of continuing to expand your new skill set, while building tools that can make your job and life easier.
If I can learn to automate, so can you! And I challenge you to put your code out there! I am excited to see what you create.
If you have any feedback or comments on the DevNet journey, let me know in the comments below – leave me a message, ask a question, whatever you want.
We’d love to hear what you think. Ask a question or leave a comment below.
And stay connected with Cisco DevNet on social!
Visit the new Developer Video Channel