
To most of us, learning something "the hard way" implies wasted time and effort. Good teaching, we believe, should be creatively tailored to the different learning styles of students and should use strategies that make learning easier. Make It Stick turns fashionable ideas like these on their head. Drawing on recent discoveries in cognitive psychology and other disciplines, the authors offer concrete techniques for becoming more productive learners. Memory plays a central role in our ability to carry out complex cognitive tasks, such as applying knowledge to problems never before encountered and drawing inferences from facts already known. New insights into how memory is encoded, consolidated, and later retrieved have led to a better understanding of how we learn. Grappling with the impediments that make learning challenging leads both to more complex mastery and better retention of what was learned. Many common study habits and practice routines turn out to be counterproductive. Underlining and highlighting, rereading, cramming, and single-minded repetition of new skills create the illusion of mastery, but gains fade quickly. More complex and durable learning come from self-testing, introducing certain difficulties in practice, waiting to re-study new material until a little forgetting has set in, and interleaving the practice of one skill or topic with another.
- Engage with what you're reading. Ask yourself what the key ideas are, which ideas are new to you, how you would define them, and how they relate to other ideas you already understand.
- Test yourself. Do the excercises at the end of a textbook chapter. Create your own questions and answer them. Quiz yourself at least once a week (on both new and old material). Check your answers and correct yourself (if you were wrong, how, and why?). Use flashcards with a spaced repetition regime (like Anki)
- Focus on your retrieval. Avoid looking things up unless you really have to. Each time you recall something you've learned, you reinforce it.
- Your first encounter with new information may need a small interval of just a few minutes or hours, but you should gradually increase the interval periods between quizzes/flashcards on something. The longer you go between recalling something the more it gets reinforced because you have to work harder for it. Build up gradually.
- Use what you got wrong in quizzes or flashcards to identify what needs work.
- Focus on the material you get wrong, but don't totally neglect things you feel comfortable with.
- Basically, use Anki/spaced repetition.
- Take some time between study sessions and quizzing. (I think of studying like kneading dough, you need to let your brain relax some before you work it some more).
- When studying a subject, interleave different but related topics.
- Topics should be complementary and reinforce one another so that insights from one lead to insights in the other. Examples: calculus and rocketry. Spherical trig and astronomy or celestial navigation. German idealism and eastern philosophy. Etc.
- Once you have a rudimentary grasp of a new type of problem, move onto something new, but make sure to return to this type of problem periodically. (Basically, add this type of problem to your flashcard deck). Don't worry about mastering one type of problem so you can do it your sleep before moving to the next thing.
Some other key things:
- Elaboration: Relate material to what you already know. Explain it in your own words. Visualize it. Imagine it in different contexts (if you're learning calculus, imagine your speed and acceleration while biking in hilly terrain in terms of derivatives, etc).
- Generation: Attempt to answer a problem before you know the solution. This excercises your creativity and gets you looking for similarities to other types of problems you already understand. Before reading new material, make a quick summary of what you expect to learn and how it will relate to your prior knowledge.
- Reflection: take a few minutes to reflect on what you've learned that day. What went well? What could have gone better? What other knowledge or experience does this remind you of? What do you need to work on? Etc.
- Calibration: you need an objective measure of what you do and do not understand. Humans are pretty bad at gauging this for themselves without some sort of external measure. This gets back to flashcards.
- Consider using some mnemonic devices. They can be very effective.
- When reading a textbook, don't bother with crazy highlighter schemes. Research shows it doesn't really help. Neither does reading textbook material more than maybe twice unless you have a particular point you're confused about. What does help is spaced repetition and summarizing the material in your own words.
This all sounds like a lot of effort, but one of the key things to remember is that learning is effort. Struggle is basically necessary for your brain to optimize and form new connections, or even to reinforce old ones, and if you aren't struggling you're probably just doing what your brain is already optimized for, which means you probably aren't learning much.
- lots of low-stakes quizzing and practice
- spaced repetition
- reflect on what you've learned and what you could do better next time, and apply these lessons in different contexts
- interleave practice of different but related topics
- try to solve a problem before being taught the solution
- distill the underlying principles to different problems
- remember that if learning is easy, you probably aren't engaging you brain very much
This will help streamline the process, but obviously there's just a limit to what you can take in.
Start with Make It Stick (Brown et al.). Apply what this book teaches you to every one afterwards.
Next, read and work through Exercises for Programmers (Hogan) and A Common Sense Guide to Data Structures and Algorithms (Wengrow).
After you finish those two, read The Missing README (Riccomini et al.) and Extreme Programming Explained (Beck et al.). These two books provide very different viewpoints into the stuff that isn’t coding in a programming job.
Assuming you’re using an OO language, follow that up with Object-Oriented Analysis and Design with Applications (Booch et al.) and Object Thinking. They contrast each other quite a bit; having both perspectives is handy.
Once you’re through all those, I recommend Tidy First (Beck), Implementation Patterns (Beck), and Test-Driven Development By Example (Beck). These three books of his provide an incredibly accessible view into better ways to code.
If you’re anything like me you get bored reading one book for too long. I’ve found that having a second book going that I can switch to is great for that. A parallel track with The Pattern On the Stone (Hillis), The Pragmatic Programmer (Thomas & Hunt), The Mythical Man-Month (Brooks), and How Computers Really Work (Justice) provides a reprieve and some technical and cultural context.
https://onlineteaching.umich.edu/articles/the-myth-of-learni...
There's a good back about how to learn effectively written by cognitive scientists:
Make It Stick: The Science of Successful Learning by Henry L. Roediger III, Mark A. McDaniel, and Peter C. Brown
Definitely worth a read, even reading a summary on the book would be beneficial if you want to become a better learning. The techniques in the book work IME.
