On Learning: Flash Card Review

This part covers what I have learned about reviewing the flash cards.

Flash Card Review:

The premise of Anki (and related types of software) is spaced repetitions. To get the most out of the software, you need to make yourself get in the habit of reviewing your cards every single day. When you stop reviewing, you very quickly start to lose retention. However, by maintaining the habit of reviewing cards every day, you will spend less time each day reviewing because the retained cards will be spaced further apart.

When you’re very deep into studying a particular topic, you may create a decent amount of cards in a short period of time, especially if the topic is new to you. This will temporarily increase your time spent each day reviewing cards. The default Anki setting is to introduce 20 new cards for review each day, in addition to the cards that were already scheduled to be reviewed on that day. There is a tradeoff to be realized here. If you have a lot of new cards, your daily review times will be increased. If you introduce fewer new cards each day, it will take longer to learn the material. I have tried it both ways, and found the default setting to be just about right. If after your daily review session you feel like you could take in some more cards, you can easily add new cards to the day’s review session. I recommend doing this 10 cards at a time. Just remember that in doing so, you will have more cards to review over the next few days.

When you are creating lots of cards in a short period of time, I highly recommend setting the review order to chronological, instead of random. By changing this setting, new cards are introduced in the order of creation. When you create multiple new cards, chances are very good that the cards will be related to each other in some way. During the initial review of these cards, you are more likely to have better retention by seeing related cards close together. As time passes and the reviews become more randomized, the initial bond of related cards will have a greater impact on retention. After you have added (and reviewed) the bulk of your cards, it may be beneficial to return the setting to random as you add fewer miscellaneous cards over time.

When reviewing your cards, resist the temptation to click the “easy” button, except for perhaps the first viewing of the card, which defaults to showing the card again in four days. I discovered that for a large number of cards, if I had clicked the “easy” button three or four times, by the time card was scheduled to be shown again, the spaced repetition was too great, and I had trouble remembering it. When I stopped doing this, and reverted back to being honest with myself (and clicking “again” when I really couldn’t fully remember the answer to a card), I found my retention to be greater. The default spacing algorithm works very well.

Speaking of honesty, the greatest retention really does come from judging yourself as honestly as possible when reviewing a card. Even if it’s something that you know you used to know inside and out, if you can’t fully (and relatively quickly) answer a card, you should click “again” so that the card is reset and you view it more frequently.

However, if you click “again” on a card eight times, it will be considered a “leech” and it becomes suspended from the deck. This action is the software trying to protect you from wasting your time learning that particular poor card. If any of your cards reach the leech status, you need to re-evaluate it. You most likely need to figure out a way to break it up into smaller pieces of information, or somehow increase your understanding of the topic. The solution may be to create some kind of visualization to represent the topic, as I demonstrated in the previous post.

Somewhat related is the ability to “bury” a card during review. As you create cards, they will naturally have different levels of difficulty. Burying a card during a review session allows you to move on to the next card in the queue. This can be useful if you’d like to get through the perceived easy cards first, and then do the more difficult cards later by unburying them. If you don’t unbury a card, it will be automatically scheduled for review the next day.

This is a snapshot of my review patterns for the past 30 days:

As I write this, I have about 2500 cards in my CCIE R&S deck, and I have reviewed 3624 cards during the past 30 days with an average of 121 reviews per day (which, not shown, takes about 30-45 minutes). The blue indicates brand new cards learned during a particular day. “Young” cards are those which are scheduled to be reviewed within the next 21 days, and “mature” cards are those to be reviewed more than 21 days from now. The color red indicates cards that I had forgotten and clicked the “again” button. I joke that the red indicates my level of self-honesty.

The color yellow in the image deserves special mention. If you’re creating lots of cards in a short period of time, your next-day reviews can be substantial at first. Sometimes it helps to cut down the next-day reviews a bit by studying ahead the previous day. For example, I prefer to study as many cards as possible first thing in the morning, and I usually finish all the reviews in a single session. But if I know I’m going to have a larger than normal amount of cards to review the next day, sometimes I’ll study ahead later in the day.

To do this, click the deck title > custom study > review ahead > 1 days. This creates a custom deck containing the cards that you would normally have reviewed the next day. I like to keep the reviews at about 75 or less per day, but sometimes it gets up to over 100. By doing this, all of tomorrow’s reviews are placed into a temporary custom deck, and I can review however many cards I wish, then delete the custom deck. The reviewed cards are treated as if it was tomorrow, and the remaining cards that were deleted from the custom deck will be scheduled as normal. For example, if you have 100 cards due for review tomorrow, but create the custom deck and review 20 cards, you will only have 80 card due tomorrow.

