If you need to take a break because things just aren't working or you're just not understanding it, go back to where you last felt you understood and change one thing at a time until things fall into place.
If you work best with a goal, give yourself a reward goal. Maybe it's not looking at another lesson for three days! But I personally like to know that not only did I finish what I told myself I was gonna do, but I got a bonus at the end as well.
If you ever feel inadequate, just remember that every other programmer is constantly learning new technologies and languages and frameworks and everyone has a weak spot. There's no such thing as an expert programmer that knows it all on a master level. So, Google is your friend, as well as StackOverflow and GitHub. Plus, you will always have the Skillcrush community, too! Aren't we lucky. ;)