Notes de travail préparatoires à l'écriture d'article et réalisation d'ateliers Ouvertes à modifications et commentaires (s'il faillait préciser)
De “Hello, World !” Jusqu'à terminer par un cas pratique de sécurité de l'information (rootkit)
Apprendre, depuis le niveau débutant·e, les rudiments de la programmation en C en 28 courtes sessions.
De Hello, World!
Jusqu'à terminer par un cas pratique de sécurité de l'information (rootkit).
C'est en anglais, c'est rustre dans le sens où cela oblige la personne apprenante à chercher par elle-même des informations contextuelles.
Ça fait le taf !
Si ça tente quelqu'un·e de le (re)faire à rythme choisi et d'en discuter…
Il peut y avoir des termes et/ou des supposés qui vous ennuis voir vois refoule l'accès à cette petite expérience. Essayons de les contourner ensemble.
« Si on se sait pas qu'il faut compiler comment apprend-on ? » G.M quelque part sur Internet
Peut-être séduit⋅e par une annonce accrocheuse un peu trop prometteuse vous souhaitez vous lancer dans cette courte aventure d'apprentissage. Il nous faut alors se débarrasser de quelques non-dits gênants, franchir quelque gué dans les mots utilisés et accompagner les petits pas qui vous êtes prêt⋅e⋅s à tenter.
Tout d'abord, cette ressource proposée en lien dans l'introduction est en anglais, comporte 28 exercices ou missions (assignement) d'apprentissage, et ne contient que très peu d'explication.
Commençons par choisir de parcourir ces missions ensemble, à travers ces notes de travail et à travers plusieurs articles blog sur https://xavcc.frama.io que l'on propose de répartir par unité pédagogique d'environ 5 missions par article (en fonction du degrés de difficulté)
Ensuite, choisissons une posture d'égalité en pair : Je ne sais pas plus que vous, il est même possible que vous ignoriez que vous savez déjà des choses. Et j'avoue mes ignorances pour progresser ensemble
Puis essayons d'user d'un langage clair et d'accompagner à la traduction, compréhension, de termes anglais.
Il est également vrai que ce dossier https://github.com/h0mbre/Learning-C pose avant même de commencer une marche abrupte dans le début du parcours d'apprentissage. Ce problème reflète une myriade de présupposés d'appréhensions techniques et de maitrise d'us et coutumes qu'il nous faut accompagner dans leur préhension.
Il ne s'agit pas dans les articles à venir de surcharger en contenu et en informations supplémentaires une ressource qui est efficace et séduisant par son juste dépouillement et sa claire simplicité. Il s'agit de faire clair et net ensemble et d'ouvrir des fenêtres vers une autonomie des questionnements et de pratique
La langage C date des années 1970 et reste aujourd'hui en 2019 un langage de programmation majeur. Il est considéré comme relativement simple d'apprentissage. Vous trouverez sur Internet et en librairie de très nombreux ouvrages, sous diverses formes, qui vous proposeront d'aborder le lanage C sous différents besoins métiers ou par différents niveaux de connaissance.
La ressource que nous proposons d'aborder s'ancre dans les formats que l'on pourrait qualifier d'initation à moment choisi en court temps par étapes circonscrites avec objectif de réalisation.
Pour résumer plus synthétiquement : 28 petits exercices à faire vous-même ou avec d'autres qui vous amène à réaliser au final un objet plus ou moins proche d'une réalité professionnelle.
La personne à l'origine du parcours résume assez bien cela
« De plus, chaque cours de programmation devrait commencer par l'impression de “Hello, World” et se terminer par la création de logiciels malveillants, j'en suis convaincu. » (also, every programming class should begin with printing “Hello, World!” and end with building malware i'm convinced.) h0mbre
Cette déclaration illustre assez bien des questions de sécurité, de traitement et de circulation de l'information, quotidiennes et présentes, avec un langage qui est par prédilection utilisé en programmation des systèmes et en progrommation des réseaux.
Vous faire découvrir une forme d'écriture et vous entrainer à la compréhension des livres et de leur conception ne fait pas de vous un⋅e hors-la-loi
C'est aussi un objectif pédagogique et réalisation technique atteignable à temps court et en commençant d'une petite marche.
Nous tenterons de conserver cet élan dans les différentes étapes de notre parcours
Avant C existait le langage B, le langage C se nomme en référence à son prédécesseur conçu aux USA dans les Bell Telephone Laboratories, fondés par Graham Bell en 1925.
Le langage C a été créé par Dennis Ritchie lui aussi au sein du Bell Telephone Laboratories en 1972 à dessein de développer le système d'exploitation UNIX.
Rapidement devenu un langage très utilisé avec des diversités d'état donné dans l'évolution de ce langage, autrement dit avec des versions du langage différentes. Pour apporter une forme de régulation dans ces diversités qui posaient des problèmes de compatibilités entre différentes versions, une définition d'un standard pour la lanage C est conçue en 1983 par l'American National Standards Institut (ANSI) qui est toujours la base de référence aujourd'hui en 2019.
Il existe de nombreux langages de programmation, de nouveaux langages sont conçus régulièrement. Chacun ayant des avantages et des inconvénients.
Pour le Langage C :
Au travers de différents petits étapes, nous essaierons de faire passer les personnes apprenantes dans des situations dites d'ignorance, c'est à entendre comme faire face à des information et des concepts que ces personnes ne maîtrise pas encore.
Il s'agit avant d'écrire, de commettre des erreurs, de les corriger en réécrivant, d'être amené⋅e⋅s à chercher quelques compléments d'information par soi-même de temps en temps, de récrire et de lire les résultats donnée en sortie d'erreur tout au long du cycle de développement et aussi lors de la manipulation du programme conçu. Pour découvrir et apprendre.
Cette considération du concept de cycle de développement dans le Langage C est importante.
cc
), ou Compilatuer C Unix (cc
), ou C Borderland (bcc
) ou, Turbo C Borderland (tcc
)Clone or download
en vert à droite sous
contributors
, puis en allant sur
Download Zip
écrit en bleu
git clone https://github.com/zweed4u/Learning-C.git
Vous allez dans ce premières étapes probablement trouver plusieurs éléments qui viendront heurter ce que vous ne savez pas encore.
Des mots parfois vous donner l'impression de vous perdre.
Cela pourrait aussi être l'usage d'un compilateur et d'un terminal, ou de l'usage de #include stdio.h
dans le code source ou encore l'usage de ./
pour exécuter un programme.
Nous essayerons de vous aider à comprendre petites étapes par petites étapes.