By reviewing the cards scheduled each day and building up the retention of knowledge, I’ve found that when I move on to another learning source for the same topic, it is easier to pick out the details that I don’t already know and make new cards out of that to add to the deck. This demonstrates knowledge building upon itself. For example, as I mentioned, my CCIE R&S deck contains about 2500 cards as I write this. I created the bulk of these cards by going through the OCG books with a fine-toothed comb. Now that I have moved on to other sources of learning, I am usually aware of when I have already created a card for a particular topic by virtue of having seen it several times already. If there is something that I’ve already created a card for, but don’t remember, chances are that the new card will be somehow phrased differently anyway, and having both cards in the deck will also lead to greater understanding and retention.

This end result of moving between different sources of information and realizing the details of what I have already learned is what has made using Anki so revolutionary for me, and why I felt it was important to devote yet another post to the wonders of spaced repetitions. I remember going through books in the past, and then moving onto other books within the same topic scope and feeling like I was essentially starting all over again. Back then, knowing how much information I needed to retain, it gave me a slight feeling of hopelessness.

Now, being able to demonstrate to myself the progress I am achieving is extremely empowering. I’ve encountered several things in my day job which, previously, I would probably have had a vague understanding of, but now I can immediately recall the acquired knowledge and place it into action. That is a very powerful feeling.

Part One: Creating Meaningful Flash Cards
Part Two: Flash Card Review
Part Three: Knowledge Management

On Learning: Creating Meaningful Flash Cards

This is part one of a three-part series.

I still study for the CCIE R&S. I study for it in some form (and often multiple forms) every single day. My attitude, thought processes, and learning process has changed quite significantly in the last year and a half. My experience is growing, and timelines are starting to become more concrete. I’ve written about this before, but this past year really has been life-changing with regard to my study habits, “learning how to learn”, and discovering what works best for me to take in, manage, and retain information.

Just over a year ago, I wrote about using Anki. This software has been the catalyst for my learning transformation. I wrote a blog entry after having used Anki for only a short period of time. With this three-part series, I am now expanding on my experiences of using Anki since then, as well as knowledge management across different platforms.

Flash Card Creation:

I have learned a lot about the process of creating good, quality cards, as well as consuming them. For so many years, I took direct notes while reading books or watching videos. Despite taking the notes, they made little impact on my studies due to lack of quality in both the notes and the review process. Using Anki has helped me refine both activities, and I now formulate my notes directly as flash cards. I also realized that I am able to absorb information much better in the written form, as opposed to video. Following are some tips that help me to create more effective cards.

When creating flash cards that go beyond simple raw facts, take the time to succinctly explain the concepts and meanings or reasons behind the topic. It has been said that you don’t really understand something complicated until you can explain it in simplified language. If it’s not making sense to you while you’re trying to make the card (such as if you’re tired of studying for the moment), don’t try to create the card until you can fully grasp the concepts, otherwise you’ll just end up creating poor-quality cards. You can’t force meaningful learning, and you must break down what you don’t fully understand.

When creating cards, understand the tradeoffs of shorter versus longer. Shorter cards are easier to remember, but sometimes a card must be longer due to the amount of information to convey. Always try to limit cards to a single fact or idea. If a card must contain multiple pieces of information (for example, if everything goes together and there’s no real logical way of breaking it up) and you’re having trouble remembering everything after several reviews, try to figure out a way to create a visualization.

I kept forgetting the five requirements of using the EIGRP Add-Path feature with DMVPN until I created this visualization:

This image contains the exact same information that was present in my original text-only card, but by adding colors, shapes, and positions, I was able to have a mental visualization of the information to recall.

If you’re taking in something of unknown importance, create the card anyway and then suspend it from review. For example, in studying for a certification, you may or may not need to know all of the fields within a particular protocol header. Something like this can be relatively complicated as well as intensive to try and memorize, and it might be unnecessary. By having the suspended card in your collection, you can easily revisit the information or reinstate the card if you discover it really is necessary.

Mnemonics are also extremely useful. What are the thirteen fields in the IPv4 header? I can tell you that “Very Heavy Dudes Prefer Fat Fried Food To Pretty Healthy Salad Dish Options” is easier to remember than: Version, Header Length, DS Field, Packet Length, Fragment ID, Fragment Flag, Fragment Offset, TTL, Protocol, Header Checksum, Source IP Address, Destination IP Address, and Options. When I created this mnemonic, I purposely tried to come up with something silly so that it would be easier to remember.

After creating several cards (such as for a section or a chapter), go back and break up cards that convey multiple ideas (that can be easily broken up). For example, a card that asks “How and why…” can probably broken up into separate “how” and “why” cards, which will increase your retention. A card-creation habit I had to break myself out of was phrasing a card as “What is X and how do you configure it?”. I discovered better retention by creating separate cards for “What is X?” and “How do you configure X?”.

