Image of an arrow

Devrait-on enseigner Git dans les cégeps et universités?

Avatar

ltalbot

Logo GitLa semaine dernière, je me suis rendu avec mon collègue Philippe Latouche à l’Université Laval afin de rencontrer des étudiants en quête de travail et de stages. Nous avons rapidement constaté que plusieurs CV d’étudiants au Bac, qui visaient le monde du web, ne mentionnaient pas la connaissance de la technologie de gestion de versions décentralisé Git. Cela nous a surpris.

Git est-il enseigné au Cégep et/ou dans les universités?

Mis à part le programme de Technique en intégration Multimédia du Cegep Ste-Foy qui, semble-t-il, l’aurait intégré à son cursus, il semble difficile de trouver un cours public dédié à Git au Québec. Et nous ne sommes pas seuls; c’est aussi le cas aussi aux États-Unis. Jeff Siarto, designer à la NASA et à O’Reilly Media, et instructeur à l’Université du Michigan, dressait, en mai dernier, le même constat. Traduction libre :

Au cours de la dernière année, j’ai interviewé plusieurs nouveaux diplômés dans les domaines liés aux technologies (des programmeurs et les designers) et très peu d’entre eux connaissaient le contrôle de version. La plupart avaient peu ou pas d’expérience avec Git ou avec la communauté en ligne Github.

Comme nous le fait remarquer Olivier Lafleur, enseignant en informatique au Cégep de Lévis-Lauzon, Git est rarement enseigné directement par les professeurs, mais certains, conscients qu’il est devenu un standard demandent ou proposent à leurs étudiants de l’utiliser dans les travaux. Par exemple « au département d’informatique de l’Université Laval, on a le choix d’utiliser Git ou svn dans les projets. Dans mon cours de cégep, je fais utiliser Git et Github. C’est amusant… » En fait, Git s’enseigne en quelque sorte « par les pairs », fait-il remarquer.

Pourquoi ne pas mettre carrément Git au programme?

D’abord, certains disent (ici) qu’il le sera et qu’il s’agit simplement d’un retard des institutions par rapport à l’industrie. D’autres pensent que, pour l’université notamment, c’est un aspect trop technique et que l’effort devrait être mis à « enseigner un savoir fondamental, comme le design algorithmique, plutôt qu’un outil spécifique qui pourrait devenir obsolète au moment ou l’étudiant gradue » (voir cette conversation dans Hacker News).

Git est-il une mode?

Selon ce graphique de tendance de Indeed, il semble en tout cas que Git soit maintenant l’outil de gestion des versions le plus demandé par les employeurs et que son usage a connu une croissance constante depuis son arrivée sur le marché.

Source: Indeed.com

Bernard Chhun, développeur Web chez Savoir-faire Linux et co-fondateur du groupe Québec-Python, a assisté à la montée de Git. Après avoir travaillé avec d’autres gestionnaires de version comme Microsoft SourceSafe et svn, il a d’abord trouvé le maniement de Git en ligne de commande un peu complexe, mais il s’y est fait progressivement et ne reviendrait plus en arrière. « Git est en fait devenu un standard incontournable dans le monde de l’agilité et du travail collaboratif », affirme-t-il. De plus, c’est un logiciel libre, son code est ouvert, il ne dépend donc d’aucune entreprise et ne risque pas de décliner au profit d’une technologie concurrente demain matin.

L’université n’a-t-elle pas mieux à enseigner qu’un simple outil?

Selon Jeff Siarto (ibid), « Il n’y a aucune raison que le premier cours que reçoit un nouvel étudiant en sciences informatiques ne commence pas par l’ouverture d’un shell, l’installation de Git et la contribution de code sur Github ou sur le serveur Git d’une université. »

Chez Savoir-faire Linux (ainsi, probablement, que dans de nombreuses autres entreprises du Québec), lorsque nous engageons un stagiaire ou un développeur peu familier avec ce logiciel, nous devons souvent le former à l’interne à l’utilisation de Git, l’une des pierres angulaires de nos méthodes de développement collaboratif agile. Si les cégeps et les universités faisaient ce travail en amont, cela ferait évidemment gagner du temps à tout le monde. Il ne s’agit pas, en effet, d’un processus propre à une entreprise en particulier.

Une culture de collaboration à épouser

