Les moyens d’apprentissage évoluent au fil du temps et la programmation n’est pas laissée de côté. Dans un monde comme aujourd’hui où la technologie est devenue omniprésente, les moyens d’apprendre à programmer se sont multipliés.
Arthur, 6 ans, adore jouer sur sa tablette. Sa mère, Martine, a entendu parler d’un moyen ludique pour faire apprendre la programmation à son fils. Grâce au Computer Kit Touch de chez Kano, il peut apprendre à monter sa propre tablette facilement et s’amuser à programmer en bloc. De plus, il fera appel à sa créativité en développant des mini-jeux ou même des morceaux de musiques. Nathalie, la soeur jumelle d’Arthur, est fan de l’univers d’Harry Potter. Elle peut, elle aussi, apprendre à coder tout en s’amusant. En effet, Kano propose un kit Harry Potter où l’enfant peut monter sa baguette et s’en servir, via sa tablette, pour effectuer des tours de magie qu’il aura lui même codés.
Leur grand frère, Maxime, voudrait lui aussi s’amuser mais de manière moins “infantilisante”. Pour cela, Tynker est une expérience plus complète et plus modulable. L’enfant, ou même l’étudiant, peut apprendre à coder des mini-jeux avec les blocs mais surtout voir l’équivalence instantanément et simultanément avec le langage Javascript. Il peut ainsi apprendre ce nouveau langage de façon ludique et sans effort. De plus, Tynker permet même à l’élève de créer ses propres designs dans les mini-jeux qu’il développe. Cette plateforme est très complète, et peut ainsi toucher un large panel d’élèves. Le point commun entre tous ces outils, c’est qu’ils permettent le partage des ressources. En effet, l’enfant peut partager ses créations avec l’ensemble des autres membres et voir en retour leurs créations. La communauté Kano, par exemple, comporte plus de 350 000 membres! On peut retrouver près de 1 000 000 créations partagées et de nombreux challenges. Cela peut notamment leur permettre de trouver une nouvelle source motivation pour apprendre s’il manque d’inspiration.
Julia est au lycée et est intéressée par l’informatique. Elle apprend à coder sur internet en suivant des cours de freecodecamp où elle peut apprendre gratuitement javascript et le html. La particularité de freecodecamp est que le cours est constitué d’une succession de petits exercices de coding qui peuvent être fait directement sur le site ce qui lui permet de les faire depuis n’importe quel ordinateur. Elle aurait pu utiliser CheckIO qui suit le même concept mais pour Python.
Ensuite pour ses projets personnels elle apprend les conceptions qu’elle ne maîtrise pas dans des moocs comme OpenClasseroom où elle peut apprendre n’importe quel langage ou concepte informatique. Lorsqu’elle ne trouve pas la solution à ses problèmes elle va chercher sur StackOverflow où elle pose des questions aux autres utilisateurs qui proposent des réponses. Les cours qu’elles suit s’uberisent. En effet, la frontière entre professeur, professionnel et amateur se floute sur des sites comme SkillShare ou Youtube. Ce dernier permet une interaction inédite entre les profs et leurs élèves qui peuvent choisir ensemble le contenu du prochain cours et posent des questions en live lors des cours en direct.
Maxime et ses amis jouent à des jeux-vidéos et veulent apprendre à programmer avec. Il en existe sur toutes les plateformes, sur mobile avec CodeKarts ou Robozzle ou sur PC avec God is a Cube. Certains enfin comme Leek Wars sont accessibles via navigateur. Sur ce site, le but est de programmer une Intelligence Artificielle en Javascript avec les fonctions déjà construites pour que des poireaux se battent sur une certaine carte avec certaines armes ou certains pouvoirs. Il est possible de jouer à plusieurs en Team et faire combattre plusieurs poireaux à la fois.
Mais Maxime s’est rendu compte qu’il n’avait pas le niveau en Javascript pour coder l’IA de ses rêves. Pour apprendre ludiquement Maxime et ses amis ont choisi de s’inscrire sur CodinGame. C’est un des nombreux sites parmi 250 qui permettent d’apprendre la programmation à travers des mini-jeux. La difficulté des défis est croissante et bien adaptée. De plus, le site supporte près de 25 langages. Une fois le défi terminé, des exemples de solutions faites par d’autres joueurs sont proposées, et ils peuvent voter pour les meilleures solutions. CodinGame devient de plus en plus une plateforme de recrutement. Certaines entreprises proposent leur propre niveau pour tester de potentiels candidats.
Une autre plateforme similaire à CodinGame mais qui s’applique à la cybersécurité, root-me, est elle aussi reconnu par des nombreuses écoles et entreprises en France et à travers le monde avec près de 200 000 membres. Le site dispose de milliers de défis dans 12 domaines différents de la sécurité avec aussi des CTF. Les Capture The Flag voit s’affronter plusieurs joueurs qui vont tenter de trouver les faiblesses dans un serveur compromis et de récupérer le drapeau après avoir reçu certains privilèges d’administration. Ce site nécessite des connaissances de bases en programmation mais le forum est assez actif et la communauté est souvent disponible pour répondre aux questions.
Après avoir fini leur lycée, Nathalie et Arthur commencent à avoir de plus grandes aspirations et souhaitent démarrer leur propre projet à deux. Pour cela, ils décident de commencer avec une petite application mobile qui pourraient potentiellement répondre à un réel besoin. Ils tombent lors de leurs recherches sur Pythonista, une application iOS qui permet de coder des applications iOS en Python directement depuis n’importe quel appareil iOS. Cela leur permet notamment de créer l’interface de leur application avec du glisser-déposer et de tester l’application directement depuis l’appareil sur lequel ils codent. Ils ont de plus de plus accès à de nombreux exemples de code source d’applications réalisées par la communauté, ce qui leur permet de se lancer relativement facilement.
Néanmoins, les deux jumeaux rencontrent rapidement un problème : ils ne savent pas comment gérer leurs projets qui deviennent de plus en plus complexes. Ils découvrent alors Jesse Weigel qui code en direct sur Youtube sur ses projets professionnels. Cela leur permet notamment de voir de réels projets de grande envergure et comment les aborder. Par ailleurs, ces projets sont open source et Jesse permet à tout le monde d’y participer. Son bénéfice est évident puisque son public va faire une partie de son boulot. Néanmoins, le bénéfice d’Arthur et Nathalie, qui décident de participer, n’est pas moindre non plus ! En effet, en plus de leur gain d’expérience, ils vont recevoir un retour sur leur code de la part du développeur et avoir des contributions publiques sur Github.
Maxime quant à lui, arrive déjà à l’âge où il doit trouver un emploi et, ne manquant pas d’ambition, souhaite aller travailler chez Facebook. Il est loin d’être naïf et se doute que les compétences qu’il a acquis sur internet jusqu’à présent ne seront pas nécessairement suffisantes. C’est là qu’il trouve Leetcode qui va lui permettre de s’entraîner sur différents sujets de programmation au sein d’une communauté importante mais surtout de préparer des entretiens spécifiques à certaines entreprises comme les GAFAs. Grâce au support de la communauté et aux exercices, il finit par être embauché chez Google.
Conclusion :
Aujourd’hui, une grande partie de l’apprentissage se fait via Internet et grâce aux nombreuses communautés qui y sont présentes. D’après une étude, c’est plus de 60% des développeurs qui se forment au moins en partie grâce à Internet ! Et comme on a pu le voir tout au long de l’article, il possible de se former à tout âge et à tout niveau. L’éducation des programmeurs se fait donc bien aujourd’hui en grande partie grâce au web social.