As always, opinions in this post are solely those of my own, and not necessarily those of any organization I am currently affiliated with or have been in the past.

First posted 1/7/2021

Recently I put together a presentation for my day job’s awesome STEM Outreach program, and it really got me thinking about what kind of advice I could give a 6th-12th grader interested in a network/systems technology career path. I wanted a slide that had my own personal suggestions, nothing too nerdy, but without short-changing the nerdy kids that might see it either. So I ended up settling with the following:

Upon taking that screenshot of vimtutor in MacOS terminal, I figured it would be hypocritical of me if I didn’t fly through vimtutor once again, double-checking it was appropriate for my 6th-12th grade STEM presentation audience. I completely forgot just how well written vimtutor is, and how great the advice can be for learning new technology, especially a CLI like that of Cisco IOS. Don’t take my word for it though, fire up vimtutor on your Mac, Linux or Windows machine (well, technically on a Windows box it would be Windows Subsystem for Linux), and let’s dive into why I feel advice from vimtutor can be super useful for a CCNA candidate!

Lesson #1: Showing up to the lab is most important, try not to worry about time spent experimenting.

The approximate time required to complete the tutor is 25-30 minutes, depending upon how much time is spent with experimentation.

Vimtutor 1.7 Line 10-11

I forget where I heard this advice first, but someone once told me that if you want to get better about working out consistently, just focus on getting through the gym’s front door. Don’t worry about what you’ll do once you get there, don’t worry about how long you stay, just worry about showing up regularly. In my opinion, this advice applies to learning any CLI, especially for stuff you will use professionally on a daily basis like vim & Cisco IOS. Don’t worry about how long you’re going to spend in Packet Tracer, how hard the exercise might be in vimtutor, or how difficult configuring an ACL in IOS might be: just focus on showing up to your home or school lab. Even though vimtutor says 25-30 minutes, don’t feel discouraged if it takes you a few hours, or if you blow through it so fast you feel like it didn’t stick. Focus on doing it with as much experimentation as you need to learn the skills.

Back in 2018 when I was studying for CCNP ROUTE, some days I’d clean the entire condo or re-organize the kitchen cabinets simply because I’d rather do anything other than endless CCNP ROUTE labs in GNS3. When I finally showed up to my homelab & got the topology going, I’d often go from “productive procrastination” mode to “I can’t stop until I figure out why my routing table isn’t looking how I think it should!” mode rather quickly. It’s super frustrating to spend hours debugging a router config only to find one line of the OSPF configuration was causing all the routing table pain; however it is my opinion that experimentation such as this OSPF example will burn the routing knowledge into your brain far better than flashcards ever will. Learning things the hard way debugging a CCNA lab is frustrating, but it’s a lot cheaper than learning things the hard way on a failed CCNA exam attempt or during a network outage!

Staying self-motivated, especially during some of the drier parts of CCNA like subnetting & intro to dynamic routing theory, is certainly an uphill battle. Fortunately, we can channel the habits of pro athletes like Kobe and MJ to remind ourselves that practice is a big part of mastering any skill, especially with command line things such as vim & Cisco IOS. I’ve heard of similar methodologies like Japanese Kaizen and the many excellent articles over at the #LabEveryday blog too, some of which may work for you, others may not. You might need to try a few different learning styles & spend a lot of time to learn things like VLSM, but as long as you keep showing up to practice, you’ll eventually conquer the 0’s and 1’s. The simple act of taking time out of your day to start vimtutor and better your knowledge through practice is a big deal all in itself, and the more you show up to that home or school lab to practice, the more likely you’ll achieve that CCNA.

Lesson #2: Even if it feels slower at first, try new techniques that enable you to work faster

NOTE: The cursor keys should also work. But using hjkl you will be able to move around much faster, once you get used to it. Really!

Vimtutor 1.7, lines 44-45

I’ll admit that when I was first tried learning vim around 2011, I thought it was stupid and committed myself to using GNU Nano instead. I forget when exactly I warmed up to giving vim a chance or what caused me to change gears. If I had to guess, it probably had something to do with getting an earful from the Linux team at work about using Nano, or because vi was the only text editor available on a production system (this in itself is a good reason to learn vim!) Either way, after a few years I had one of the great vim cheats like the one below printed out at my desk, and became addicted to the shortcuts:

Vim visual cheat sheet for English keyboards

Eventually I was clued into vimtutor, vim adventures, and finally started actually saving more time than I was spending trying to learn what felt like cryptic vim commands. It’s like learning how to bowl with a hook vs. learning how to bowl throwing the ball straight down the middle. You’ll hit the gutter more often with the hook at first, but eventually you’ll get a higher score perfecting the hook throw compared to throwing straight! Learning automation skills or regular expressions in Cisco IOS is often the same way; while you’ll want to pull your hair out at first when things don’t work, eventually you’re going to save yourself a lot of time mastering these skills (trust me, even the most basic regex paired with Cisco IOS show commands can be life-changing).