Finalement, n’est-ce pas cette culture du développement collaboratif qu’il faudrait intégrer, pas à pas, dans nos institutions d’enseignement? Cela prendra d’abord des enseignants comme Olivier Lafleur, qui demanderont à leurs étudiants de remettre leur travaux via Git, et d’autres qui choisiront de dédier une ou deux séances au sujet. Ces enseignants sont peut-être des pionniers, mais il existe tout de même des ressources pour les aider, dont le programme éducationnel de Github.

L’essentiel, c’est qu’une grande majorité de professeurs collégiaux et universitaires aient à coeur de relever ce défi lancé par Jeff Siarto :

Je mets au défi mes collègues professeurs, adjoints et moniteurs d’intégrer le contrôle de version dans leur programme, d’encourager la collaboration entre les étudiants et de leur donner les outils dont ils ont besoin pour avoir une longueur d’avance quand ils entrent sur le marché du travail. En tant que professeur et designer travaillant à distance avec des équipes aux quatre coins du monde, je n’attends rien de moins de mes nouveaux collègues!

Et en attendant cette évolution, Savoir-faire Linux commercialise une formation Git complète particulièrement appréciée par les entreprises. Vous ne direz pas qu’on ne vous l’a pas dit. 😉

Ressources

Pour démarrer son auto-apprentissage Git :

Pour aller plus loin :

  1. « enseigner un savoir fondamental, comme le design algorithmique, plutôt qu’un outil spécifique qui pourrait devenir obsolète au moment ou l’étudiant gradue »… Le versioning est un savoir fondamental à mon avis. Oui Git sera peut-être obsolète à la fin de la formation, mais au même titre que n’importe quel langage de programmation. L’enseigner est un must!

    1. J’ai eu la même réaction qu’Étienne Talbot. Il ne s’agit pas d’enseigner Git ou svn pour l’outil, mais plutôt d’enseigner aux étudiants ce qu’est le contrôle de sources.

      Je travaille aujourd’hui dans un langage que je n’ai pas appris à l’école. Par contre j’utilise beaucoup des techniques que j’y ai appris à l’aide d’autres langages.

      De plus, ces outils pourraient aider les étudiants dans le cadre de leur travaux.

  2. Merci pour la citation ! C’est important de donner de la visibilité à cette question très importante.

    Je crois qu’il est absolument essentiel que les étudiants aient au moins travaillé une fois dans leur formation académique avec un système de contrôle de version.

    En 2014, du développement en équipe, ça passe par un tel outil. J’ai une préférence pour Git, mais l’important est surtout d’en utiliser un, quel qu’il soit (Mercurial, svn, etc.)

    1. C’est toujours un plaisir de discuter de sujets passionnants !

      J’espère aussi que de plus en plus de professeurs utiliseront cet outil. En tout cas, ici au Cégep, j’essaie de convaincre mes collègues qui ne le font pas déjà de faire de même. 😉

  3. Questionnement très intéressant, Léon.

    En effet, j’ai eu un professeur pour lequel toute demande d’aide en programmation et de remise de travaux devait se faire par Github. C’était un pionnier et il faisait beaucoup d’intervention dans les différentes compagnies. La première chose qu’il demandait, lorsqu’il allait en entreprise, c’était : « <emQuel outil de versionning utilisez-vous?  » Si les gens ne savaient pas de quoi il parlait, il s’en allait tout simplement en leur disant de le rappeler lorsqu’ils en auraient un d’installé.

    Dans l’ère de la mondialisation et du télétravail, l’accessibilité des informations et de l’historique est primordial. Cela permet une parfaite harmonie avec les méthodes Agile pour lesquelles le travail est séparé en scénarios et tâches. Ainsi, plusieurs travailleurs peuvent travailler à partir de la même base et feront une fusion à la fin de l’itération.

    1. Encourageant! Cela peut nous laisser croire qu’on en est dans les premiers pas d’une transition vers Git dans les institutions d’enseignement.

  4. Pédagogiquement, la ligne de commande peut parfois être rebutante pour certains profs/étudiants.

    Pour ma part, j’utilise git et GitHub, mais en combinaison avec les éditeurs de JetBrains (dans mon cas précis, PhpStorm), qui, nativement, permettent d’interagir avec git dans l’interface utilisateur.

    On m’a aussi dit (je n’ai pas eu la chance de l’essayer par contre) que Visual Studio 2013 avait une bonne intégration avec git.

    Bref, conseil aux profs qui voudraient l’essayer : utiliser un IDE qui intègre bien git ou le SCV choisi. Cela facilite l’apprentissage des étudiants.

  5. Je crois également que les systèmes de gestion de version et le travail collaboratif sont des essentiels dans la formation d’un programmeur. Au Cégep où j’enseigne (Cégep de Drummondville), nous montrons Git depuis 2 ans et pédagogiquement, c’est très avantageux. De plus, ils n’utilisent pas un beau petit GUI. Entièrement en ligne de commande. Même que lorsqu’ils ont terminé le cours et qu’ils ont le droit d’utiliser n’importe quelle interface, ils restent avec la ligne de commande (ils utilisent même Vim pour commenter leurs commits). Ils sont capables, il faut juste les pousser un peu.

  6. Réponse rapide: Oui.

    Le plus important est de comprendre le rôle d’un logiciel de contrôle de version (SCM) et en avoir appréhendé au moins un.

    Maintenant, Git diffère énormément des SCM traditionnels (SVN, …). A tel point qu’il modifie la façon dont on soumet nos changements, c’est à dire la façon dont on développe. Tout comme Agile a complètement modifié la façon de gérer les projets, Git modifie la façon dont les développeurs travaillent et collaborent. On peut soumettre des modifications plus petites, plus souvent, sans ralentir les autres développeurs (verrou). En cela il correspond parfaitement à la méthode Agile.

    D’un point de vue performance, Git est une Ferrari là où certains SCM sont des voiturettes de golf. Sur certains projets, la voiturette suffit, mais tout projet tend à grossir.

    Enfin j’ai noté beaucoup d’inertie de la part des développeurs à changer de SCM. Pourquoi? Ce n’est pas leur cœur de métier, c’est juste un outil. Celui qu’ils utilisent a des défauts, mais ils savent maintenant les contourner. Cette inertie est compréhensible et parfois plus sage : une mauvaise utilisation d’un SCM peut causer des catastrophes! Comme pour une Ferrari, il faut un permis de conduire particulier pour conduire Git. Mieux vaut avoir suivi une bonne formation.

    Avec les développeurs expérimentés, je pense qu’il faut être à l’écoute et bien identifier s’il y a un vrai besoin de changement. Pour les jeunes diplômés, je pense qu’il faut être intraitable : il faut éviter de les conditionner à utiliser un outil qui sera désuet dans quelques années ou qui va les ralentir dans leur travail. À ce sujet, je pense que Git est très performant et a un très bel avenir devant lui.

  7. Très bonne remarque d’Eric Hogue. Je ne vais que corroborer en rajoutant ma réponse au post Google+ de Christophe :

    > TL;DR: Non.
    > Il faut sensibiliser les (futurs) développeurs au contrôle de version et à la distribution du code en général et non à un logiciel. Encore moins à une entreprise (Github).

    Des tutos Git/SVN/Fossil/…, il y en a des milliers sur internet, il faut juste savoir quoi chercher.

