I spent around two hours today learning and practicing.

I went over HTML basics just for a review, and I began learning CSS. Now, I have used HTML and CSS a bunch so while I am still learning new stuff, a lot of it is coming naturally. I am currently using The Odin Project (which I went through ~2 years ago) to go through basics and pick up any advanced material along the way.

My learning workflow looks like reading material, feeding it into Gemini for it to ask me questions about the material as review (I find teaching out loud is extremely effective, and Gemini is great for this), then once I feel I have understood a concept (or some together), I will ask Gemini for practice problems to practice with the material I just learned. I make sure the problems increasingly become harder (and other properties) as to ensure I am engaging in deliberate practice. If I need help in solving a practice problem, I will ask the LLM for a small hint, but nothing more. Along the way, I am making flashcards to make sure I remember what I need to remember. Justin Skycak talks about a similar process here that I am using a model of.

I find this process quite effective, and I have begun to engage with all my learning this way (including casual reading + podcasts). If I don’t, the information will pass straight through me, and the reading I did was a waste of time. This process ensures I can pull the info from long term memory into working memory and engage in problems that allow me to work with my current knowledge and find my weaknesses. The system is not perfect for multiple reasons such as: When do I know I have had enough practice? How do I know I can move on from a current concept? How do I measure my progress independent of bias? And more…

Tomorrow I plan to start hammering down flexbox and practicing with it to ensure I truly understand the concept.