Maintenant, j’y vais à la brutal:
je dev un soft direct
Tu te donnes pour objectif un vrai soft à faire, par exemple j’me fait un soft en Ruby pour gérer AWS S3 (ihm avec Qt).
Je ne connais ni Ruby, ni Qt, ni AWS
ça pique, mais j’apprend vite.
En développant un vrai soft, tu rencontres de vrai problèmes qui t’obligent à comprendre tout le concept et tu mémorises beaucoup mieux.
Par exemple, dans mon code j’ai fait:
file = Qt::File.new 'interface.ui'
Message d’erreur, Qt inconnu, je cherche dans Google, je dois “charger” Qt, j’ajoute:
require 'Qt4'
Nouveau message d’erreur, ya pas de Qt4, Google me répond: installes la gem Qt. Je lui demande c’est quoi une gem ? Il me donne l’explication et les commandes qui vont bien.
Après quelques heures de code, j’avais déjà vu les gem.
Maintenant, je veux lister les buckets de AWS S3 et les afficher dans une fenêtre Qt. Je vais apprendre à:
-
me connecter au compte AWS S3
-
lister les buckets
-
mettre le retour du listing dans une array
-
lire une array
-
faire une interface Qt en ruby
-
manipuler un objet Qt (une QtListView) avec ruby
-
copier une array dans une QtListView
-
appeler une fonction ruby lors d’un clic sur un bouton Qt
Et j’aurais vu ça en quelques heures.
Franchement, j’ai testé toutes les méthodes pour apprendre: les livres, les tutos, les vidéos, les sites d’exo, etc etc …
Tu n’avances pas car la difficulté n’y est pas.
Ces méthodes vivent sur le mythe de “progresser sans souffrir”.
C’est comme faire du sport avec sport elec, ça marche pas, faut transpirer pour progresser.
Ps: ya plus de 10ans, j’ai dû faire un soft qui utilisait SNMP, je ne connaissais absolument rien de SNMP. Aujourd’hui, je me souviens toujours parfaitement du fonctionnement de SNMP. Idem pour les listener de Java, j’en ai codé un en Java pour comprendre, c’était en 2004 et je peux coder un listener dans n’importe quel langage.