Всё сказанное ниже является личным мнением. Все глаголы в повелительном наклонении ("дайте, объясните") предлагаю считать сослагательным наклонением ("возможно, было бы правильным дать, объяснить").
Они к вам приходят именно для того чтобы узнать и попробовать. Дайте им возможность поработать с реальными задачами, объясните каждому его проблему на его конкретном примере. Не прикрывайтесь курсами, книгами и статьями - работайте с сырым материалом, как гончар с глиной.
Критериями для приёмки на стажировку должны быть знание синтаксиса и семантики языка, стыка технологий (PHP + JS например), эрудиция, способность понять задание, обосновать решение, сформулировать какую-то личную неразрешимую проблему для поиска помощи, попытаться самостоятельно найти, понять и применить чужое решение. Ещё один фактор для оценки - знания в предметной области, то есть в той области деятельности человека, которая, в контексте информационных технологий, подлежит автоматизации. Бывает человек лучше "въезжает" в предметную область, чем в язык. Что тоже неплохо.
Если у кандидатов значительный пробел в знаниях - откажите в стажировке с указанием причины. Может быть, он подучит и придёт ещё раз. Если пробелы незначительные - зафиксируйте их.
Через некоторое время зафиксируйте динамику - насколько хорошо каждый из них закрыл свои пробелы в знаниях, чему научился. Если динамика недостаточная - примите решение о прекращении стажировки или работы.
Отсеивайте тех, кто не хочет знать, а не тех, кто не смог. Те, кто хотят - узнают не завтра, так через неделю.