Open Source Society University – feuille de route gratuite d’autoformation en informatique
(github.com/ossu)- Le curriculum OSSU propose gratuitement une formation complète en informatique à partir de ressources en ligne issues des meilleures universités du monde
- Il reproduit la structure d’un cursus universitaire de niveau licence en informatique, avec une introduction, un tronc commun, un niveau avancé et un projet final
- Tous les cours et devoirs sont gratuits ou majoritairement gratuits, même si certaines évaluations peuvent entraîner des frais
- Un réseau mondial de soutien entre apprenants actif, notamment via la communauté Discord, ainsi que des mises à jour continues des ressources, est maintenu en permanence
- Les apprenants peuvent avancer de manière autonome ou en groupe, en adaptant librement le rythme et les choix à leur situation
Qu’est-ce qu’OSSU et pourquoi est-ce important
OSSU (Open Source Society University) est un curriculum open source conçu pour permettre à n’importe qui d’acquérir, sans frais, une formation autodidacte en informatique au niveau d’un diplôme universitaire classique. Il s’appuie sur des cours et ressources publics de grandes universités mondiales comme Harvard, MIT ou Princeton, avec pour objectif non pas une transmission ponctuelle de connaissances, mais une expérience d’apprentissage équilibrée fondée sur la théorie, la pratique et l’application.
- Toutes les ressources d’apprentissage sont une sélection de ressources gratuites de haute qualité disponibles en ligne
- Il reflète rigoureusement les standards internationaux des cursus fondamentaux de licence en informatique, comme la norme CS2013
- Il s’adresse avant tout à des personnes capables de s’auto-motiver, de maintenir des habitudes d’apprentissage sur la durée et de chercher de l’aide dans une communauté mondiale d’apprenants
Structure et caractéristiques du curriculum
- Introduction (Introduction to CS) : permet de découvrir les concepts de base de l’informatique et de la programmation, ainsi que leur intérêt. Inclut la programmation Python, la théorie du calcul, les structures de données de base et les algorithmes
- Tronc commun (Core CS) : correspond à peu près au contenu d’un cursus universitaire jusqu’à la troisième année, avec programmation (fonctionnelle, orientée objet, conception logicielle), mathématiques (mathématiques discrètes, statistiques, probabilités, calcul différentiel et intégral), systèmes (architecture des ordinateurs, OS, réseaux), théorie (algorithmes, problèmes NP, etc.), sécurité, applications et éthique
- Avancé (Advanced CS) : correspond à l’année finale. Il permet de choisir des domaines d’intérêt parmi la programmation avancée, les systèmes, la théorie, la cybersécurité ou les mathématiques avancées
- Projet final : met en pratique les connaissances acquises via un projet concret, dont les résultats sont partagés et évalués avec des pairs du monde entier. Il peut servir de preuve de compétences pratiques et de portfolio pour l’emploi
Modalités d’apprentissage et coût
- Le curriculum peut être suivi seul ou en groupe
- Il est recommandé de suivre les cours dans l’ordre, mais il est possible d’en sauter certains si leur contenu est déjà maîtrisé
- Tous les cours sont proposés gratuitement en ligne. Certaines plateformes (Coursera, edX, etc.) peuvent facturer l’évaluation des devoirs, examens ou projets, mais dans la plupart des cas, l’apprentissage lui-même reste gratuit. Des aides financières (bourses / Financial Aid) sont également indiquées pour réduire la charge économique
- Un modèle Google Sheets est fourni pour aider à suivre la progression et la date estimée de fin de parcours
Communauté et accompagnement
- Un serveur Discord est disponible pour les participants, avec des échanges actifs autour des cours, des questions et du networking entre pairs
- Des canaux de retour sont activement utilisés, comme les GitHub Issues et les propositions d’amélioration du curriculum
- Il est possible d’ajouter le parcours OSSU à son profil LinkedIn
Il est recommandé de consulter le site officiel et le dépôt GitHub pour voir la version la plus récente du curriculum
Liste détaillée du curriculum
Prérequis
- Le tronc commun en informatique nécessite un niveau lycée en mathématiques (algèbre, géométrie, pré-calcul)
- L’accès au niveau avancé suppose d’avoir terminé tout le tronc commun
- Les cours d’Advanced systems demandent des bases de physique de niveau lycée
Introduction à l’informatique (Introduction to CS)
- Premiers pas en informatique. Présente les calculs de base, la programmation impérative, les structures de données, les algorithmes, etc.
- Cours obligatoire : 'Introduction to Computer Science and Programming using Python' (14 semaines)
Tronc commun informatique (Core CS)
Programmation
- Pratique large couvrant fonctionnel / orienté objet / tests / patterns / typage / diversité des langages
- Systematic Program Design, Programming Languages (A–C), Object-Oriented Design, Software Architecture, etc.
Mathématiques
- Inclut mathématiques discrètes, preuves mathématiques, statistiques de base, notation O, probabilités et calcul différentiel et intégral
Outils et environnement de développement
- Outils essentiels en pratique : terminal, shell scripting, vim, ligne de commande, gestion de versions (
git), etc.
Systèmes
- Compréhension globale du fonctionnement des ordinateurs, du matériel jusqu’au système d’exploitation et aux réseaux
- Exemples : projet Nand to Tetris, OS Three Easy Pieces, Networking, etc.
Théorie
- Inclut l’analyse d’algorithmes, diviser pour régner, graphes, programmation dynamique, problèmes NP, etc.
Sécurité
- Inclut les bases de la sécurité informatique, le secure coding, l’analyse de vulnérabilités, les réseaux / la cryptographie et d’autres options
Applications
- Couvre aussi largement les usages concrets comme les bases de données, le machine learning, l’infographie et le génie logiciel
Éthique
- Met l’accent sur les exigences éthiques essentielles pour les professionnels de la tech : contexte social de la technologie, professionnalisme, propriété intellectuelle, confidentialité des données, etc.
Informatique avancée (Advanced CS)
- Choix selon le parcours ou les centres d’intérêt : programmation parallèle, compilateurs, langages comme Haskell / Prolog, debugging / testing logiciel
- Large éventail d’options : architecture des ordinateurs, analyse numérique / logique / probabilités, théorie du calcul, sécurité informatique, construction de systèmes, etc.
Projet final (Final Project)
- Choix, conception, implémentation et partage d’un projet concret
- Exemples d’options : service full-stack, robotique, data mining, big data, IoT, cloud computing, data science, développement de jeux, etc.
- Réalisation libre ou à partir de parcours recommandés
Après l’achèvement du parcours
- Validation de l’acquisition de connaissances équivalentes à une licence en informatique
- Recommandations pour la préparation à l’emploi, la lecture approfondie (liste fournie) et la participation à des meetups de développeurs hors ligne
- Encourage l’exploration de nouvelles technologies (langages comme Elixir / Rust / Idris, etc.)
Règles de fonctionnement et équipe
- Respect du code de conduite OSSU
- Explications sur la manière d’indiquer et de gérer sa progression sur GitHub (utilisation d’un kanban)
Principaux responsables d’OSSU
- Eric Douglas (fondateur d’OSSU), Josh Hanson (mainteneur technique), Waciuma Wanjohi (mainteneur académique), ainsi que d’autres contributeurs dans le monde entier
Conclusion
OSSU ouvre à toutes et tous, partout dans le monde, une voie gratuite pour développer des compétences en informatique au niveau d’un cursus universitaire classique et accéder plus largement aux métiers et parcours du secteur IT moderne.
La combinaison d’un rythme flexible, d’exigences rigoureuses, d’une communauté mondiale et de ressources gratuites de haute qualité constitue un atout majeur face aux autres curricula ouverts.
4 commentaires
> Je pense que les articles qui disent en gros « n'apprenez pas l'info » passent à côté du vrai sens.
La traduction est vraiment bien sortie, c'est étonnant haha
OSSU Open Source Society University - Étudier l’informatique en autodidacte
Cela avait été présenté au tout début de GeekNews. Depuis, beaucoup de choses ont été ajoutées.
Avis sur Hacker News
En tant qu’ingénieur expérimenté, je pense qu’OSSU est vraiment un excellent endroit si l’on veut aider les apprenants
Je dirige un programme éducatif qui aide les étudiants à étudier l’informatique de manière autonome. J’utilise aussi souvent le cursus d’OSSU comme ressource de référence
L’autoformation a beaucoup d’avantages, mais les étudiants doivent absolument savoir qu’elle comporte aussi des points de vigilance
Il faut faire davantage soi-même en matière de « signaling » et de réseautage, et les bénéfices sociaux dont on profite à l’université manquent souvent dans l’autoformation
Ne pas avoir de diplôme, c’est être dans une situation de « markedness » ; voir ici pour l’explication
Quand on commet une erreur ou qu’on rencontre une difficulté, il est facile d’en attribuer la cause à l’absence de diplôme
Certains recruteurs considèrent qu’embaucher quelqu’un sans diplôme est un risque politique, ce qui peut déjà rendre l’entrée dans l’entreprise difficile
Ce n’est pas insurmontable, mais c’est précisément pour cela que nous préparons cela avec eux dès le départ
Les avantages de l’autoformation sont une vitesse d’apprentissage plus élevée, l’absence de répétition inutile, et la possibilité de tout apprendre avec du contexte
Si l’on réalise qu’il manque des bases, on peut revenir en arrière et les apprendre à ce moment-là
Je pense que c’est une manière d’apprendre inévitable dans les métiers techniques, mais elle ne convient pas à tous les étudiants
En pratique, c’est souvent dommage que des personnes soient « forcées » vers l’autoformation parce que leur situation financière les empêche d’aller à l’université
Si l’on ne comprend pas bien les compromis, cela peut être encore plus difficile
Référence : Divepod
J’ai déjà mentoré plusieurs personnes dans leur parcours d’autoformation
Quand j’étais jeune, juste après le lycée, je n’ai pas su terminer correctement mon diplôme de CS, ce qui m’a fait rater de bonnes opportunités
Personnellement, je pense que Teach Yourself CS est une meilleure alternative
Je suis la preuve qu’on peut tout à fait construire une carrière uniquement par l’autoformation
Je travaille déjà dans le secteur depuis plus de 20 ans
Mais en choisissant cette voie, il existe clairement des entreprises et des rôles auxquels on n’accédera « jamais »
En général, il s’agit des meilleures entreprises, de celles qui paient le plus, et des postes offrant les meilleures conditions
Plus que le diplôme lui-même, ce qui compte encore davantage, c’est le réseau d’anciens. Avec un diplôme, il existe un « grand club » dans lequel certains recrutent systématiquement les diplômés de leur école
En autoformation, on n’aura jamais ce réseau
La réalité ? Il ne reste souvent que les emplois que les autres refusent : endroits absurdes, arnaques, startups sous-financées, entreprises déjà en difficulté
Et même lorsqu’on décroche exceptionnellement un bon poste, il est difficile d’y rester longtemps
Le salaire est plus faible, et le risque d’être exploité est plus grand
Il est aussi plus difficile d’obtenir plusieurs offres, donc sa position sur le marché se réduit
À cause de cela, toute la carrière peut finir par suivre une trajectoire financièrement complètement différente
La recherche d’emploi est bien plus difficile, au point de devoir fournir deux fois plus d’efforts
On se retrouve souvent confronté à des doutes, venant de soi-même comme des collègues, un peu comme un complexe d’illégitimité
La moindre erreur peut avoir des conséquences énormes
Cela reste mieux que de ne rien faire du tout, mais si l’on en a l’occasion, je pense qu’il vaut mieux aller à l’université
Sans vouloir minimiser votre expérience, j’ai moi-même travaillé dans divers types d’entreprises — grands groupes, unicorns, startups, etc. — en étant 100 % autodidacte
J’ai travaillé quelques années comme développeur logiciel, puis je suis retourné à l’université pour obtenir un diplôme en CS
Ce que vous dites est vrai dans une certaine mesure, mais surtout au début de carrière et quand on se situe dans le bas du groupe par rapport à ses pairs
Je suis probablement proche du TDAH, et aussi quelque part sur le spectre autistique
On oublie souvent dans cette discussion que la principale raison d’étudier l’informatique n’est pas forcément de trouver un emploi ou de progresser professionnellement
Je me demande si le fait que le cursus soit composé uniquement de cours « gratuits et open source » ne constitue pas justement une limite
Si l’on veut étudier sérieusement, il ne faut pas hésiter à investir aussi dans des ressources de qualité payantes
Je suis d’accord avec cet avis
Je pense qu’un diplôme compense la plupart des faiblesses sociales
Dans beaucoup de commentaires, on mélange l’idée que l’école crée un réseau avec celle selon laquelle certaines entreprises n’embauchent que des diplômés de certains établissements
Il est vrai que les opportunités augmentent grâce au réseau que l’on se constitue à l’université et au fil de sa carrière
Mais à mesure que la carrière avance, la force du réseau construit après l’université devient plus importante
Les postes qui exigent un diplôme d’une université précise ou un doctorat relèvent moins du réseau que du « signal »
Autrement dit, c’est un signal fiable auquel le recruteur n’a pas besoin de demander davantage de preuves
Les autodidactes doivent contourner cela ou fournir un effort supplémentaire
Ils doivent s’orienter vers des moyens de se faire remarquer par leurs relations ou par leur travail, ou obtenir des recommandations pour contourner le processus de recrutement classique
Quand j’entends « des opportunités qui disparaissent complètement », cela me fait penser à l’idée que la chance n’est pas une stratégie, mais qu’en multipliant les tentatives, on augmente la probabilité d’en avoir
Je me demande quel est exactement l’objectif
Je trouve un peu dommage que, dans ce genre de débat, les deux camps adoptent une posture excessivement défensive
Vraiment génial.