After developing small-scale web applications for about 5 years in the late 90s and early 2000s, I decided to take a new career path. However, I've got the programming "bug" again and for the last couple of months have been aggressively refreshing on old, once-familiar technologies and learning new-to-me ones like Python/Django and jQuery. And after getting back into it, I forgot how much I missed it and now want to seriously consider pursuing development again as a career.
The first task I set for myself (after my "phase zero" programming re-education) was coming up with realistic and useful projects I could work towards completing to build a portfolio. I've drawn up diagrams for the high-level frameworks and workflows for a handful of such projects, and in my mind I can see them clearly -- objectives, design, interfaces, data models, all the conceptual things that define a project and make the actual coding easier. So I have goals to work towards and motivation to complete them.
It's the next step that I'm having trouble with. I know how I want my apps to look and work, and I know what tools I need to learn to make them happen. My problem is that I'm torn between "I want to learn how to do X and Y things in A and B languages" and "I need to focus on mastering A and then B so I can properly do X and Y" -- impatience vs. diligence.
How do you combat the impatience of wanting to see your finished work and balance it with the diligence of properly learning the tools and methodologies (like testing) you know you need to see the projects through to completion?