Comment s'améliorer en programmation ?

Bonjour.
J’ai crée ce message afin de demander vos conseilles. Je ne suis pas très amateur en programmation. j’ai des connaissances sur la programmation procédurale et orienté-objets. J’ai déjà utilisé le C , java et javascript. je connais un peu le python, ruby, perl (la syntaxe). je connais même quelque styles architecturaux MVC…
Le problème c’est que je n’utilise ces langages que pour faire les TP de l’école … ce sont en générale des petits programmes …
Pour m’améliorer j’ai décidé de participer aux projets de développement exposés sur github. Au début j’ai essayé avec des petits projets mais je les ai trouvé fastidieux, je n’était pas motivé … donc j’ai décidé d’attaquer des projets plus grands … mon choix est tombé sur metasploit. le problème avec ce projet c’est qu’il un peu trop trop grand. j’ai vu sa documentation elle donne une vue global sur l’architecture. mais le code je crois qu’il est un peu compliqué, ils utilisent des techniques un peu avancé en ruby…
je tenté avec sqlmap. c’est vrai qu’ils utilisent plusieurs fichiers. mais je pense que c’est moins difficile.

le premières questions que je veux poser: pensez-vous que la lecture du code est la meilleur méthode d’apprendre à programmer. les livres seront consultés seulement pour comprendre la syntaxe ?
est-ce que sqlmap n’est pas le bon choix pour commencer ? j’aurai du choisir un projet plus petit.
Combien du temps ça prend en général pour analyser et comprendre un projet pareil (sqlmap) ?
Comment lire le code, est-qu’il y a des méthodologies. ou bien il suffit de commencer à partir de fichier à partir duquel le programme se lance, et suivre les appels ?

merci d’avance

Non je pense que tu as la bonne démarche.
Je te conseillerais la lecture de “coder proprement”, qui en plus de dispenser les bonnes pratiques, propose des exercices plutôt intéressants.

Il est aussi utile d’assister aux conférences qui peuvent être donner autour de chez toi (JUG / PUG / RUG / …)

En général plus le projet est gros, plus l’implication demandé est important si tu veux “connaitre” tout le code. Mais il est rare que sur des gros projet de connaitre l’intégralité du code pour être actif et reconnu. te spécialisé dans une partie précise du code est parfois plus utile.

Mais le plus pratique/rapide pour se plonger dans u projet est d’en trouver un avec des contributeur près de chez toi, dans un fabLab/Hackerspace tu devrais trouver ton bonheur.