Likewise, create cards that allow you to learn the same thing in reverse when possible, known as two-way learning. For example, one card could ask “What is the IP Protocol number used by L2TPv3?”, and a second card could ask “What technology uses IP Protocol 115?”

Don’t worry about this too much at first when you’re creating the cards, as it may inhibit the initial creation. However, do take the time to go back and break them up. What I discovered for myself was that when cards contained multiple pieces of information, I would remember one part, but not the other, so the card became less valuable in helping me to retain the information. Two-way learning cards might be a little more difficult to realize, especially when examining many cards at once, and you may bump into diminishing returns if you attempt to create two-way cards for everything. Raw facts make the easiest two-way cards. However, for cards that explain a particular concept, creating a two-way card can demonstrate that you really understand the topic.

Assign tags to create meaningful groups to use later for custom review decks. Try to use somewhat broad categories, and avoid creating lots of super-detailed tags unless they are combined with tags that are more general. For example, use STP as a broad category, with RSTP,  MST, and STP Enhancements as subcategories. Don’t create tags that will represent only a few cards. Use tags that will create meaningful groups to study from, otherwise just use the search function in the browse window.  On a related note, in the card browser search box, you can exclude a term by prefixing it with a dash. For example -EIGRP or -tag:IS-IS excludes cards containing the word “EIGRP” or cards tagged with “IS-IS”.

When creating cards, try to keep in mind that you may be reviewing them again months or even years later. This incentivizes you to create good, quality cards. As mentioned, don’t create cards if you’re not understanding the material at the time. Be honest with yourself, and If you’re just not getting it, take a break and come back to it. For example, I’ve noticed if I’m feeling tired, I have trouble creating good meaningful cards, but if I come back to the same material the next day, it all begins to make sense and I can create better cards as a result.

Remember, you can’t force learning. It has to mean something to you. When attempting to create quality cards, try to be as accurate as possible with your understanding of a topic (aside from raw facts which are either correct or not), but remember you can always edit a card later if your understanding of the particular topic improves. I have found myself more than once reviewing a card created months ago, with an improved understanding that allows me to re-phrase the card to have more meaning or clarity.

Make your cards as useful as possible within the realm of diminishing returns. Don’t worry about making the cards and tags perfect. The goal is to retain the information from the individual cards, not to have them perfectly phrased or organized. If a topic seems too complex to explain simply, look for ways to break it up into smaller pieces. A concept may seem singular at first, but if you can break it down into even smaller components, you will have both better retention and a better understanding of the topic. Reviewing the individual components will make the assembled whole make more sense in your mind.

Part One: Creating Meaningful Flash Cards
Part Two: Flash Card Review
Part Three: Knowledge Management

How to Install Oxidized for Network Configuration Backup

Oxidized is an open-source project started by Saku Ytti and Samer Abdel-Hafez as an alternative to the very popular RANCID software. A little over a year ago, I created a RANCID server to backup the configuration of my network devices. It has been a good, stable piece of software that has been doing the job very well across hundreds of devices.

When I set up the RANCID server, I had heard of Oxidized, but the project wasn’t yet as far along as it is now. A few days ago, I decided to take another look at it. One of the things that made Oxidized more appealing to me right away is its companion web interface. While RANCID can be “web-enabled” with the viewvc interface, it is pretty limited in functionality. I found the Oxidized web interface to be exactly what I was looking for. It also supports a very wide range of network devices and network operating systems.

Compared to using viewvc with RANCID, Oxidized also lets you view current configurations and diffs between versions. However, Oxidized lets you search for terms across all the configurations. If only some of your devices have a very specific configuration or inventory item, you can search and only the devices matching will be displayed. For example, in my environment, I can search for “PVDM” and quickly see which of my Cisco routers contain DSPs.

The web interface is also very fast! I have approximately 500 devices being backed up, and the web interface is always extremely responsive. Another feature of the web interface is the status of the last device configuration poll. You can see how long it takes on average to pull a configuration from the device, the number of times the configuration backup failed, the failure rate, and the time of the last failure. This helped me to identify a broadband link that was consistently slow, because the average run time was much more than the other devices.

As wonderful as Oxidized is, one of its current drawbacks is a lack of good, complete documentation. When I set up an Oxidized server for my environment, I documented all of the steps I took, including caveats I encountered, to have a successful install. The following is a guide to setting up an Oxidized server on CentOS 7 with basic web authentication. Like many Linux-related installation instructions, there are multiple ways to reach the ultimate goal, and what I have done may not be the best, most secure, or optimized way, but I reached the end goal of a working installation.

Continue reading “How to Install Oxidized for Network Configuration Backup”

