Есть такое мнение, что практическое применение какого-либо яп в конечном итоге влияет на мышление человека...
Для начинающих лучшим решением пожалуй будет освоить первым - функциональный яп.
Почему функциональный ? Потому что функциональный яп не содержит "ничего лишнего" и тем самым поможет освоить суть алгоритмов и выработать соответствующее мышление, т.е. научит мыслить Логически.
Подводя итог вышесказанному начинающим программистам лучше начать с изучения одного из функциональных яп - Haskell или Scala, Lisp...
А уже после можно переходить на яп
С (Си), который поможет понять многие другие очень важные детали...
И уже освоив на достаточном уровне яп
С можно переходить на другие яп (С++, Java, С#...)
Да, и ещё желательно (обязательно) освоить англ.яз и параллельно осваивать - Дискретную математику.
Но учитывая возраст вашего ребёнка (7 лет) можете купить данную книгу:
www.ozon.ru/context/detail/id/32092949
А если интересует геймдев (разработка игр), то посмотрите тут:
https://thequestion.ru/questions/205745/chto-uchit...
https://habrahabr.ru/company/miip/blog/313326/
https://habrahabr.ru/post/319582/
https://dou.ua/lenta/articles/gamedev-for-programm...
Ну и видео:
https://www.youtube.com/playlist?list=PLR4wcBxrUGP...