I have struggled... learning to program. I have quit more than 10 times in 20 years.
Over the past few days, I realized that I have not spent the time to figure out... WHY is that?
After deep introspection, I realized there are 2 key issues. I would like to discuss 1 of the 2 here, and the 2nd one in another post as it’s more personal.
Reason 1: My inability to retain information
— I don’t spend enough time understanding the concepts
— I do not have an effective way of storing & retrieving the information.
And... I recognized I had a learning problem over 10 years ago. I had just forgotten. This is what I wrote in December 3, 2007 when I was in college.
I realized a major flaw in the way I learn. I need to focus more on understanding concepts and theories instead of only memorizing and knowing how to do things or answer test questions. I realized that I become extremely frustrated when I don't get something and just try to find the quick answer. Gotta be patient, research, think, and understand.
I am like a bulldozer. I gather up an enormous amount of resources, and with momentous effort I have been able to achieve goals. However, I need to begin taking a step back and absorb the information and really understand the concepts, reasons, theories, and methods and let it all sink in.
For one reason or not, whatever I read, and I did read a lot, I just couldn't retain it. And this was regardless of topics: languages, book content, article content... it's almost as if it didn't make intuitive sense, the memory just disappeared.
And of course... in programming, this was the worst.
I think the issue is that for a long time, I'm talking maybe 25 out of 34 years of my life, I have only been focused on results. Not necessarily instant gratification... but I wanted results... fast.
It’s funny as I have always said to myself, "Man, I do so much with so little." While I always thought that was flattery to myself, the reality was that I still did a lot... with ONLY LITTLE. I want to stop doing a LOT... with LITTLE. I want to do a LOT... with LOT.
In 2008, I read a book 'My Life as a Quant' by Emanuel Derman. There's a quote where he says: "What I had learned I had learned well." It wasn't even part of the main book — it was a footnote. But I highlighted it, as the quote hit me hard. I knew I wasn't 'learning well'. But then... I moved on, and forgot about the book, and moved on with life.
Anyways, that’s the long background and context. So this is what I’m going to do about it.
After some research, I realize that the inability to retain information — retaining memory — is a concern that many others share across many disciplines. I came across a simple, yet seemingly very effective strategy called ‘spaced repetition’. I’m going to simplify it but it basically means writing flash cards (with a question and answer that I write), and over a periodic basis, systematically review it over various time intervals (based on how well you retained the info).
I recognized two immediate benefits for me in practicing spaced repetition.
1) The practice of making flash cards — in itself — will help me with my learning. It will slow down my urge to just make progress. It will get me to pause and ask questions like ‘Why do you want to retain this?’ ‘What am I learning here?’ ‘Why is this important to my learning?’ which will assist my understanding of the concepts. And the practice of formulating the best questions in the flash cards in both simplicity and style. Remember, I am the one who has to set up this flash card quiz for my future self.
2) This is the more obvious part. There are software available (i.e. Anki, which is the one I’m using) where it makes it easy to generate these flash cards, categorize them, tag them, have templates all set — and an algorithm that makes you review the questions at various time intervals depending on how well you retained them.
I spent a few hours reading up on this, and I recognized how well it helped other programmers across various experiences. I was excited!
So I downloaded Anki a few days ago, and so far so good.
I have also downloaded the Codecademy Go App (available through a Codecademy Pro subscription) which is good review for the courses available on the site. The app and Anki have synergy as well, as I started to make flash cards based off of the content on the Go App as well.
I will keep you posted...!