Today I Passed the CWNA Exam

I have been involved with both wired and wireless networking for many years. My original wireless setups were from the early 2000s, shortly after 802.11b became popular. I remember at one point I had a PCMCIA card with a pigtail and external antenna attached to it.

As my career started taking a focus more toward networking, I became intimately familiar with just about every aspect of wired networking. Having worked with wireless for so long, I knew a decent amount about how the technology works, but not nearly to the level of familiarity I have with Ethernet.

Occasionally, I look at various job listings just to see what employers generally expect within different levels of networking careers. I kept seeing wireless networking as a general skill, and in many listings, I saw the CWNA as either a requirement, or a “nice to have”. I decided it was time to finally bridge the divide in my networking knowledge and learn some wireless topics at a deeper level.

I feel like the CWNA exam is absolutely perfect for this. This exam is not so introductory as to have no value whatsoever, but it is not so deep that you have to devote a significant amount of time toward it to pass. I am not yet looking to devote myself to wireless networking, but the CWNP program does offer more advanced certifications for those that are. If I ever decided to pursue an even deeper level of wireless networking knowledge, I would definitely come back to the CWNP program and work on those additional certifications.

I started studying for this certification, and took and passed the exam on the first attempt, within the course of just a little over a month. I will admit, with me already having CCNP-level knowledge, there were a lot of topics on the CWNA that I was already familiar with (and even a few topics that I disagreed with!). This made studying for the exam go by a little faster.

My process was to first read the Official CWNA Study Guide all the way through. This took a couple of weeks, reading one or two chapters each day. In the past, when studying for a certification, I would have taken tons of notes, which end up being somewhat useless to me. It took me a long time to break this habit. This may work well for some people, but I found out through time that this process doesn’t work for me. I still have all of the notes I’ve ever taken for all of the certifications I’ve studied for, but simply reading my notes doesn’t really do much for me. This time, I took no notes while reading.

For this certification, after reading the entire certification guide, I took all of the chapter questions from the book, and all of the entries in the glossary, and made flash cards out of them in Anki. Using Anki, I was able to very quickly separate what I already knew from what I still needed to retain. After two weeks of spending an hour or so each day reviewing flash cards, I took the first of three online practice tests. I made new flash cards out of the questions that I missed, and continued to study. A week later, I took the second of three practice tests and did much better. Once again, I made cards out of the questions I missed.

Since I did so well on the second practice exam, I decided to schedule the real exam for the following week. I continued to review cards, and a few days before taking the test, I took the third of three practice exams and did very well. I didn’t do as well on the third practice exam as the second, which shook my confidence a little bit, but it was still a passing score, so I proceeded to review the cards and keep the exam as scheduled. In the end, my flash card deck contained about 1100 cards.

The online practice exams are included as part of having access to the textbook. I have a subscription to Safari Books Online (best money I’ve ever spent in my life!), and I was able to register for access to the practice exams on the Sybex website. These official practice tests, along with using Anki, absolutely transformed my method of studying and more importantly, information retention. I actually found the practice tests to be a little more difficult to pass than the actual exam, which was a nice bonus.

There are a lot of little details that you need to memorize to pass the CWNA exam. These are details that will definitely be forgotten after the test is over, unless you keep reviewing the material. But, the CWNA also teaches many different concepts and methodologies that revolve around the world of wireless networking, and this is the most important information that I believe will stick with you if you study for and pass the exam.

For example, if you are setting up a brand new 802.11ac wireless network, when previously there was no wireless network (a Greenfield installation), you might not need to remember what the Modulation and Coding Schemes are that 802.11ac uses, but knowing essentials such as the fact that 802.11ac operates only in the 5 GHz bands, and how the 5 GHz frequency bands operate a little differently than the 2.4 GHz bands, will be excellent knowledge to have when you need to troubleshoot the wireless network post-installation.

The pricing of the CWNA-106 exam isn’t too bad ($175 as I write this), at least not compared to Cisco’s recent price hikes, and the process of studying for and gaining the credentials has been well worth it to me. I will now absolutely be able to more intelligently discuss wireless networking, troubleshoot, and plan and make appropriate proposals when needed.

General Network Challenges, and IP/TCP/UDP Operations

Having fundamental knowledge of what affects TCP, UDP, and IP itself helps you to better troubleshoot the network when things go wrong. I feel like most of the lower-level network-oriented certifications barely touch on these topics, if at all. However, the current Cisco CCNP and CCIE Routing & Switching exams do expect you to know this. This post is geared toward Cisco’s implementation and defaults regarding the various topics. However, whether you are studying for a certification or not, this is all good information to have.

This mega-post covers the following topics:

Continue reading “General Network Challenges, and IP/TCP/UDP Operations”