I used to feel the same way you did until one I came across a quote:
"The only thing standing between you and your goal is the bull$#@% story you keep telling yourself as to why you can't achieve it" -Jordan Belfort
I'm not saying the author of the quote should be your role model or anything but for some reason that really struck a chord with me so I printed it out and taped it below my monitor. Every time I feel a little unmotivated my eyes drift automatically (now) to that quote and I quickly realign myself to task.
So not to put it rudely but I see a bull$#@% story you seem to be telling yourself and it looks like you are trying to tell us, maybe even trying convince us, to tell you, you don't have time, you should quit, or this might not be for you. But I read your story, and see one not so different from mine, and I say what's really standing in your way?
Yeah I know to use descriptive variable names I just didn't think I was going to be showing this to anyone, I will change.
I would still use descriptive names and make it a habit. In 2-3 years when you revisit this code, (even if you think you never will, trust me you will) you will be able to quickly figure out what you were doing because you won't have to guess what variable names were supposed to represent.
I think this is a common problem and the best thing to do is slow down. I know probably not what you wanted to hear.
I'm not familiar with that book but I'm sure it's probably like most other language books. So what I'd recommend is as each new topic is introduced work through the sample code and problems no matter how trivial they seem. The primary reason being that you may be assuming that topic is easier than it is and when you start working with the code you quickly discover that there is a piece, maybe only one line that doesn't work like you thought. Through these trials and tribulations of working through the code your brain absorbs the information better allowing you to apply/recall it more easily.