Is there any way you could give yourself a precommitment? You said you want to pass the Chinese proficiency exam by 2017; can you take the time/money to register for it now, ahead of time? If you know that you are already on the hook to take the test "January 16th at 3pm" you would be motivated to not waste that investment.
I have been using Duolingo to learn Spanish. However, I also struggled with practicing as much/as frequently as I wanted. I started minding it using Beeminder's data integration, which has so far kept me consistent.
I think what is benefiting me is the positive reinforcement of Duolingo's "earning points and leveling up, yay!" plus the threat of losing money if I don't meet my targets in Beeminder (even though I do not yet have money pledged to the goal, I know that I would commit to do so after my first derailment).
I've been wanting to learn Mandarin Chinese for years now and just recently I wrote a small website to help me practise.1 All of the exercises are gap sentences that require you to type the correct answer before you can move on. I chose this kind of exercise because of the convincing evidence for the spacing effect and the testing effect.
Knocking through a bunch of exercises every day feels efficient but it's not exactly fun and I put in less time than I should. I've found two things that help with this: setting small and achievable goals, and reading short stories once I'm proficient with the vocabulary. And if there are two ways to make practicing more fun, there gotta be a lot more that I haven't thought about. So, how do I make myself work harder? Are there are any of the so called Dark Arts that are more than hearsay and could work in my favor? How do you people out there learn foreign languages and how do you keep yourself from giving up or slowing down? Do you use the pomodoro technique?
Cheers, David.
[1]: https://talentsrs.com
Edit: more on -> move on.