Comment apprendre à programmer ? Avant de se poser cette question, on peut se demander pourquoi apprendre à programmer. Le propre de l’informatique est qu’une fois écrit un programme est utilisable n’importe où, n’importe quand. Lorsque vous avez l’idée d’une nouveau service, il est possible qu’un service équivalent existe et réponde déjà à votre besoin. Alors pourquoi recréer ce qui existe déjà ?
Il existe différents axes de motivation pour refaire ce que d’autres ont déjà fait :
- Malgré vos recherches vous n’avez pas trouvé ce service.
- Le service ne répond pas exactement à votre besoin.
- Le coût d’accès (monétaire, temporel, support) au service est trop important.
- Vous voulez gagner de l’argent en proposant un meilleur service.
- Vous aimez comprendre les outils que vous utilisez.
Le dernier axe est le plus intéressant. C’est la meilleure motivation pour apprendre. Mais cela ne répond pas à la question ‘Comment ?’. Comme dans tout autre domaine, par la formation (initiale et continue). Oui mais laquelle ?
Par formation initiale, j’entends l’école. Lorsque j’étais enfant, équipements comme enseignements informatiques étaient encore balbutiants. Des Thomson MO5, voulus par le gouvernement de l’époque, alignés dans un préfabriqué, nous servaient pour apprendre. On voyait plus cela comme un moyen de jouer à des jeux vidéos. Et ce ne sont pas les cours de logo pour déplacer une ‘tortue’ qui nous ont appris la logique de l’informatique.
La deuxième expérience de pédagogie informatique était en 6ème. Des machines à peine plus évoluées et des cours qui se rapprochaient plus de la dactylographie. Le problème de l’apprentissage pour les collégiens était que les enseignants étaient souvent aussi novices. Et rien n’était fait pour que nos formateurs soient formés. Presque 30 ans plus tard, l’informatique est entré dans les mœurs. Nos enseignants maîtrisent-ils pour autant la logique de ce domaine ?
Il fallait attendre les études supérieures pour trouver des enseignants formés et compétents pour partager ce domaine. Si mes années d’IUT m’ont permis de rencontrer des maîtres passionnés et à jour, les 2 années suivantes à l’IUP m’ont donné l’impression de faire un retour dans le passé. Environ 15 ans de retard technologique. Mon Master 2 dans une autre université m’ont permis de raccrocher sur les aspects technologiques.
La formation initiale est importante pour apprendre et comprendre les outils informatiques. Mais, elle dépend beaucoup du choix de la direction de la formation. En fait non. Elle dépend surtout de vous maintenant. Si enfant, je n’avais pas le choix, les ressources étaient rare et la bibliothèque municipale ne fournissait pas ce genre de littérature, depuis Internet cela a complètement changé.
Avant, pour apprendre à écrire un programme, il fallait se rendre chez son marchand de journaux, acheter des revues spécialisées et copier le code existant en espérant comprendre les lignes que nous tapions sur nos ordinateur. On pouvait aussi acheter des livres spécialisés, mais ils n’étaient pas très pédagogiques et ne présentaient que rarement l’aspect pratique du code. Les plus chanceux apprenaient avec d’autres informaticiens, rares à l’époque.
Avec Internet, les ressources se sont multipliées. Au départ, les codes et programmes étaient échangés sur des forums de discussion. Puis, des bibliothèques de codes ont été mises en place. En parallèle, certains enseignants/chercheurs ont partagé leurs cours sur leurs sites. L’aspect théorique était préféré à l’aspect pratique, mais l’information était de qualité.
Aujourd’hui, plus besoins d’aller dans des bibliothèques ou chez un informaticien. Les moteurs de recherche permettent de trouver la bonne information. Les tutoriels (sites, podcasts, vidéos) sont nombreux pour apprendre une technologie et comprendre comment l’appliquer à son besoin. Encore faut-il avoir bien cadré son besoin avant d’écrire le service.
Je n’ai pas encore répondu à la question comment apprendre. En attendant un prochain article, voici quelques liens intéressants :
- pour des cours en lignes, je conseille OpenClassroom même s’il existe bien d’autres MOOC,
- pour du bidouillage simple et efficace, le site de Korben est une mine d’or,
- pour de la veille technologique, je vous conseille le site ‘developpez.com’,
- pour les anglophones qui veulent créer des applications sur Internet : w3schools.