Chapter 5. Effective Study Practices for Developers
Let's imagine that you're back in school and midterm exams are coming up. How would you study? Some common approaches might be:
- Re-read the study materials or lecture notes
- Highlight and memorize the key terms
- Go over your notes constantly until test day comes
Those all sound like effective study practices. However, cognitive research has shown that many of the traditional study patterns that students have followed for decades simply do not work.
I didn't make up that list of study patterns. That's exactly what I used to do in preparing for exams. However, I discovered (after failing a number of tests) that these strategies failed miserably when it came to helping me to truly learn new concepts.
Why traditional study habits don't work
This type of approach to studying doesn't work because our minds don't function like computers. A computer can take in information and then spit it back out. However, our minds are more relational in nature.
By relational in nature, I mean that our brain functions like a graph-based network. If new information attempts to enter the brain without being connected to any of our previous knowledge, it will simply be rejected.
For example, let's imagine that you are new to learning programming. If you simply run through a list of programming terms and syntax rules, you might memorize them in the short run.
However, because your brain hasn't been properly introduced to the concepts, it will eventually eject the information, viewing it as useless since it's not related to the rest of your view of the world.
However, imagine that you take a different approach. In this new, more enlightened approach, you work with your brain and allow it to connect each of the new programming concepts that you're learning to knowledge and experiences that you already have.
An effective study practices case study
Whenever I'm teaching a new programming concept to students, I try to draw a fitting analogy to a real-world concept. This process is called reification and I view it as one of my most important tasks as a teacher.
Let's imagine that you are learning about the MVC (Model, View, Controller) design pattern in software development. You could take the approach of trying to memorize each of the roles of the Model, View, and Controller. However, that strategy wouldn't help you answer questions related to how each of the components work together. And if you memorize quiz questions and answers, you probably will have issues answering anything that you haven't memorized.
The reification example
What if instead of trying to memorize key terms about the MVC pattern you focused on drawing a real-world analogy to the process? My favorite way to understand this type of architecture is comparing it to a restaurant:
- Model: The model is the chef in the kitchen. In the same way that a chef prepares the meal for customers, the model works directly with the data for the application.
- Controller: The controller works like a restaurant waiter. In an application, the controller's role is based on taking requests and managing communication between the model and the view. This is much like a waiter who takes customer orders, communicates with the chef, and eventually brings the food out to the table.
- View: The view is like the table that a customer is sitting at. It doesn't do much besides provide a platform for placing the food on. This is exactly like how the view should operate in an application. If built properly, a view should simply be a place where data is shown to users.
Do you see what we just did? We learned about the MVC design pattern in a way that our minds can actually comprehend. I could fall out of bed and recite back the role of each component of the MVC architecture, not because I spent countless hours trying to memorize them, but because I connected the concept to my real-world experiences.
The reification example
What if instead of trying to memorize key terms about the MVC pattern you focused on drawing a real-world analogy to the process? My favorite way to understand this type of architecture is comparing it to a restaurant:
- Model: The model is the chef in the kitchen. In the same way that a chef prepares the meal for customers, the model works directly with the data for the application.
- Controller: The controller works like a restaurant waiter. In an application, the controller's role is based on taking requests and managing communication between the model and the view. This is much like a waiter who takes customer orders, communicates with the chef, and eventually brings the food out to the table.
- View: The view is like the table that a customer is sitting at. It doesn't do much besides provide a platform for placing the food on. This is exactly like how the view should operate in an application. If built properly, a view should simply be a place where data is shown to users.
Do you see what we just did? We learned about the MVC design pattern in a way that our minds can actually comprehend. I could fall out of bed and recite back the role of each component of the MVC architecture, not because I spent countless hours trying to memorize them, but because I connected the concept to my real-world experiences.
The hard way
Over the years I've concluded that if studying is easy…I'm doing it wrong. I used to follow study pattern of:
- Read
- Memorize
- Repeat
This was partly because it was easy. It wasn't mentally taxing to sit down and read through a textbook or my notes. However, research is proving that this type of study habit is not only ineffective, it is also damaging.
Additional negative effects
How is it damaging? If you have followed this type of study system you know one thing: it takes time. This time spent reading and memorizing could have been used in countless other ways that would have proven more effective in the long run. And when it comes to studying, time is one of the most valuable assets that you have, so wasting it is akin to an educational felony.
Additional negative effects
How is it damaging? If you have followed this type of study system you know one thing: it takes time. This time spent reading and memorizing could have been used in countless other ways that would have proven more effective in the long run. And when it comes to studying, time is one of the most valuable assets that you have, so wasting it is akin to an educational felony.
The comprehensive study system
In addition to the process of reification, there are a number of other study strategies that research is showing to be more effective than traditional study practices. In their book Make It Stick, cognitive psychologists Brown, Roediger, and McDaniel give the following recommendations for studying:
- When learning from a textbook, use the key terms from the back of each chapter to test yourself.
- List out key terms and use each one in a paragraph; this will test to see if you understand a concept outside of the realm of how the textbook or instructor supplied it.
- While reading new material, convert the main concepts into a series of questions and then go back and answer the questions when you're done reading the chapter.
- Rephrase the main ideas in your own words as you go through the material.
- Relate the main concepts to your own experiences, much like the reification process we've already discussed.
- Look for examples of key concepts outside of the text. When I'm learning a new programming language I never rely on a single source. If I come across a concept that doesn't make sense I'll usually review 2- 3 other sources that provide alternative explanations to what I'm attempting to learn.
Summary
In summary, when it comes to effective study practices, make sure that you're making the most of your time. Remember that the most important goal with studying is retaining knowledge so that you can use it in real-world scenarios. And the best way to accomplish this goal is by following strategies that work with your mind's learning patterns.