To that last point, I believe both of us could benefit from the "GTD" (David Allen) approach. In particular, utilize the "Clarify" step to write out 1-3 small things you want to do each day. Instead of setting yourself up to "build a small thing" or "learn a subject," split the day's tasks into easy stuff like "init git repo" or "read first chapter of intro to Go."
But, if your week burns you out (my main motivation for a lack of will on the weekends) you may be better off resting. Schedule your downtime in addition to your learning/project time. Give yourself time before and after your project to zone out and click links aimlessly. And, if it suits you, get a buddy to be accountable with. Someone who's going to ask you on Sunday evening if you've taken at least one step toward your goal. Hope this comment helps.