fai conto che parecchia gente qui ha fatto corsi di laurea incentrati sulla programmazione, concentrare tutto in un punto sarebbe riduttivo.
Intanto inizierei a capire bene come è organizzato un computer (prime 3 lezioni del corso di fondamenti di informatica), poi la codifica che usa (altre 3 lezioni di fondamenti) perché queste cose servono per capire come sono rappresentati i dati (che vuole dire in pratica unsigned int ecc).
Poi mi andrei a scegliere un linguaggio (io partirei dal C e dalla logica procedurale, più semplice da digerire rispetto alla logica ad oggetti) e mi procurerei dei bei manuali (leggasi libri come ANSI C) che spiegano lo standard e diano anche qualche info sugli algoritmi.

poi passerei alla pratica: fare piccoli programmi autogenerati (nel senso che decido io cosa fare) a difficoltà crescente.

Il resto comunque google, wikipedia danno numerose info.

ps in genere non è che si debba essere geni del computer, ma almeno usare la command line e saper configurare la macchina è il minimo richiesto.