realmagma

À propos de realmagma

Date de naissance : 04 avril

Envoyer un message

Biographie

Ma PeTiTe BiOgRaPhIe

Date de création: le 02/11/2011
Dernière modification: le 11/09/2012




Bonjour à tout le monde. Avant de me lancer dans une longue explication, je tiens à préciser que cette biographie est écrite sans aucune prétention, je suis un débutant en programmation comme la plupart d'entre vous.
Si vous avez cliqué sur ma biographie c'est que vous êtes curieux... ou que vous vous posez certaines interrogations. Cette biographie à deux vocations:
  • - La première c'est qu'elle me sert d'aide mémoire ! En effet, il est plus facile de se rappeler d'une notion (déjà acquise) au travers d'une biographie plutôt que sur une multitude de sites web avec XX onglets ouverts sur votre navigateur internet favoris.(On part du principe que cette notion est déjà acquise. Un trou de mémoire arrive à tout le monde.)

  • - La deuxième vocation est de se fixer "une ligne de conduite". Où en sommes nous, qu'est ce qu'il nous reste à apprendre ? Sommes-nous des programmeurs du dimanche ? Que cherchons nous ? Où allons nous ?
    Tant de questions subsistent encore. Si l'une de ces interrogations vous interpelles, lisez cette biographie.


Le partage de la connaissance est le piédestal de la compétence. (Celui-ci est de moi)



Le choix d'un langage


J'ai remarqué qu'une question revenait sans cesse sur les forums, une question où les trolls fusent de tous les côtés. "Quel est le meilleur (premier) langage de programmation pour débuter dans ce domaine ?"
Malgré ma maigre expérience, je vous expose ce que j'en pense. Je tiens à préciser que mon opinion n'engage que moi:

La réponse à cette question est "ça dépend". o_O Non je ne vais pas vous laisser comme ça en vous laissant réfléchir bêtement sur le "ça dépend". Je m'explique si vous le voulez bien.
Il faut tout dabord s'interroger sur ce qu'est la nature d'un langage de programmation. En fait, un langage de programmation fait le lien entre vous et votre ordinateur (Si si je vous assure). Il en existe des centaines. Certains langages sont plus adaptés que d'autres pour tel ou tel domaine ; c'est pourquoi il est impératif de se poser deux questions:

  • 1- Pourquoi vouloir apprendre un langage de programmation ?
  • Est-ce par curiosité, est-ce parce que vous voulez en apprendre plus sur les ordinateurs ou l'informatique en général ; ou bien par ce que vous voulez frimer devant vos collègues ou votre copine ?
  • 2- Qu'est ce que j'aimerai faire ?
  • Voudriez-vous créer vos propres sites internet ou bien aimeriez vous connaître/bidouiller votre système d'exploitation ? Les jeux vidéos actuels/anciens ne vous conviennent pas et vous aimeriez créer le votre ?


Ce sont des questions Ô combien essentielles lorsque l'on souhaite programmer. Après avoir réfléchi quelques instants, vous êtes prêt à chercher un langage qui vous conviendrait le mieux, c'est à dire un langage en accord avec votre objectif, et surtout que vous aimeriez pratiquer (ou devrais-je dire: aimeriez tapoter sur votre tout petit clavier déjà bien usé ;) )

Pour information, on distingue deux catégories de langage. Les langages dits de BAS niveau et les langages dits de HAUT niveau. Je vous laisse l'initiative de cliquer sur les liens ci-dessus.

Le sujet à déjà été abordé sur l'un des forums. Voici le lien. Je vous conseille d'y jeter un œil.




Le langage C



Apostille


Le langage C est un langage de bas niveau. Son apprentissage n'est pas spécialement compliqué, mais il est long et fastidieux. Souvent incompris, délaissé par les moins habiles, il forge la méthode de travail et de logique de celui qui en use, et permet de trouver la vérité de celui qui en abuse. Cette section est née dans le but de guider et d'apporter à celui qui utilise le langage C, les compétences nécessaires dans la compréhension d'un langage qui a permis à une multitude d'autres d’exister. Cette section lui est entièrement dédiée.


Il reste toujours quelque chose à apprendre... ou a approfondir


