Article original : We Created a Local Free Coding School Using the freeCodeCamp Curriculum. Here's What We Learned.
Par Gwendolyn Faraday
Bien que cette image montre une salle de classe en présentiel, nous avons transféré notre école entièrement à distance en raison de la situation COVID-19.
Si vous souhaitez apprendre à coder, vous avez généralement trois options :
- Vous pouvez vous autoformer et trouver votre propre programme.
- Aller à l'université et obtenir un diplôme en informatique/IT.
- Ou suivre une école de codage. Les écoles de codage sont des formations intensives conçues pour vous mettre rapidement à niveau afin que vous puissiez trouver votre premier emploi en développement logiciel en trois mois à un an.
La première option est la moins chère, mais aussi la plus frustrante et difficile. Il est si facile de se retrouver bloqué en cours de route et de vouloir abandonner.
Les options deux et trois pourraient bien fonctionner, si vous pouvez vous permettre de prendre un congé (ou au moins réduire vos heures de travail), payer les frais de scolarité ainsi que les dépenses courantes pendant que vous suivez les cours et cherchez un emploi, et toujours pouvoir gérer votre vie familiale et personnelle. Tout le monde n'est pas en mesure de faire cela.
C'est pourquoi nous avons créé freeCodeSchool Indy. Il s'agit d'un programme de codage gratuit basé sur le programme de freeCodeCamp où nous guidons les étudiants à travers des programmes d'école de codage à temps partiel pendant trois mois.
Nous avons deux cours de deux heures par semaine - le lundi et le mercredi de 18h à 20h, où nous leur enseignons tout, des bases du HTML au JavaScript et une introduction à React.
Les étudiants sont censés passer au moins 6 heures par semaine à étudier par eux-mêmes, et peuvent optionnellement assister aux heures de bureau que nous organisons le dimanche de 13h à 17h. S'ils complètent les trois premiers mois, ils peuvent alors suivre un second programme de trois mois, où ils pourront apprendre le développement web back-end avec Node.js.
Nous avons commencé à travailler sur cette idée il y a plus d'un an et c'est excitant de pouvoir dire que nous avons terminé notre première cohorte en mai. Maintenant, nous pouvons partager ce que nous avons appris dans cet article.
Notre objectif en créant une école de codage gratuite
Notre objectif dès le début était de fournir une éducation accessible et soutenue pour tous, indépendamment des revenus ou des circonstances de vie (comme la capacité à prendre un congé).
Nous n'essayons pas de rivaliser avec les bootcamps ou les écoles de codage traditionnelles – ils fournissent également un service précieux pour les étudiants. Nous essayons simplement d'offrir une autre option, plus accessible, pour les personnes qui ont besoin d'un emploi du temps plus flexible ou qui ne peuvent pas se permettre une école de codage payante.
Les étudiants recevront des conseils et des orientations de la part du personnel, des bénévoles et des membres de la communauté tout au long du programme, et en tant qu'anciens élèves par la suite.
Bien sûr, nous voulons que nos étudiants puissent obtenir des emplois dans le secteur si c'est leur objectif. Mais nous n'avons pas les ressources pour garantir quoi que ce soit. Nous voulons simplement fournir autant de soutien que possible aux étudiants, qu'ils décident de continuer à apprendre par eux-mêmes ou de suivre un programme plus formel, comme une école de codage ou une université.
Comme je l'ai mentionné précédemment, il nous a fallu environ un an pour tout mettre en place – entre la recherche de l'espace et des instructeurs, ainsi que la décision sur le type de programme et le curriculum. Voici tout ce qui a été nécessaire pour la préparation de notre programme.
Comment nous avons planifié le programme
Les premières choses que nous avons faites ont été de choisir la durée et les objectifs du programme. Nous avons opté pour des cours de trois mois où les étudiants apprendraient les bases du HTML, du CSS et du JS, avec quelques extras comme Bootstrap et les composants React.
Si tout se passait bien, notre objectif était de prendre un mois de pause et d'organiser un cours de niveau deux pour les étudiants ayant terminé le premier. Le niveau deux serait un autre trimestre où nous approfondirions ce que nous avons enseigné dans le niveau un et enseignerions davantage sur les frameworks JavaScript et introduirions Node.js.
Commencer modestement avec un programme à temps partiel de seulement trois mois nous a aidés à apprendre et à faire des ajustements en cours de route. Cela a également donné aux étudiants un objectif court et basé sur le temps pour pouvoir compléter le programme et avoir un petit portfolio en seulement quelques mois.
Voici notre organisation sur Github. Nous sommes en train de mettre à jour et d'ouvrir nos matériaux en open source au fur et à mesure.
Adoption du programme de freeCodeCamp
Le développement de programmes est chronophage et coûteux. Heureusement, freeCodeCamp dispose déjà d'un programme gratuit et génial que nous pouvons utiliser et modifier sans aucune contrainte.
Nous avons pris le programme de freeCodeCamp et l'avons suivi comme une ligne directrice pour nos cours. Nous avons utilisé les défis comme devoirs pour les étudiants à compléter entre les cours. Nous avons également utilisé les projets de freeCodeCamp comme devoirs individuels et de groupe tout au long du programme.
Tout au long des leçons, nous avons également encouragé les étudiants à essayer de faire un peu de travail supplémentaire pour pouvoir obtenir leurs certifications freeCodeCamp pendant ou après la fin du programme.
Comment nous avons trouvé un espace pour accueillir les cours
La bibliothèque publique d'Indianapolis a généreusement accepté d'accueillir nos cours et de nous donner de l'espace pour les heures de bureau également. La taille de l'espace dans le laboratoire informatique était limitée, donc le nombre maximum d'étudiants que nous pouvions accepter par classe était de 22.
Nous aurions pu utiliser une salle de conférence plus grande dans la bibliothèque pour accueillir une classe plus nombreuse, mais alors nous n'aurions pas pu accepter les étudiants qui ne possédaient pas d'ordinateur portable – et cela n'aurait pas été très accessible pour tous.
Nous n'avions pas prévu d'être un programme à distance, donc nous avons dû ajuster nos cours pour utiliser Discord pour les conférences et toute la communication avec les étudiants lorsque la COVID-19 est survenue. Plus d'informations à ce sujet plus tard.
Comment nous avons choisi les outils technologiques
Nous avons préparé un forum Discourse (comme le forum freeCodeCamp) avant le début des cours afin que les étudiants puissent se connecter, recevoir des annonces, poser des questions et publier des devoirs. Cela a également donné au personnel administratif certains privilèges pour suivre les étudiants et modérer les interactions entre eux.
Comment nous avons administré l'école
Trouver des étudiants
Lors de la planification de ce programme, notre inquiétude était de ne pas avoir assez d'intérêt et que toute notre planification serait vaine. La réalité était que nous avions beaucoup trop d'intérêt et que nous ne pouvions pas accueillir tous les étudiants. Pour 22 places, nous avions plus de 140 personnes qui voulaient participer ! Et cela sans faire beaucoup de marketing.
C'était très excitant de recevoir autant d'intérêt pour notre programme, mais nous devions également décider quels étudiants accepter et comment choisir de manière équitable.
Nous avons décidé de réduire le nombre de candidats en exigeant que les personnes se présentent à trois activités de présélection où elles devraient compléter quelques défis de base, comme le jeu Flappy de Code.org. Cela nous a permis de savoir quels étudiants étaient déterminés à se présenter et a réduit le nombre de personnes en ligne à environ 80. C'était encore beaucoup trop pour l'espace dont nous disposions, donc nous avons dû faire un tirage au sort aléatoire pour sélectionner les étudiants finaux.
Enseigner aux étudiants
Chaque étudiant apprend différemment et a sa propre personnalité et préférences. Il est déraisonnable de s'attendre à ce que nous puissions simplement faire un cours magistral aux étudiants pendant une heure et qu'ils puissent tous assimiler toutes ces informations et construire le laboratoire sans problème.
Nous avons décidé d'un format pour les cours où nous commençons chaque cours en demandant si quelqu'un a des questions – généralement, nous n'en obtenons pas beaucoup. Ensuite, nous passons aux diapositives et faisons une pause toutes les ~15 minutes pour donner aux étudiants des 'labs' guidés afin qu'ils puissent essayer de coder par eux-mêmes avec le soutien d'avoir des instructions et de pouvoir encore poser des questions en classe.
Nous laissons souvent les 30 dernières minutes des cours de 2 heures aux étudiants pour qu'ils puissent travailler sur leurs projets de classe.
Collecte des devoirs
Certaines personnes ne rendent pas les devoirs. Cela peut signifier qu'ils sont timides à l'idée de partager leur code où d'autres étudiants peuvent le voir, ou qu'ils pensent simplement que ce n'est pas nécessaire puisque c'est une école de codage gratuite après tout, et que certains de leurs camarades de classe ne le font pas non plus.
Si c'est le premier cas, nous les encourageons à partager les devoirs uniquement avec le personnel et leur faisons savoir que nous avons tous été à leur place auparavant.
S'ils ne rendent pas les devoirs parce qu'ils ne veulent pas... eh bien, il n'y a pas grand-chose que nous puissions faire à ce sujet. Nous essayons de décourager les étudiants de rejoindre la classe s'ils ne veulent pas participer pleinement au programme.
Les devoirs étaient initialement rendus sur le forum, mais nous avions très peu d'engagement là-bas. Les étudiants ne se connectaient pas très souvent et ne posaient jamais de questions là-bas.
Maintenant, les devoirs sont rendus via un canal Discord sur le serveur que nous avons pour notre école de codage.
Puisque nous gérons tout notre programme à partir du même serveur Discord – y compris l'hébergement des cours, la réponse aux questions et la gestion du programme – nous constatons une augmentation du nombre de devoirs rendus. Nous recevons également des retours plus utiles que les étudiants reçoivent du personnel et des bénévoles.
Dates limites
Devrions-nous avoir des dates limites pour la remise des projets ? Notre opinion actuelle est non, nous ne devrions pas.
La plupart de la première cohorte a pris un peu de retard et certains d'entre eux ont terminé le programme des semaines après la fin. Devrions-nous punir les personnes qui terminent, mais pas à temps ? Nous ne le pensons pas et voici pourquoi : Tout le monde apprend à son propre rythme.
Si quelqu'un termine en 3 mois et un autre étudiant en 4 mois, alors ils devraient tous les deux être récompensés de la même manière pour avoir complété le programme.
Un jour, nous pourrons avoir des admissions continues pour notre codage et aider les étudiants à un niveau plus granulaire. En attendant, le moins que nous puissions faire est de rester flexibles pour les accommoder et leur permettre de rendre le reste des projets quand ils le peuvent.
Inciter les étudiants à demander de l'aide
Cela a été l'un de nos plus grands problèmes ! Certaines personnes prennent du retard et certains étudiants sont confus mais ne veulent pas demander de l'aide. Certains étudiants sont si confus qu'ils ne savent même pas quel type d'aide demander.
Vous ne pouvez pas vraiment forcer les gens à obtenir de l'aide, mais vous pouvez les inciter. La meilleure façon que nous avons trouvée pour les amener à poser des questions est de faire de courts segments de révision au début des cours et d'avoir des heures d'étude planifiées où les étudiants peuvent venir et poser des questions dans un cadre de groupe beaucoup plus petit.
S'ils préfèrent taper la question, ils peuvent la publier dans le chat des étudiants ou envoyer un message privé à l'un des organisateurs.
Nous ne pouvons faire que tant. Si les étudiants sont perdus ou confus et ne veulent pas demander de l'aide, il n'y a aucun moyen pour nous de régler cela. Nous faisons de notre mieux pour les rencontrer là où ils sont, mais ils doivent aussi faire un effort pour venir vers nous.
Enquêtes auprès des étudiants
Réaliser régulièrement des enquêtes auprès des étudiants nous aide vraiment à obtenir des retours critiques pour notre programme.
La première fois, nous avons collecté des informations sur les objectifs et le parcours des étudiants au début, puis nous avons réalisé une enquête auprès des étudiants à mi-parcours - vers 6 semaines - et une autre enquête à la fin.
Bien que nous ayons reçu beaucoup de bonnes informations, avec le recul, nous aurions dû faire plus d'enquêtes et ajouter quelques questions supplémentaires. Cette fois, nous réaliserons probablement des enquêtes pour obtenir les retours des étudiants chaque mois. Voici quelques-unes des questions que nous posons :
- Que pensez-vous du programme jusqu'à présent ? Répond-il à vos attentes ?
- Avez-vous l'impression que les cours sont utiles pour faire les devoirs ?
- Comment pouvons-nous mieux vous aider à atteindre vos objectifs ?
- Avez-vous d'autres retours pour nous ?
Gérer les abandons
La vie arrive, les choses changent. Nous devons comprendre que les étudiants qui ont pleinement l'intention de participer peuvent devoir abandonner en raison de circonstances inévitables.
S'ils communiquent avec nous sur la situation, nous leur offrons une place dans la prochaine cohorte.
S'ils ne se présentent tout simplement pas ou ne communiquent pas avec nous, ils sont libres de postuler à nouveau à l'avenir, mais aucune place ne sera réservée pour eux.
Personnel et bénévoles
Solliciter des bénévoles
Sans bénévoles, il serait assez écrasant de diriger un programme comme celui-ci. Voici quelques-uns des différents types de bénévoles dont vous aurez besoin pour réussir.
Responsabilités :
- Organisateurs – Oui, nous sommes aussi des bénévoles. Nous avons la chance d'avoir une équipe incroyable d'organisateurs qui dirigent le programme. Cela inclut moi-même, deux autres développeurs et un superviseur de laboratoire informatique de la bibliothèque qui sait aussi coder. Nous discutons plusieurs fois par semaine sur Discord pour nous assurer que le programme se déroule sans accroc et que les étudiants progressent. Je pense que 3 à 5 est un bon nombre pour une équipe d'organisation, mais nous pourrions en ajouter plus pour faire des choses spécifiques, comme 'gestionnaire de communauté' ou 'coordinateur de bénévoles'.
- Présentateurs – Ces personnes donnent des cours pendant les heures de classe ou des sessions d'aide spéciales organisées généralement le week-end. C'est le type de bénévolat le plus difficile à gérer. Dans notre programme, les cours durent 1,5 à 2 heures et il n'y en a que 24, donc chacun d'eux doit être parfait et s'intégrer au reste du programme. Certains bénévoles bien intentionnés peuvent ne pas être adaptés pour donner des cours à des personnes qui sont nouvelles dans le développement. Il est très important d'être clair sur ce que vous voulez qu'ils couvrent dans le cours, jusqu'aux points individuels et aux résultats d'apprentissage attendus. Nous nous sommes également assurés de donner aux bénévoles un modèle de diapositives à utiliser pour qu'il corresponde au reste du programme.
- Mentors – Les étudiants n'auront pas seulement des questions sur le codage, mais aussi des questions sur leur carrière, le réseautage, etc. Le mentorat est idéal pour répondre à ces types de questions. Nous travaillons actuellement à la mise en place de notre programme de mentorat où les mentors bénévoles prendront des nouvelles des étudiants au moins une fois par semaine pour s'assurer qu'ils sont sur la bonne voie et répondre à toutes leurs questions. L'une des raisons du retard est que nous avons travaillé sur un système pour gérer les plaintes concernant un langage ou un comportement inapproprié qui pourrait survenir lorsque les étudiants rencontrent des bénévoles en tête-à-tête.
- Assistants de laboratoire – Les assistants de laboratoire sont là pour aider de manière synchrone pendant les sessions de laboratoire en direct, généralement avec des problèmes d'exécution de logiciels ou de débogage. Nous avons beaucoup utilisé les assistants de laboratoire lorsque nous organisions des cours en présentiel. Avec les cours à distance, nous ne pouvons pas voir les écrans des étudiants, donc nous avons dû avoir quelques personnes disponibles pour répondre aux questions dans le chat si les gens sont bloqués.
- Aides générales – Ces personnes aident à répondre aux questions des étudiants dans le chat et effectuent d'autres tâches comme la révision de projets et de portfolios. Elles sont également utiles pour que les étudiants puissent discuter ou pour les encourager.
Manuel des bénévoles
Nous avons créé un manuel de deux pages détaillant les attentes en matière de comportement des bénévoles ainsi que les exigences pour participer à notre programme. Il est assez basique pour le moment, mais nous allons certainement le développer au fur et à mesure.
Nous leur donnons également un lien vers le code de conduite de freeCodeCamp car il est court, simple et direct : soyez gentil, compréhensif, etc.
S'assurer que le personnel dispose des outils pour réussir
Nous avons certainement fait quelques erreurs, y compris laisser un présentateur créer ses propres diapositives et ensuite devoir lui dire à la dernière minute qu'elles devaient être changées. Cela ne s'est pas bien passé. Nous aurions dû être beaucoup plus clairs sur ce que nous attendions de lui.
Maintenant, tout le monde reçoit de notre part un modèle de diapositives ainsi qu'une liste de sujets à couvrir. Nous les contactons également plusieurs fois pour passer en revue les progrès de leur présentation afin de nous assurer qu'elle est sur la bonne voie.
Actuellement, nous avons un manuel des bénévoles, des plans de leçons et des diapositives pour l'enseignement, des directives pour le mentorat, et un dossier Google Drive où nous conservons toute la documentation du programme, les progrès des étudiants, les matériaux du programme, et les plans futurs. Nous avons récemment réorganisé tous ces matériaux pour les rendre plus faciles à localiser lorsque nous en avons besoin.
À mesure que ce programme grandit, nous allons devoir gérer plus de bénévoles et même du personnel rémunéré. Nous nous préparons à cela en documentant nos processus pour rendre l'intégration un peu plus fluide à chaque fois.
Partenaires communautaires
Nous essayons actuellement de former des partenariats communautaires pour obtenir des sponsors pour le financement ainsi que des dons d'équipements technologiques.
Certains de nos étudiants n'ont pas accès à de bons ordinateurs ou à une connexion internet rapide. La bibliothèque nous fournissait ces choses lorsque nous organisions des cours en présentiel, mais cela a été plus difficile depuis que nous sommes à distance.
De plus, les bibliothèques n'ont que des heures d'ouverture limitées, et pour les étudiants qui travaillent plusieurs emplois ou ont d'autres obligations familiales, il peut être difficile de trouver le temps de faire tout le travail de classe pendant la journée. C'est pourquoi le parrainage des partenaires communautaires est si important pour rendre notre programme accessible.
À l'avenir, nous espérons pouvoir fournir un accès internet et des ordinateurs portables aux étudiants qui en ont besoin.
Organisation
Marketing
Nous n'avons pas d'experts en marketing dans notre équipe. Nos efforts de marketing consistent essentiellement à nous assurer que nous maintenons notre image de marque convenue - couleurs, formulations, etc. - cohérente et à partager collectivement des mises à jour sur les réseaux sociaux.
Heureusement, j'ai une petite communauté sur YouTube, LinkedIn et d'autres plateformes où j'ai pu solliciter des bénévoles et susciter un certain intérêt communautaire pour notre programme.
La bibliothèque publique a également été utile pour atteindre de nombreuses communautés différentes et attirer des étudiants que nous n'aurions peut-être jamais pu atteindre autrement.
À mesure que nous grandissons, nous pourrions commencer à étendre notre portée sur les réseaux sociaux, mais avec un budget limité pour le moment, nous gagnons simplement du terrain de manière organique.
Livestreams à distance
Interface de partage d'écran Discord.
L'organisation de livestreams à distance a été un défi. Les connexions internet tombent parfois en panne, et il y a une courbe d'apprentissage pour les étudiants afin qu'ils puissent utiliser le logiciel.
Discord a été une excellente option pour nous, car nous pouvons héberger des livestreams à l'intérieur de l'application où se trouvent tous nos chats et tout le reste. Ainsi, nous n'avons à expliquer comment utiliser qu'un seul logiciel.
De plus, Discord nous permet de partager notre écran avec jusqu'à 50 personnes à la fois dans les salons de discussion vocale. Et tout cela gratuitement ! Nous avons regardé Zoom et d'autres outils, mais nous allons rester avec Discord jusqu'à ce que nous ayons besoin - et que nous puissions nous permettre - quelque chose avec plus de fonctionnalités.
Constitution et financement
Nous voulions commencer à demander des financements à des entreprises et à des particuliers, donc nous avons dû nous constituer en organisation à but non lucratif l'année dernière. Aux États-Unis, ce processus prend environ six mois. Nous avons d'abord dû nous enregistrer en tant qu'entreprise auprès de notre État, puis rédiger des documents commerciaux et demander le statut d'organisation à but non lucratif auprès du gouvernement fédéral.
Au début de cette année, nous avons enfin reçu la confirmation que nous sommes une organisation à but non lucratif 501c3 ! Maintenant, nous essayons de trouver des moyens d'obtenir des financements et de recevoir des dons. Nous allons ajouter un bouton 'faire un don' à notre site web et nous contactons également des entreprises pour solliciter des dons plus importants. Il y a également eu des discussions internes sur l'opportunité ou non de recourir au financement participatif.
Avez-vous des suggestions pour nous dans ce domaine ? Veuillez laisser un commentaire sur cet article ou nous contacter à contact@freecodeschoolindy.com.
Outils de communication
Forum
Comme mentionné précédemment, nous avons commencé par utiliser un forum Discourse, mais nous avons constaté qu'il était difficile à maintenir et ne répondait pas à nos besoins. Les gens le trouvaient difficile à utiliser, surtout sur mobile. Nous avions également du mal à faire en sorte que le personnel et les étudiants se connectent et le consultent suffisamment souvent pour que cela en vaille la peine. C'est pourquoi nous nous sommes débarrassés du forum et avons transféré tout notre programme sur Discord.
Discord

