There are, of course, more comprehensive boot camps, such as, well, Dev Bootcamp, in which a select group of students get an intensive immersion in a full range of development topics over a nine-week period. But the length of the programs, the limited number of available slots, and $12,000+ price tags make them impractical for the small-business DIYer.
It's a good idea to allow at least a month or so of pure training time before expecting any productivity out of your budding programmer. At this point, you still won't have a "real" developer on your hands. Instead, you'll have a somewhat overwhelmed person with some basic programming skills and a rough idea of how an app comes together.
Plan your app
After you've got several weeks of training under your belt, you should have enough working knowledge of a language and framework to begin planning your app. Based on what you've learned in your classes, books, and practice tutorials, you can start to map out the features you need, the underlying data structure, and the interface design.
Development methodology is a whole subject unto itself, and many professional developers are fanatical about it. (Ask PCWorld's CTO about Agile, for instance, and be prepared for an earful.) And not for no reason, either: Bad development practices can ruin a product. The process laid out in this article is largely influenced by the Agile Manifesto, which focused on producing working software quickly, while allowing opportunity for improvement and alteration through ongoing iteration. But as you start out on your path of DIY programming, don't obsess about methodology too much. Just focus on building a useful app that meets your own needs.
Planning your app should be a simple process, and need not get in the way of actually creating something. At the outset, define clearly what it is you want your app to do. Keep it concise and functional. Think "Customers will be able to schedule service appointments from their phone" over "Streamline customer interactions through self-service features." The first example describes an action that you can create in your code. The second describes an abstract concept that offers no clear direction.
You may, of course, want your app to do more than one thing. So capture all of the things you want it to do, from a specific user's perspective, in a single list. Be sure to focus on the actual result of the action, and don't get bogged down in interface considerations at this point. Don't get into details like tapping or clicking buttons, boxes, or forms. The phrase "tap a button to schedule an appointment" is needlessly restrictive, and closes your mind to opportunities. It doesn't belong on this list.
Sign up for CIO Asia eNewsletters.