Изначально, учить нужно не языкам и технологиям, а базовым принципам устройства этого мира, пониманию логики и принятия решений, умению находить новые решения простых задач с максимально возможным результатом.
Всё это должно быть в игровой форме и максимально быть интересным и простым для понимания.
Например, на прогулке можно спросить:
Как отмерить ровно 2м веревки, если есть длинная верёвка неизвестной длины и рядом столб, диаметром 50 см?
И подобные.
Как только он научится правильно принимать простые логические решения, он - уже программист!
Останется ему (уже без Вашей помощи!) выучить любой язык, чтобы стать кодером и воплотить логику своих мыслей в алгоритм в виде кода.
А 3D, C, OSI или еще что - это уже вопрос десятый...