Three Tangents on Self-Learning

Vamp
6 min readMar 15, 2018

--

I am working on a different article (that will likely end up in the pit of drafts I never publish) and ended up going off on a few of my usual tangents. They are both about my learning approach and got long enough to warrant their own mini article. Oh and there’s memes…

Summary

  • Learn only what is necessary to accomplish your immediate goals.
  • Place no limit on the pursuit and dissection of any topics that stimulate and excite you.
  • Ignore things that confuse or bore you — place them in the backlog.
  • Revisit and explore topics that were skipped when their usage has relevance as a necessity to accomplishing your immediate goals.
  • Don’t get overwhelmed or bother memorizing features and implementation details.
  • Focus on the basic understanding of how something works then grow from that foundation.
  • Recognize the high-level patterns that connect almost everything we know.
  • Create simple (but calculated) analogies between what you know and what you are trying to learn.
  • Teach others including yourself — it’s okay to talk out loud when you’re alone.
  • Explain things in simple terms. If you can’t then research piece-wise to fill in the gaps until you can.
  • Learn by the Corrective Intuition Approach (I made this up and don’t know how to shorten it any more than the 4 paragraphs at the end).

Tangent Zero — Learn In Context

I just threw this in now because proofreading these tangents sent me down another one. And we’re all programmers here. This tangent is applicable only to those who are self learning and aren’t confined by stupid exams that test your ability to regurgitate shit you will forget in a week.

This is a quick one. Learn by chasing what you enjoy and ignoring what you are confused by. Find the concepts that stimulate your mind and run with them. Learn them in and out. Break them apart. Combine them into small projects or samples.

The goal is to build a passion for a subject by ignoring the parts that bore or confuse you. I know this sounds counter-intuitive but it really works. Often those more complex or confusing subjects were just missing a context that made them accessible to your brain.

Revisit topics that were skipped when a project you are passionate about completing requires that missing knowledge. I have found that every one of those confusing topics made more sense and was more easily learned when they had a context I was interested in or needed to understand.

Only learn what you need to learn to accomplish your immediate goals.

But don’t limit yourself. As long as you are always pushing to expand your knowledge base and dipping into unfamiliar territory this approach will work for you. If you are someone who stagnates easily do not use this approach.

By taking this approach you are always learning in a passionate and motivated state of mind. You are focusing your efforts on learning and applying new knowledge to an immediate goal that can be realized. Over time you will become a master of rapid information consumption and application.

Tangent One — Lessons Learned on Learning

One thing I have learned about learning over the years is to take my time exploring a subject from the most basic perspective. My memory is as bad my ability to read and internalize anything beyond high school level English. Because of this I learned early on to educate myself through rigorous application, corrective intuition (more on that below), and forming practical analogies.

I always start from the roots and ignore the complexities early on. Big words and new terminology confuse my eyes and derail my efforts. I’ll somehow end up wasting 6 hours on Wikipedia and have absolutely nothing to show for it.

I believe this is one of the reasons I have been commended by my students for my teaching ability. I can bring a subject down to a layman (my own) level in plain terms and tie it to an analogy that anyone can internalize.

I don’t focus on using technical jargon to self-aggrandize. Specific terminology is only important when it is relevant to distinguish a point that would otherwise be confusing in context.

Look at new information from a primitive angle and you will notice the patterns that connect seemingly disparate topics. If you can draw an analogy to something you are familiar with you will gain a deeper understanding without having to memorize.

Strong analogies are the rulers of understanding. Being able to apply knowledge directly and through analogy has always been my salvation against rote memorization.

If you can’t explain it simply, you don’t know it well enough.

I have carried this quote with me for a long time. It has been the guiding rule I use for teaching anything to someone else. And, ironically, I have found that teaching is the best way to learn. It forces you to assess what you know and research enough to fill in the gaps in your knowledge in order to simplify it for the learner.

Talk out loud to yourself. Pretend you are teaching someone else how something works. Except that someone else is you. Describe every step in simple terms without thinking about the code. Never forget that the computer is the most uneducated potential filled object known to man.

Memorizing syntax is for coding fast.

Fundamental understanding is for learning anything fast.

This is a mantra I have told (in a lot less flowery language) to my students since unit 1; from teaching the fundamentals of programming to full stack web development using Python and C#.

It was a big leap for them going from Python to C# but the ones who listened weren’t affected. They just kept up the same consistent pace and applied their abstracted knowledge to researching their way through all of the new syntax.

Syntax can be Googled —but only if you have the abstract understanding of a subject to know what questions to ask.

Sure it’s a slower road initially. But building up your foundation pays off tremendously in the long term. Take the time to learn the subject from first principles so you can reach the fun part of fluid and creative building.

Tangent Two — The Corrective Intuition Approach

Another trick I taught myself over the years of being a useless book learner is what I call (as of writing this section) corrective intuition. This plays into feeding my curiosity about how things work. It’s also perfect for coding where all you need is time, patient debugging, and some methodical detective work.

First you follow your base intuition on how something works. Try it (prove it). If it works as you expected (correct intuition) you can stop here and move on. Why? Because next time all you need to do is follow your intuition. No other thinking is necessary.

If it doesn’t work then you begin correcting that intuition. Using the scientific method we all learned in elementary school. Form a hypothesis about why it didn’t work. Then come up with a way to objectively prove or disprove the hypothesis.

And by this I mean litter your code with print statements in a heretic affront to the debugger that’s been collecting dust in your editor! Use clues from the debugging to hone your intuition as you work through the clues.

Experiment. Evaluate. Correct. Repeat.

What this does is train you to engage in the act of understanding something from the ground up until it is natural to you. If your intuition is wrong you will learn and internalize why. You will correct your intuition so that it becomes second nature to you. The next time you will either have the corrected intuition. Or at the very least you will recall that your intuition was incorrect and remember to dig through your notes.

I’m a guy who has had an incredibly hard time with traditional learning throughout my life. These approaches have worked for me hopefully they will do the same for you.

— Vamp

--

--

Vamp

Full Stack Developer. Chemical Engineer. I try to sleep but all I want to do is learn.