Qualcosa che Joel Spolsky ha scritto nel passato quando sul suo blog (non riesco a trovare l'articolo adesso) mi ha davvero impressionato riguardo a questo:
Ha detto che il codice non è un linguaggio umano naturale, ma come programmatori, siamo facilmente cullati nel pensare che lo sia, e che dovremmo essere in grado di leggerlo come tale. Di conseguenza, molti di noi guardano al nuovo codice e si aspettano di essere in grado di "leggerlo" e comprenderlo immediatamente, come se fosse un blocco di testo in inglese.
Quindi penso che la chiave sia fondamentalmente solo essere lenti, metodici e scientifici. E come altri hanno già detto - commentalo (e anche il refactoring) mentre vai. Non cadere nella mentalità di "dovrei solo guardarlo e capire immediatamente".
Oh, e sì, a volte mi caccio ancora in questa trappola. "Fai come dico, non come faccio io", e tutto il resto. :)