I too get bored when I practice just for the sake of practice. When I have something that needs to be done and programming is part of the solution, then I usually don't find it boring. Some of the easiest study I have done is helping others. I often learned more trying to understand them, what they wanted and needed, and how to help them (best I could) than if I had just worked on my own.
Maybe it is a good time for you to step back and look at the big picture - your interests and aptitudes, what you want to be doing for the next few years and what that requires. Also to try to understand why you become bored or distracted. What makes those unprofitable things so appealing?