Lesson #3: Learning by usage is usually better than memorizing for most CLIs

NOTE: As you go through this tutor, do not try to memorize, learn by usage.

Vimtutor 1.7, line 89

This might feel counter-intuitive at first, but when it comes to remembering all the various commands necessary to ace the CCNA exam, simply trying to memorize them is not likely to be the most effective method. There’s nothing wrong with making flashcards or taking really detailed notes about various commands, but using the ? and learning various commands first-hand by usage in the Cisco IOS CLI is going to be more effective in my humble opinion. I’m very glad Cisco is now creating so many hands-on learning options at DevNet as a growing amount of work in the network automation ecosystem can be very difficult to learn solely from reading books or watching YouTube videos. Even though a lot of the DevNet content is above & beyond the scope of what a CCNA candidate needs to know, the “learn by usage” advice is something I wish I learned far earlier in my quest towards automating network tasks. Sooner or later, you’re going to need some python or regex in your life, and handling situations like the one in the meme below will be easier if you embrace the lean by usage mindset, and start with something simple first 🙂

Lesson #4: Actually do the exercises, or at minimum do something similar

After reading the above steps and understanding them: do it.

Vimtutor 1.7, line 160

It’s very tempting to blow off end-of-chapter exercises in CCNA books or when reading about other skills like Python. I’ll admit that when I was going through my favorite book on learning to code, I felt like some of the exercises were too simple, and I had no desire to do them. If you feel this way, you’re not alone, and I’d suggest either powering through the exercise anyway or doing something slightly different that better suits your interest. When I was going through that learning to code book, I thought the chapter on EasyGUI was too easy, and didn’t really follow along with the exercises. Instead, I played around with the EasyGUI module by making a silly program for my wife to try, resulting in both of us having a little more fun than usual with Python:

While it may not always feel like the best use of your time, I highly recommend going through all the various CCNA labs in the book on Packet Tracer, GNS3, eve-ng, Cisco VIRL, or even on real gear. As much as we all want to take shortcuts towards passing a certification, fight the urge and do those exercises. We’ll end this section with Ronnie Coleman explaining the meaning behind my favorite quote of his. While you don’t need to sacrifice as much as a bodybuilder does to reach the top, I think parts of this are very applicable to the IT on-call and/or certification prep lifestyle:

Lesson #5: There’s always going to be a newer or larger manual out there, and that’s ok: learning never ends in the IT field

This concludes the Vim Tutor. It was intended to give a brief overview of the Vim editor, just enough to allow you to use the editor fairly easily. It is far from complete as Vim has many many more commands.

Vimtutor 1.7, lines 946-948

Some of you may be thinking “well these vim analogies are cute and all, but using emacs or a full-GUI based text editor with autocompletion is where it’s at”. And I don’t disagree with that at all! There is always going to be a new tool, new way to automate, new manual, etc. that will help you be more productive. It will get overwhelming keeping up with new material at times, but to be a successful network engineer, you’ll need to be doing a LOT of reading/listening/learning to stay relevant. While vimtutor will get you enough knowledge to be a standard vim user, you’ll need to do a lot more reading to become a vim power user. This is true for many things in the computer networking world, the CCNA books are only scratching the surface of knowledge to be learned. Sadly having to read new things about network technologies is not going to stop after getting that CCNA, if anything getting your CCNA is just the starting point of becoming a Cisco Press customer. A few weeks ago, this monster Cisco ISE book arrived in the mail, it’s so large I had to include a beer can for scale:

There’s a phrase in IT commonly cited saying “the day you stop learning is the day your career is over”. While that might sound harsh, technology does move very fast, and if I decided to stop learning certification stuff after I got my CompTIA A+ in 2006, I most certainly would not be working in the networking field today. The above CCNP Security Identity Management book is for Cisco ISE, a newer product that didn’t even exist when I first got my CCNA! While many people get overwhelmed by ISE and have some very unkind things to say about it, I’ve personally found ISE enjoyable. Funny thing is a lot of people find Python & Ansible enjoyable, whereas I find it overwhelming at times! The takeaway here is there’s always going to be something new you might not understand or enjoy falling into your lap in IT. Nobody is perfect, you might learn some technologies naturally, others will be an uphill battle, it’s just part of the job. If you do get overwhelmed, try giving yourself a little brain break, and remember it’s not possible to know everything. Focus on that CCNA for now, you can worry about what comes after the CCNA once you get there. Study hard and #labeveryday until then!


You’ve reached the end of the post! Click here to go back to the list of all CCNA candidate toolbox posts.

You should also know I may earn commissions on qualifying Amazon purchases made via kd9cpb.com links to defray the cost of otherwise ad-free web hosting.

Advice for learning Cisco IOS, courtesy of Vimtutor

Post navigation


One thought on “Advice for learning Cisco IOS, courtesy of Vimtutor

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.