DEV Community

Discussion on: How do you gain a deep understanding of your code?

Collapse
 
mlapierre profile image
Mark Lapierre

If you want to know more about how to learn effectively, check out The Learning Scientists podcast. They discuss learning techniques and the science that informs and supports them. I started to apply some of those techniques while I was in uni and they made a huge difference. As an example, I used to dread exams that required short-essay answers. I just couldn't recall enough detail about topics to write something coherent under exam conditions. But after practicing a few learning techniques it became so much easier (specifically retrieval practice, elaboration, and dual coding, but see that last link for articles about 3 more techniques that are also important)

So my process involves finding the highest quality material I can (code, docs, web articles, books, research papers, whatever), and repeatedly studying it, noting questions whenever something doesn't quite make sense and trying to answer them when I've finished reading the article/doc/book/code/etc. Sometimes answering a question will involve more reading, but sometimes it will involve doing an experiment (e.g., writing some code and then changing it so see what happens, i.e., trial and error).

As I find answers to my questions I again read the material that prompted the question to see if my new understanding provides more insight into anything I might have misunderstood before.

I also takes notes as I go (in markdown), building up an outline of the topic and filling in specific details. I'll use those details to create flash cards (using Anki) that I use for retrieval practice.

This might seem like overkill if you just want to learn how to use a new framework, but I do it for anything complex that I really want to understand well. It's how I learn about large software projects that I work on and it's allowed me to quickly learn as much as some people who've been working on it for years.

Collapse
 
lynnewritescode profile image
Lynne Finnigan

Thank you so much for this! I will check out the podcast/techniques you mentioned, sounds interesting :)