I've struggled with figuring out how to learn programming, so I asked a friend for guidance and worked through introductory resources on the fundamentals, including books on C, operating systems, and computer systems. I've started writing notes and learning logs for books like K&R and CS:APP, and I'm wondering whether documenting the process this early is useful or if I should change my approach.
I'd especially appreciate advice on making my notes more helpful, debugging effectively, and improving my general problem-solving process. I'm also curious about terminal programming: is using raw mode a common approach when you need precise control over input and output, or is there a library that's generally better suited for that?
3 Answers
Documenting your progress can help you notice patterns in the problems you keep running into. Just keep the process lightweight—don’t spend so much time writing about programming that you have less time to practice it. Short, honest project notes are usually more useful than trying to create a perfect record of everything.
Keeping a learning log is genuinely useful, especially for your future self. Don’t only record the final solution—write down what confused you, what you initially believed, and how you figured out what was actually happening. Notes like “I thought X, but it works like Y because Z” are often more valuable than polished summaries.
For debugging, start by reading the entire error message carefully, inspect the line it points to, and print or inspect intermediate values instead of guessing. If you’re stuck, explain the code line by line out loud as though you’re teaching someone else. It feels a little silly, but it often exposes the mistake quickly.
That makes sense. I’ll try to leave more room in my notes for the things that confused me and how I worked through them.
Writing about what you’re learning early on is worthwhile even if the notes are rough. You’ll be able to see how your understanding changes over time, and explaining concepts can reveal gaps in your knowledge. Focus on being clear and accurate rather than trying to make every entry comprehensive.

Good point. I want the notes to help me and possibly other learners, but I’ll make sure they don’t replace actual coding.