Первый подход, как мне кажется, может быть востребован. Он не будет гарантировать человеку трудоустройство, но поможет
1) выбрать проект, выполнение которого даст возможность показать результат работы на собеседовани, а также пройти техническое собеседование за счет полученных знаний.
Бывает, что человек что-то хочет сделать, чтобы показать, но не уверен, что поставил задачу "в духе времени".
2) общаться с себе подобными. Командная работа может и не получиться, — большинство проектов не будут доведены до конца, как мне видится. Но общение и первичные коммуникативные навыки получат(письма без ошибок писать сейчас не все умеют, даже на позициях Senior Developer)
Будь моя воля, то я бы брал толковых людей без опыта программирования. Этому, знаете ли, можно многих научить. А если человек умен, самообучаем, и у него есть желание работать именно в вашей компании, то я бы сделал все условия, чтобы он не ушел после того, как быстро вырастет и получит первый опыт.
Второй подход видится мне малоэффективным. Попытка заместить тренинги. Но оба эти подхода слабо решают поставленную задачу. Куда полезнее прочесть книжку, получить признаваемый сертификат.