avec un compilo :/ on a beau lire, le mot clef reste la pratique.
moi je dirai : d´abord un bouquin de première approche, un condensé, qui présente les instructions, les structures de controle, les grands principes du langage. Essayer de le lire, meme si on ne comprend pas tout : faut avoir un bon aperçu de ce que tu vas manipuler. Faut pas chercher à coder durant cette étape.
Ensuite, qq bons tutos sur le net, on commence par du hello world, des jeux de +/- comme dit plus haut, etc.
Là, y´aura une GROSSE part d´investigations personnelles selon ce que tu veux apprendre : tu jongleras entre des tutos, la doc du compilo, les forums de progs, etc.
Ensuite seulement, des bouquins tres pointus pour quand tu commenceras à bien connaitre la base.
Entre temps, tu utiliseras des libs ou des SDKs pour ne pas reprogrammer des trucs qu´on retrouve tout le temps : vu que c´est fourni avec une doc et des exemples en général, ça ne sera pas un trop gros soucis.
Parallèlement à la connaissance du langage, tu pourras t´interesser à apprendre comment marche ton compilo : qu´est-ce qu´il génère en sortie, pourquoi, comment, etc. Là je rejoins kUfa, des notions d´ASM sont bien pratiques pour comprendre ce qui passe derrière, meme si on s´en sert presque jamais en pratique.
Enfin, pour le coté rigueur on s´interessera aux standards : standard du langage ( et ce que son compilo respecte ! ), standard de programmation ( convention de nommage, etc.), et autres.
Voilà, avec beaucoup de perspicacité, dans qq années tu te débrouilleras bien, et quand tu raisonnera comme ton compilo et que tu intuiteras tous les mécanismes, tu pourras dire que tu maitrises le langage.
Bon courage 