One of the most common questions I get from students is: “What’s the best way to retain what I’m learning?”
@guilh I started treehouse and have been going through various HTML & CSS tracks but struggle putting it into practice? Any advice?
— Richard Fogg (@richardpfogg) March 5, 2014
Students may think they understand the lessons and concepts being taught, but later struggle putting it all into practice. Writing good code takes a lot of time and effort, so the best way to retain the information is through practice and repetition –– easier said than done, right?
Let’s go over some helpful tools and methods you can use to better retain what you’re learning.
It’s Easy to Forget What You Don’t Understand
That’s because your interpretation of what’s being taught varies –– you can’t just take the lesson at face value. You need to make sure that your interpretation is right by implementing what you learned.
Don’t Just Watch or Read
Be an active learner, not a passive learner. It’s difficult to retain information through passive learning. You may think that watching a video or reading a tutorial over and over again is enough to lodge the information in your head forever. While some of it will eventually stick, it’s not the most effective way to learn.
Even though you’re focused on what’s being taught in the lesson, you’re just seeing or reading abstract concepts. To really get it, you need to run into difficulty, make mistakes, then identify and correct them. So converting that knowledge from abstract to practical is important because it’s no longer something someone else has told you.
Start building something right away: A single-page website, a small website component, get involved in a project –– anything. It doesn’t matter what it looks like or how it works as long as you keep doing it while raising the bar, you’ll gradually get better. I promise!
Online Coding Tools
These days, online code editors like CodePen, JSFiddle, or Treehouse’s Workspaces provide designers and developers a quick way to communally experiment with code. This is a helpful way of implementing a concept you just learned. To ensure you’re getting it into your long-term memory, try coding at different times during the day, without looking anything up beforehand.
When visiting websites I like, I always use Chrome DevTools (or Mozilla’s Firebug) to inspect the code and see how certain parts of it were built. I’ve learned some neat things doing that. Also, viewing –– or “borrowing” –– another website’s HTML and CSS, then changing it around to build something different can really help when learning to code.
Share Your Knowledge
“But I’m not an expert!”
It doesn’t matter. You will always know something that someone else doesn’t know. Plus, you’ll retain more when you synthesize then teach the information and, down the road, it might even establish you as the “expert” in a given topic.
I’m always impressed by those students who have blogs where they write about what they’re learning. It’s no coincidence they are the ones who find successful work in the industry.
Be Patient, Confident and Don’t Worry About Memorizing
It’s important to be patient because it takes a while to wrap your head around code, but the more you do it, the more it starts clicking.
Don’t worry about memorizing every tag, selector, property or value available. A solid understanding of the concepts –– and a reliable reference –– is more important. I probably don’t know every CSS selector off the top of my head, but I sure know how they work and where to reference them.
For example, If you asked me to code a five-color-stop radial gradient using the old and new syntax, I’d probably go straight to MDN or use ColorZilla’s Gradient Generator. By knowing exactly how gradients work, the types of syntax and browser support, I’m able to move through the process much faster.
Finally, to retain new concepts, you need to be confident and refrain from being pessimistic when you struggle. Pessimism leads to giving up.