If it typically takes you hours to "get inside" some code, that code is way too complicated.
Just like your can solve simple problems with spaghetti code.
Of course, writing simple, will factored code is often hard!