For some context, I run a self-funded consultancy and I have about 5 years of experience in marketing and another 5 years of experience in programming.
Over the years, I'm able to help onboard junior marketers & junior designers to be productive by the 3rd month. Enough that they get fantastic results for our clients and they also get better career opportunities by the 3rd or 4th year (1.5x-2x pay than what I can afford as a self-funded company). While this is somewhat a problem for me, I'm confident with our marketing & design training program.
But for the life of me, I can't figure junior devs. I've been training this one guy for 2 years and still can't keep up. I've also hired another guy and he's a bit better, but he doesn't follow coding standards and still cannot ship good code. For the SaaS that we are building, while I thought that we have a junior-friendly stack, I ended up coding 98% of it. For now, they do some minor & less critical tasks (tasks which should take imo a day to finish -- but they end up finishing it in 7-14 days).
I thought I have good training program (i.e. I have an internal course on ruby & javascript that will need about 2 months to finish), but it seems that there's still something missing here.
While hiring better is an option, as a self-funded company, I don't have the luxury of talent as FAANG. Any advice on how to help & train the average or below average junior developer be decent would be appreciated. I'm quite frustrated but I do genuinely want to help, but I'm tempted to judge that some junior devs are just too talentless and too socially awkward to ever make it. I hope I can be proven wrong.
Stop doing that.
If you are trying to get a new team to take over your part of your coding work, you need to let go. Talk them through how you would do it, let them then give it a try... and then accept how they actually do it (as long as it works). When one person does all the work, it ends up being written in just the way that one person understands it and likes it. Which often leads to a lack of acceptance that different devs will accomplish the same task in different ways, and the original coder falls into this habit of "That isn't how I would have coded it, so it must be wrong."
Maybe I'm getting the wrong impression. Maybe you really are brilliant and 100% correct and you have hired nothing but duds. But... the odds are against that.