Где курсы есть, не подскажу. Но мой муж, например, работает программистом, учил все сам (но он технарь, знаком был с азами, да и не дурак, че скрывать))). В сети море информации, книг, статей, уроков. Выучить все нереально, можно, столкнувшись с определенной задачей, искать пути решения. Даже очень опытные программеры не могут знать все, они, так же как и новички, если не знают, гуглят, читают. Правда, очень помогает, если есть кому подсказать в тупиковой ситуации на первых парах. Но опять же есть форумы, сообщесства, где могут подсказать. Мой Вам совет, если сын действительно хочет учится, пусть берет реальные задачи и пробует делать, разбирается. Если есть база и желание, то все у него получится, удачи!