Отвечая на этот вопрос, уточню, про обучение какому программированию я веду речь, так как оно бывает разное.
Под «обучением программированию» я имею ввиду изучение таких языков как Python, JavaScript, Java, С++, С#, Pascal и т.д. Код программ набирается вручную, а не составляется из готовых блоков. Зачастую программы выполняются в консольном окне или в окне браузера. Осваиваются такие понятия программирования как: переменные, условия, циклы, массивы и т.д., а также изучаются базовые алгоритмы.
Я рекомендую начать обучение, именно такому программированию, с 13 лет. С чем это связанно.
Во-первых, для комфортного обучения желательно иметь знания по математике уровня не ниже 6 класса обычной средней школы. Кроме знаний базовой арифметики, в процессе обучения могут пригодиться такие понятия как:
деление с остатком (по модулю);
абсолютное значение числа;
возведение в квадрат, в куб, в степень;
извлечение квадратного корня;
числовая прямая, координатная плоскость.
Зачастую большинство обучающих программ по программированию составлены из предположения, что Ученик этим уровнем математики уже владеет.
Такое программирование достаточно тесно связано с определенной силой логического и абстрактного мышления, которое примерно к этому возрасту достигает нужного уровня. В более младшем возрасте, зачастую, Ученикам сложно мыслить абстрактно. Они больше мыслят тем, что можно потрогать и пощупать. Мыслить тем, чего как бы нет, не всем удаётся. Также им сложно сформировать и удержать в голове всю конструкцию алгоритма. Они её видят частично, и им трудно собрать эти частички в единое целое.
Программирование - это так же про особое мыслительное напряжение. Думаю, Вы слышали выражение «мозг кипит». На занятиях по программированию это случается довольно часто. Важно, чтобы Ученик был готов к такого рода интеллектуальным нагрузкам, чтобы они были для него посильными. В случае же его неготовности, может падать как эффективность занятий, так и интерес к изучению предмета.
Зачастую, на таком обучении Ученики будут иметь дело со «скучными» для более раннего возраста числами и текстом на экране. И по началу, числа и текст не будут бегать, прыгать, стрелять, взрываться. Основная задача будет состоять в том, чтобы вышли нужные данные, в нужной последовательности, в нужном месте и т.д. В младшем возрасте далеко не всем это может быть интересно и увлекательно.
При всём при этом не означает, что не существует исключений. Всё же я веду речь о усредненном возрасте. Я встречал ребят, которые и в 11 лет довольно легко и быстро всё усваивали, и им было по-настоящему интересно такое обучение.
Поэтому можно аккуратно пробовать начинать обучение и в более раннем возрасте, чем 13 лет. Есть вероятность, что оно будет проходить успешно. Но если не пошло, можно спокойно подождать годик другой.