Где можно почитать теорию по cерверной разработке для «чайников»?
Всё сказанное ниже является личным мнением. Все глаголы в повелительном наклонении ("дайте, объясните") предлагаю считать сослагательным наклонением ("возможно, было бы правильным дать, объяснить").
Они к вам приходят именно для того чтобы узнать и попробовать. Дайте им возможность поработать с реальными задачами, объясните каждому его проблему на его конкретном примере. Не прикрывайтесь курсами, книгами и статьями - работайте с сырым материалом, как гончар с глиной.
Критериями для приёмки на стажировку должны быть знание синтаксиса и семантики языка, стыка технологий (PHP + JS например), эрудиция, способность понять задание, обосновать решение, сформулировать какую-то личную неразрешимую проблему для поиска помощи, попытаться самостоятельно найти, понять и применить чужое решение. Ещё один фактор для оценки - знания в предметной области, то есть в той области деятельности человека, которая, в контексте информационных технологий, подлежит автоматизации. Бывает человек лучше "въезжает" в предметную область, чем в язык. Что тоже неплохо.
Если у кандидатов значительный пробел в знаниях - откажите в стажировке с указанием причины. Может быть, он подучит и придёт ещё раз. Если пробелы незначительные - зафиксируйте их.
Через некоторое время зафиксируйте динамику - насколько хорошо каждый из них закрыл свои пробелы в знаниях, чему научился. Если динамика недостаточная - примите решение о прекращении стажировки или  работы.
Отсеивайте тех, кто не хочет знать, а не тех, кто не смог. Те, кто хотят - узнают не завтра, так через неделю.
Наверняка соискатели еще и не знают английского, не так ли?
Общее линуксовое - больше бекендерам
https://academy.yandex.ru/events/kit
Интерфейсы - больше верстальщикам
https://academy.yandex.ru/events/shri