Vecita dilema kako poceti uciti programiranje

Da li od dna (prvo teorija, matematika itd.) ili sa vrha tj. napisati neki jednostavan programcic pa analizirati.
Prva varijanta je spora i mnogima dosadna pa dok dodjes do ozbiljnijeg programiranja mozda i odustanes, ali ako prodjes sve to, znas u "sitna crevca". Druga varijanta je brža tj. ucis ono sto ti treba a ako zatreba kopas dublje tematiku da bi resio neki problem. Tu je "minus" sto mozda neces znati menadzment sa memorijom i slicne stvari, bar dok ti ne zatreba.
Koji pristup izabrati, zavisi od kolicine vremena, zivaca, volje...