Earlier this week I got DevNet Associate certified, using the online testing offering. The TL DR of this post is going to be this:
- Get the 10-week study plan from my friend Nick Russo
- Follow him on Twitter
- Sign up for Pluralsight
- Execute the plan
- Take the test and pass
I have no affiliation with Pluralsight or anyone else, by the way. It’s just that it happens that Nick’s content is there. This may sound like a very simple plan but it has worked for me and many before me. If you follow his plan, you will be prepared to take the test and have an excellent chance of passing.
Now, for the longer version of this post. As with any certification, you need to check the blueprint and assess your current skill level pertaining to those topics. The DevNet Associate has these major areas of topics:
- Software development and design (15%)
- Understanding and using APIs (20%)
- Cisco platforms and development (15%)
- Application deployment and security (15%)
- Infrastructure and automation (20%)
- Network fundamentals (15%)
With my background as a networking expert, this means that I don’t need to spend much time on network fundamentals. For the rest of the blueprint, though, I did not have much experience. This is why I have been studying for this certification for almost 6 months. I wanted to build a strong foundation and I didn’t have much experience coming into studying for this cert.
The DevNet Associate is a pretty broad exam, like most entry level certs, so being deep in a few areas is not enough unless you also have a broad skillset.
Here are some of the things I think you will find helpful as you embark on this journey.
Developer environment – You will be writing code. You will be using Git, BASH, Curl, and other tools. I’m a Windows user but I highly recommend you setup a device with Linux to use as your developer environment. I use VS Code in Windows and connect via SSH to my Linux box where the actual code is stored. You will want to get exposure to Linux and all it has to offer as well as many of the tools I mentioned above.
Get exposed to Linux – You want to have some experience with Linux. I have used Linux for many years although not at any depth or as a systems administrator. You want to be familiar with things like:
- Using a package manager
- Copying files
- Removing files
- Adding files
- Moving between directories
- Creating directories
- Removing directories
- Going to your homedir
- Checking and setting environment variables
- Understanding basic Bash scripts
- Understand stdin, stdout, stderr
- Changing permissions
Not at all an inclusive list but I think you get the idea that you should have a basic level of proficiency with Linux.
YAML/JSON/XML – You need to be very comfortable with YAML, JSON, and XML. If you don’t understand these, then you won’t be able to properly use APIs, code in Python etc. You should be familiar both with the syntax as well as understanding the data structures.
Curl – Curl is a great tool to use for quickly testing different APIs. You will want to be familiar with this tool and understand things like:
- How do you specify if it’s a GET, POST, PUT call etc
- How do you provide authentication?
- How can you set the HTTP header?
- How can you set the HTTP payload?
Here is an example of getting an API token from DNAC:
daniel@devasc:~$ curl -X POST -u "devnetuser:Cisco123!" -H "Content-Type: application/json" https://sandboxdnac.cisco.com/dna/system/api/v1/auth/token {"Token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiI1ZTlkYmI3NzdjZDQ3ZTAwNGM2N2RkMGUiLCJhdXRoU291cmNlIjoiaW50ZXJuYWwiLCJ0ZW5hbnROYW1lIjoiVE5UMCIsInJvbGVzIjpbIjVkYzQ0NGQ1MTQ4NWM1MDA0YzBmYjIxMiJdLCJ0ZW5hbnRJZCI6IjVkYzQ0NGQzMTQ4NWM1MDA0YzBmYjIwYiIsImV4cCI6MTYwNzI0NjE0NiwiaWF0IjoxNjA3MjQyNTQ2LCJqdGkiOiJhMjE4ZWU4ZC1jNzdjLTRkYmEtODg5Yi02ZGJhNjBhODYzNzciLCJ1c2VybmFtZSI6ImRldm5ldHVzZXIifQ.T0FT0QrJZJdK9KB053aVBzgc8zdlr_hs3WHkalO-EObBm1fLB60Ckffv9pFsR_lNQVlZugwoJ4-DsyFAFveGmoh-C3LzSCtUPkJzbrtZ2huZIkJaofZuRgO4_5RfCfA8VQU-L7A1Si-QTdzFDFGuS0n_NzVX4O9ls-p-pR7fKyGLfO7HJxybCeOlui6hnfla7StieY3do8sKXjpx2Xy8C2GHH9oAFxyRG7eLj5SJnF1IvVoJ_OKwGYuB6MmTmimR2EqY7Uvtxn-9Lc1ify5TX6fHvctMETBZznDYio0dPJnjLS0z4MbakZJj4kPNSXyOuff7RQ6qyKCD1j18xNeABQ"}
Git – You need to be familiar with Git. Both how to use it but also be aware of the nomenclature that comes with it. You should be aware of things like:
- How do you clone a repo?
- How do you initialize a directory to be tracked by Git?
- What is the working directory?
- How do you add files to the staging area?
- How do you commit files?
- How can you check the status?
- How do you diff files?
- How do you push changes to remote repo?
- How do you resolve merge conflicts?
I highly recommend getting some exposure to Git also for your daily work if you can. Maybe start tracking configuration files in Git?
Postman – Postman is an excellent tool for understanding how API works. It’s easy to setup different HTTP requests, modifying headers and payload and seeing how the response is formatted. Get familiar with Postman and use the collections provided by Cisco as well as Nick Russo. These are very helpful.
Sandboxes – Cisco DevNet provides a lot of free sandboxes. There are both those that are always-on as well as those that need a reservation. This is an excellent resource that you can’t afford to miss out on. Use them to get exposure to different architectures such as DNAC and SD-WAN.
APIs – A lot of this exam is about understanding how to use APIs. You should be familiar with how to read API docs, how to authenticate yourself so that you can use the API. Are there different ways of authenticating? How do you need to format your request to get a response back? How do you troubleshoot a call that is not working? Get a lot of hands-on using APIs, both with Postman but also by using Python. Be familiar with using the requests library.
Python – You don’t have to be an advanced coder, I’m certainly not, but you need to know enough Python to do things like pulling data from an API. Here are some things you should know about:
- Using a library such as requests
- Authenticating to an API with code
- Getting data from an API
- Iterating through that data
- Looking for information inside of a structure such as a dictionary
I have by no means covered all of what you need to know for this exam. Hopefully I have highlighted some of the important concepts, though. Be aware that it is a broad exam as mentioned previously.
Now, for the test itself, it was my first time using Pearson Vue and their OnVue and it wasn’t a perfect experience by any means. You register for a test online and 30 minutes before your exam, you can start the check in process. That means that you have to provide pictures of the room you are taking the test in, as well as some form of identification such as your driver’s license. This process didn’t go exactly smoothly for me as there was some kind of bug so that when I was to take a picture of my driver’s license, the camera was facing me *sigh*.
The OnVue app that you run on your computer basically shuts down everything else and runs some kind of browser lock to provide the exam to you. Make sure that this app can run before you take the test. Maybe you have some security software blocking it? Give it a go by downloading the app and trying it. It will test your camera, mic and your throughput on the network. Be aware that it doesn’t support all operating systems.
When you have checked in, you will get assigned a proctor. This can take some time. It took 20 minutes for me, I think. I’ve heard people waiting for hours. Hopefully that’s not the case for you. Be aware that you must be facing the camera at all times. No breaks allowed. Not allowed to talk, to use scratch paper, touch your face, etc. If someone enters the room, the exam is over.
What are the requirements for the room? Noone seems to know exactly. You shouldn’t be sitting close to eletronic stuff or books, though. Some proctors seem to be more relaxed than others. I took the test from my daughter’s room where there wasn’t much else than furniture and toys, etc.
Be aware that the test consists of a lot of questions so you will need to have the stamina to go through them all. Some questions will be lighter and some will be heavier. You may have to go through for example API documentation. Also be aware that answers may be quite similar so make sure you pick the right one. It’s easy that your mind for example thinks that ther is a comma there even if there isn’t because you are used to the syntax being correct.
Over all I’m happy I embarked on this journey. I have learned a lot and even though I’m not looking for a career move, I now think I know enough to do some useful things within automation.
Good luck!
This article is spot on, taking my exam tomorrow, great overview of how to prepare!
Thanks! Good luck!
Great post and good advice. I think I took the test a few days after you did and I felt it was difficult. I passed by the way, but it was close. I have experience in all of the areas listed but it was still a challenging test. As a developer, you typically have the resources at arms length, but in the test, even simple things can seem challenging. I found myself second guessing too much. I was not a fan of the test-from-home experience. I would have much preferred to take the test at a testing center. I think the strict rules of the testing engine and to to the anxiety of the testing experience. Congratulations on passing.
Congrats to you as well, Jon! Just because it’s an entry level test doesn’t mean it’s not challenging. My online testing experience was really poor and it definitely added some stress to an already stressful situation. It’s been a fun journey.
Great article, Great Help !
Thanks buddy.
You always have good, real world, practical advice, Daniel. Thanks a lot for sharing this.
Ken
You always have good, real world, practical advice, Daniel. Thanks a lot for sharing this.
Ken
Thanks, Ken!
Pingback:O egzaminie DEVASC - wywiad z Przemkiem Rogalą (część I) - Szkoła DevNet
Congrats. I am sitting for mine in a few days time.
Generally with cisco exams you can’t revisit a question once you’ve moved on from it, but since this is a MCQ format exam, do you know if you can tag and revisit previous questions?
You can’t go back as far as I know.
Hi Daniel,
I was looking at your posts on Python classes from Kirk Byers.
May I know what made you stop progressing on the course or blogging about your tasks.
Thanks,
Vignesh S
Lack of time, really. It’s a great course, though!