I used to be in charge of training up new engineers at a previous company. It was a 2 week session of drinking from a firehose. Basic introduction to the company, basic building terms like rakes and eaves, introduction to design programs, basic introduction to the codes, basic introduction to internal engineering design manual. I'd tell them that there is no way I could teach them everything and even if I could, they'd never remember it. It was a good introduction but they really learn by getting in the schedule and starting to design things.
At that company, every project is checked by a senior engineer. Even if it was designed by a senior engineer, another senior checks their work as a courtesy. For new people, the process can be difficult at first. They might turn in their design but make a bad assumption at the beginning that invalidates the entire design. The checking engineer would make them do it all over. Then with a design not based on bad assumptions, they'd tear the design apart again. Not in a mean spirited way. Just because new people don't know anything. Long hours at first but in a few months, the new people get the system.
One of the tenets of that system was telling new people that it's their job to ask questions and it's everyone else's job to answer questions. I see a lot of posts on here about the experienced engineers feeling too busy to help much but it wasn't that way at my old company.
At my new company, I'm too busy to mentor brand new people so I've completely gone away from hiring new grads. Only experienced pros are allowed. I realize that strategy may not hold up but it's what I'm doing now.