Get a job at a small-to-medium sized startup. You will learn whatever technology you use ridiculously well, by necessity, because you're responsible for shipping the feature; and you will be forced to finish the hell out of whatever you're working on at that moment, by necessity, because it's a _small_ business; and you will need to understand the underlying code all the way through to the fancy polish and fixing of niggling minor bugs that QA finds, by necessity, because you're making a product. These things are all necessary because this is your job; that's your motivation to finish.
If you're stuck tinkering it might be best to get a real job for a year or two so you can learn to finish. Then when you start a startup you won't have to learn that particular lesson the hard way.
[Edit: reduce ambiguity]