It's easier for you to read what you wrote than it is for you to read what
someone else wrote, therefore the problem is with the other person?
Reading code is always harder than writing code. When you write code, by
definition you have a working model of the code in your head and
understand all the concepts involved (or it won't work). When you read
someone else's code, even well commented source code, you're trying to
reverse engineer their thought process based on a machine they built which
was primarily designed to function, not to teach.
Beyond that, working code is often complicated because it has to deal with
the real world rather than a theoretical model.
Go read this:
http://www.joelonsoftware.com/articles/fog0000000069.html