I was recently promoted to a developer role after having been in a technician role for a few years. In the past year before my promotion, I managed several Access databases that I'm passing responsibility for to another coworker of mine, who is currently a technician, as I'll be focused on other projects. I'll call him John. Our pool of internal candidates who volunteered for this additional responsibility wasn't ideal (none have done any kind of programming since their first half of college, if at all, so John was picked mostly for having the most perceived enthusiasm). I did want to implement one or two "FizzBuzz" styled questions but was told not to by the managers who handled the interviews, as they felt we'd be scaring people off and wanted to come out of the interviews with someone I'd definitely train up and mentor.
It's been about a month since, and I'm having doubts about John's ability to work independently. We did a two week training period that was largely conceptual with some hands-on work thrown in. I've also had him shadow me when I get clarification on requests. I've recently started having him tackle requests and problems on his own. Generally, this ends up in him spending an hour working on his own, having nothing written or worked on, him approaching me for help, then me setting up a meeting with him, unsuccessfully try to egg him into logical thinking of which I end up doing 95% of, problem gets solved, and I'm on my way.
Asking for simple things like "declare a string variable and give it the value from the textbox we created" or "write out an if-else structure that checks whether field x is some value. I'm not looking for logic inside the if-else statement right now, just the if-else block so we can see what steps we should take if field x is not a value we want." generally results in me having to type these out for him, even though we've gone over these multiple times. The few times he's pushed changes through without checking with me (which he's not supposed to do) have resulted in bugs that did affect output in a significant manner and required me making time to correct these.
At this point, we're more or less stuck on grooming him up for this role and I can't really backtrack on his manager's decision. Is there anything I can do in changing my approach to training him in a more effective manner? I'm thinking something related to how he approaches me for help (eg. have some code written first so I can review and offer advice to improve that) would be the best way to go about this, but I'm a bit pressured by his manager to hold his hand for him, so he's not 'wasting' 3 hours not making progress, as he still has technician duties to do. Part of me also says that there's only so much I can do to teach what I consider good programming habits, and at some point, I need to let him sink or swim and not worry about it so I can focus on my primary projects.