One of the big detractors that made programming very difficult for me was the fact that I couldn't find any practical application to what I was learning. As a result I felt unmotivated and dragged my feet for a very long time. Double clicking on Eclipse and following book instructions on how to make an array in Java for a class wasn't particularly interesting or fun to me. I always chucked it up as not bothering because I wasn't a 'math person', and this was probably something that only people who liked math would do. (I know I know)
It was only years later after I began delving into Linux and found a need to make something a bit more powerful than a bash script that I began developing an interest in programming again.
I'm sure there are many other capable and willing folks out there right now who feel the same way that I did. They want to learn but they don't see the point of it. Most courses at least don't really teach any real world applicability to what is being studied.