Une quantité innombrable de personnes arrêtent leur apprentissage d'un langage (en l’occurrence le langage C, mais cela vaut pour tous les autres langages) après avoir lu un cours magistral. NON, non et je le répète encore non ! Un cours magistral apporte juste les bases. Lorsque je dis les bases, pour chiffrer (à la louche) représente environ 10% de l'apprentissage du langage total.
En lisant et en apprenant par cœur un cours magistral, vous ne connaissez rien dudit langage. Il faut approfondir ses connaissances ; mais comment ?
  • Listez et tenez à jour une feuille de route (Listing, section suivante)
  • Pratiquez, pratiquez, pratiquez: Comme pour les leçons à l'école, si l'on ne pratique pas souvent, on perd des choses, parfois des concepts importants ! Faites des exercices, des projets personnels par exemple. Consultez les forums et essayer de résoudre les problèmes de ceux qui y postent. Cela vous fera progresser et cela peut même vous faire découvrir des notions que vous ignoriez jusqu'à présent.
  • Lisez et apprenez des tutoriels d'approfondissement sur plusieurs sites web et supports. (Format papier par exemple)
  • Testez des choses tout seul est bien plus efficace que de demander (de suite) de l'aide à d'autres membres. Expérimentez.
  • Consultez les FAQ
  • Consultez les biographies des membres sur les forums:



Listing des choses/notions/concepts à apprendre en plus des cours magistraux sur le langage C


Listing non exhaustif qui en plus est dans le désordre: (Merci informaticienzero)
  • Cours magistraux de plusieurs auteurs
  • Savez vous à quoi et comment s'utilisent tous les mots clef ?
  • Les différences entre un tableau et un pointeur
  • Les tableaux multidimensionnels
  • Le cast
  • La récursivité
  • Les X macros/utilisation avancée du préprocesseur
  • Les pointeurs sur fonctions
  • Tous les types de variables
  • Toutes les formes de main()
  • Lecture et écriture des fichiers en mode binaire
  • Les notions bas-niveau (masque de bits et opérations binaires)
  • Les normes C99 et C11
  • Le processus de la compilation
  • La représentation en mémoire
  • Les structures de données
  • Les identificateurs
  • TOUTES les différentes portées des variables
  • Les threads
  • Le réseau
  • Encore plein de choses...


Notions et concepts complexes


Beaucoup de débutants (dont moi même) confondent les pointeurs aux tableaux et aux chaînes de caractères. Il faut garder à l'esprit que chacune des ces trois notions sont différentes ; l'une n'est pas l'autre mais peut se comporter comme telle. Voici un petit aide mémoire:

  • Les pointeurs


Un pointeur est une variable comme une autre, seulement elle ne peut contenir qu'une adresse. Elle peut également afficher la valeur que contient ladite adresse.
Pour déclarer une variable comme étant un pointeur, on utilise le symbole étoile (*) devant son nom.
Pour afficher ou modifier la valeur sur laquelle pointe notre pointeur, on utilise également le symbole étoile (*) devant son nom.
Pour fournir l'adresse d'une variable à un pointeur, on utilise le symbole esperluette (&) devant le nom de la variable.

<secret>
/* On déclare une variable de style pointeur, qui ne peut recevoir seulement une adresse, 
celle d'une autre variable, qui doit obligatoirement être du type int. (Vu que l'on déclare notre pointeur 
sur un int)*/
int* pointeur = NULL;

/* On déclare une variable de type int, ayant une valeur-> 10*/
int ma_variable = 10;

/* On affecte à notre variable de type pointeur sur int (nommée en ligne n°4: 'pointeur') l'adresse d'une autre 
variable (nommée en ligne n°7 'ma_variable') en lui donnant son adresse avec le symbole esperluette (&) devant 
son nom*/
pointeur = &ma_variable;

/* Maintenant, notre variable 'pointeur' contient L'ADRESSE mémoire de la variable nommée 'ma_variable'.
Pour accéder ou modifier la valeur (donc 10) de 'ma_variable', (sans utiliser 'ma_variable) on recours
au symbole étoile (*) devant notre pointeur.*/
*pointeur = 11;

/*Maintenant on vérifie si la valeur de 'ma_variable' a changée.*/
printf("%d", ma_variable); /* Le résultat vaut: 11*/
printf("%d", *pointeur);   /* Le résultat vaut: 11*/

</secret>

En construction || En construction || En construction


Liens utiles





Topics sympathiques


De temps à autre, je retrouve des topics où les codes-sources sont assez intéressants.






En construction || En construction || En construction


TODO LIST:
Section "Notions et concepts complexes en langage C"
Tout le chapitre sur le langage Python
Tout le chapitre sur la création de jeu vidéo
Tout le chapitre sur le guide de survit de Linux, Ubuntu 12.4 LTS: "Les bugs face aux débutants".





Je vous remercie d'avoir pris le temps de lire ma biographie et peut être que l'on se reverra dans un des forums ou bien lors d'un de mes tutoriels, qui sait...

Information sur le compte

Date d'inscription : 26 septembre 2009

Dernière connexion : 24 avril 2019