Nous avons maintenant un serveur Discord configuré pour toute l'école de codage ! Nous l'utilisons pour héberger des cours en direct - nous pouvons avoir jusqu'à 50 personnes dans le chat vocal et partager notre écran avec elles en même temps, gérer les étudiants, organiser les activités des bénévoles, coacher les intervenants, répondre aux questions, faire des projets de groupe, réviser les portfolios et effectuer des tâches administratives.
Avoir tout au même endroit a été la meilleure décision que nous ayons jamais prise. Non seulement nos coûts sont plus bas, mais cela rend l'administration du programme beaucoup plus facile. Toutes les personnes avec lesquelles nous devons interagir sont soit déjà sur Discord, soit doivent simplement être invitées sur Discord :)
Remise des diplômes
Nous avions de grands projets pour organiser notre première remise de diplômes en présentiel pour les étudiants cette année. Malheureusement, en raison de la COVID-19, ces plans ont dû être abandonnés. Nous avons dû nous contenter d'envoyer des certificats par courrier aux étudiants qui ont terminé le programme et de donner à tout le monde une tape (virtuelle) dans le dos pour avoir terminé.
Maintenant que nos cours sont virtuels, nous aimerions pouvoir faire quelque chose de fun pour la remise des diplômes de notre deuxième cohorte à la fin du mois d'août. Avez-vous des idées ? Faites-nous savoir si vous en avez.
Conclusion
Mettre en place ce programme a peut-être été la chose la plus difficile que j'aie jamais faite. C'est beaucoup de travail, mais très gratifiant. Cela peut changer la vie des étudiants.
Ce n'était pas seulement moi : une équipe de personnes a aidé et rien de tout cela n'aurait été possible sans eux.
Je tiens à remercier particulièrement Jared Wilcurt, Casssandra Bautista, Marianne Mckenzie, The Indianapolis Public Library, freeCodeCamp, et tous nos merveilleux bénévoles – tous ceux qui ont été cruciaux dans la mise en place de ce programme.
Nous travaillons à rendre notre programme ouvert en open source – diapositives, projets, défis freeCodeCamp, matériel supplémentaire, etc. Cela prend un peu de temps pour tout mettre ensemble dans un format agréable, mais soyez patients, nous le mettrons à disposition de quiconque est intéressé bientôt :)
Je suis intéressée par vos réflexions. Avez-vous des idées pour des choses que nous pourrions faire mieux la prochaine fois ? Veuillez me contacter et me le faire savoir.
Mon Twitter : @gwen_faraday
Ma chaîne YouTube : Faraday Academy
Site web du programme : freecodeschoolindy.com