Love the resources you've shared in this post!
My coding journey has taught me A LOT about myself and my learning habits as well. I bounced back and forth from taking super detailed notes, to not taking any notes at all. I struggled with figuring out how to retain stuff, but as you mentioned, we are conditioned to pass and not to understand. So trying to recall something I didn't even understand well to begin with was even more challenging.
Now I learn to understand by doing the following:
Note taking using the Feynman technique. (I've tweaked it some for my own preferences and am hoping to write a blog post detailing it soon.) This has been a game changer for me and significantly improved not only my retention, but my understanding of what I am learning.
Purchased a sketchbook! This was a puzzle piece I've been missing. I realized I went back and forth with the traditional note taking because it felt too rigid. I learned that what I needed was to write things out in a way that resonates, and that doesn't have to always be just words. I doodle often and as I go through tutorials and videos, I find myself wishing there was a happy medium: more diagrams! I plan to draw my own little diagrams to help analogies stand out to me and have another mental model for what I am learning.
Talk or teach. This is a part of 1's technique, but teaching something is a great way to understand it. At the beginning of my journey, I volunteered, TA'ed and got to teach and present and that really solidified what I was learning at the time. A technical blog post or article is another good way of teaching. However, being able to teach isn't an opportunity that's always available so I try to talk about what I've just learned with my partner or a coworker to solidify my learning. Bonus points if the thing is also new to them because then you've really got to explain it! Something I haven't yet tried, but plan to is recording myself either walking through a coding example or project. Feels like you're teaching but if no one else but you watches it, that absolutely still counts. Plus added practice in explaining your code which is a crucial skill to build.
Thanks for sharing your thoughts! I recently learned about the Feynman technique so I've been implementing that in my learning as well. I also really love your sketchbook idea, I actually think I should do the same! I've gone from writing notes, to using Notion to type notes, then back to writing out notes, but I feel like I'm also very visual and need more diagrams as well. I don't know why I never considered this before but I guess it's because writing notes seemed to be more typical of studying that I just assumed that should be enough. I'll probably order a sketchbook tonight! I've also heard a lot about teaching as well. I used to try to talk out what I've learned to my partner who isn't technical at all, and when she'd question things it helped me dig deeper into my understanding and break it down even more. So I think I do need to try to include that into the learning process as well. I have been looking into volunteering to teach kids code, but with everything going on right now I'm sure those events will be cancelled/rescheduled. But I will be sure to look into other opportunities to try to mentor and teach what I learn.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.