In the few months that I have been studying computer programming, ‘circular learning’ has become synonymous with ‘deeper understanding’. In order to fully absorb and retain the wealth of information available in just one textbook or Launch School course, I find myself circling back to absorb more detail as the context I have for the subject at hand grows.
Take, for example, the Object-Oriented Programming book provided via Launch School’s Open Bookshelf. Reading this book is one of the first tasks to be completed in the Object-Oriented Programming course. This book is so chock-full of valuable information. If you are someone who likes to jot down key concepts as you read, you will find yourself taking notes on nearly every paragraph in the book.
The first time I read through the OOP book, I had very little context for what I was reading. Instance variables, class methods, modules, and inheritance were all new concepts for me. How much information did I really retain other than that these things existed and would be utilized in OOP? Probably not much. I dutifully took notes and then gave my brain some time to digest what I had read. I imagine my head was still spinning a bit when I went to bed that evening.
Before I dove into the meat of the OOP course material, I gave the OOP textbook one more read. This time I found myself nodding along with what I had already gained a surface-level understanding of, and taking notice of more nuanced concepts that I hadn’t grasped the day before. After liberal use of my highlighter and a slight cramp in my hand, I was ready to tackle course 120!
This week I completed Assessment 149, which includes the OOP course material. While studying for this assessment, I did another deep read of the same OOP book. This time I was intimately familiar with the concepts covered, and had used them in my code. Paired with the course material itself, re-reading this book that covers the basics so clearly really polished my ability to articulate a lot of the “how?” and “why?” questions behind the core of OOP. I could feel my understanding being cemented, and felt confident in my ability to explain these ideas clearly in my own words.
Circular learning is not ‘going backward’. It is choosing to move forward with a deeper understanding. Three isn’t a magic number, of course. Revisit valuable learning materials until you get to a place of clarity. And yet again when you need a refresher.
For me, circular learning is like this:
The first time I expose myself to new learning material, I am threading new laces into the eyelets of my programming ‘shoes’. I won’t get very far this way. Upon second a second visit, I’ve tied my laces up loosely. I can venture out for a walk. After three plus exposures to such material (and a lot of practice), I’ve got my laces knotted tightly and I’m ready to run.