Allora, ognuno ti dice una cosa diversa alla fine quindi ti dico semplicemente da dove partire e perchè.
Premetto che di GameHack non ne so niente, ma proprio niente.
Dovendo imparare le basi della programmazione io ti consiglio linguaggi come Pascal e C. Sono entrambi validissimi linguaggi didattici ( e non solo ) che a mio avviso ti danno una base forte per gli esperimenti futuri. Mischiare concetti e codice non serve niente, quindi avere buone basi secondo me è una gran cosa.
Per esperienza personale mi son pentito di non aver preso seriamente questo concetto.
Dunque, mi butto sul dirti C, al cento per cento. Sia perché didatticamente è ottimo sia perché è più usato/sparlato del pascal. Insomma, ci fai di tutto, e parti da zero.
Come testo, cartaceo, ti consiglio "Programmazione in C" di Kim N. King, della Apogeo. Ti confesso che non ho letto altri libri quindi possibilissimo ce ne siano di migliori, però questo è quello che ha accompagnato me e l'ha fatto egregiamente. Inoltre è un testo usato a livello universitario, immagino quindi non sia valido solo per me.