Comments are closed.


Articles similaires

Image of an arrow

Parce que l’UX ne se limite pas au monde connecté, si vous allez un jour à Miami et que vous devez prendre le train, ne cherchez pas plus loin : optez pour la Brightline. Ce réseau ferroviaire a su inclure l’UX et l’expérience client dans son processus et rend le train extrêmement agréable à emprunter. […]

Tout le monde UX, abrégé TLM UX, est le rendez-vous UX (User Expericence – Expérience Utilisateur) de la scène Montréalaise. Proposant des conférences sur le sujet tous les 2 mois, TLM UX organise des rencontres entre passionnés, professionnels ou tout simplement curieux du domaine de l’expérience utilisateur. Ayant comme partenaires des grands noms d’agence de […]

Du 28 juillet au 5 août, l’un des membres de notre équipe, Hugo Lefeuvre (également un développeur Debian dans son temps libre), a participé à la DebConf18.  Ceci est LE regroupement annuel de la communauté Debian, à Hsinchu, Taïwan.  Au cours de la semaine, Hugo a passé du temps à préparer sa conférence sur Ring, à […]

Thumbnail image

Travailler chez Savoir-faire Linux, c’est rejoindre 145 experts qui contribuent à la réalisation d’un monde plus libre, mais aussi plus responsable. «Avec une dimension internationale très forte, nous souhaitons attirer en France et au Canada des talents passionnés par leur métier, contribuant déjà aux communautés du libre et ayant à cœur de résoudre les problématiques […]

Thumbnail image

  Savoir-faire Linux et le CTIC célèbrent les premières cohortes de diplômés dans le cadre de l’Initiative de Numérisation des Petites Entreprises (INPE). Les premiers étudiants ont commencé en janvier dernier le programme de six mois pour devenir la prochaine génération de leaders de la transformation digitale des petites entreprises en Ontario, dans le cadre […]