Mozem povedat, ze ked niekto vynika v matematike/fyzike na základnej a strednej skole je automaticke, ze rozmyslat vie a programovat sa nauci?
Z mojí zkušenosti ne, alespoň co se týče matematiky. Informatika/programování může být o aplikaci matematiky, ale řeší se tam (často) i přízemní věci, např. že máme konečný výpočetní výkon, paměť prostor na disku atd. Ale myslím si, že tam jistá korelace bude (dobrý vztah k matematice/fyzice => větší pravděpodobnost, že programování půjde také).
Za mě je spíš lepší vymyslet si aplikaci/projekt, kterou by syn chtěl naprogramovat, naučit se syntax rozumně vhodného programovacího jazyka (klidně z knížky, tam budou i základy algoritmizace) a zkusit programovat. Klidně za cenu toho, že výsledek bude neefektivní/ošklivý. Tím zjistíte, zda-li má to správné analytické myšlení (tzn. dokáže s prostředky, které mu dává daný jazyk poskládat výsledek).
Znát různé algoritmy se vyplatí podle mě až trochu později, protože zajišťují efektivnější/lepší výsledek a není třeba nad vším tolik přemýšlet a znovuvynalézat to, co již existuje.
Ale samotná znalost algoritmů nestačí, je třeba mít schopnost je i upravit/poskládat na míru konkrétnímu zadání, což se podle mě nedá úplně naučit, jen do jisté míry (ale i ta může být dostatečná, není nutné programovat jaderný reaktor).