Comment Keep a log (Score 1) 383
One of the things I've picked up in the past year or so is that I keep a real, tangible, dead-tree notebook with me when I code. It's been a huge help while learning new codebases, picking up a language, or whatever. For me, the simple act of writing things down has helped hugely with understanding. This, of course, goes along with other techniques mentioned in earlier replies: use debuggers, doxygen/pydoc/etc, and so forth to help with your understanding. Then, once you get it, write out a brief document explaining what you've learned so other people don't duplicate your work.