С чего начать обучение ребенка 10 лет спортивному программированию?
=====================================================================

 Посоветуйте пожалуйста, с чего начать обучение сына программированию вообще и с прицелом на спортивное программирование (задачки с leetcode, codeforces, ...) в частности?   

  

Хочу начинать с C/C++, как наиболее низкоуровневый (с ассемблера, боюсь, сразу заскучает).  

Идею начинать с простого (Logo, Basic, Python) считаю не подходящей (если не вредной). Да и я уже попробовал год назад начать ему объяснять питон, но быстро понял, что это не просто (как объяснить сходу `range(10)` ребенку?), с низкоуровневым Си тут должно быть проще.  

  

Minecraft education edition и задачки к нему пробовали, затруднений не вызвало, но и восторга тоже.   

"Программируем в Майнкрафт" (который через плагин RaspberryJuice) вообще не заинтересовало, хотя возможно я не смог показать в нужном свете.  

Мобильная игрушка Lego Mindstorms Fix the factory - аналогично.  

Codecombat - дошел до 7 уровня и заскучал.  

  

Тут еще такой момент: нужно что-то красивое для начала. Ведь "нарисуй елочку из снежинок `*` в черном окне терминала" было бы скучно даже мне. В моей юности был graphics.h и `getImage`/`putImage` для отрисовки графичаских спрайтов, из которых мы делали 2d игрушки и очень радовались тому. Что сейчас на этом месте? OpenGL? Unreal engine как-то приспособить?  

  

Поделитесь пожалуйста, есть ли какие наработки? 

 оставь ребенка в покое, нефиг собственные комплексы реализовывать. 

 1. Пожалуйста, не надо ЗАСТАВЛЯТЬ ребёнка программировать. Он должен сам этого хотеть, равно как и заниматься боксом или игрой на скрипке.  

2. "спортивное программирование" и олимпиады ничего не дадут ему в плане опыта реального программирования. Ему будет крайне сложно работать в комманде над реальными программами, потому что олимпиадники думают не тем местом и не о том, о чём нужно и их код могут понять только такие же олимпиадники, либо вообще никто не может ег понять...  

Третье. Если ребёнок считает, что ему интересно программирование, есть игровые языки программирования. игровые в том смысле, что всё программирование происходитв виде игры. Модули накидываются мышкой, как паззл и кое-что кодируется на языке типа бейсика. И результат трудов будет виден буквально за часы, т.е. он быстро сможет заставить двигаться вадратик по экрану, а не будет пол года сидеть в слезах, пытаясь понять, почему его алгоритм бинарной сорировки в некоторы хслучаях сбоит, а в других работает правильно...  

  

А уже потом он сам попросит вас оплатить курсы по настоящим языкам программирования. Или курсы по рисованию. Или ещё какие-т окурсы или кружки, которые ему будут интересны. Не лишайте ребёнка детства! Лучше сами снежинку нарисуйте в терминале :) 

 Я знаю что сейчас здесь куча народу напишет что ребенку это не интересно, и я с этим согласен. Но все же я упомяну что программирование - такой-же базовый навык как и математика. 

 Вместо 2д игрушек, сейчас можно делать простые браузерные игры, типа бойцовский клуб, или стратегии типа Black Nova Trader.  

  

Сразу и результат есть и написать такое можно на чем угодно (php, python, nodejs), немного html подучить.  

Пусть освоит базовые понятия циклов и условий, а если ему будет интересно, то можно будет уже и взять что-то посложнее. Тот же юнити и C# 

 Необходимо 2 вещи: время и терпение. А задачник можно брать любой.