Tout d'abord, une vérification est de rigueur. Suis-je dans le forum approprié ?
En effet, chaque forum est là pour traiter une catégorie précise de questions.
Les gens qui savent des choses sur le PHP par exemple traînent (voire glandent :p ) dans le forum PHP. Poster une question sur le PHP dans le forum programmation, c'est donc un bon moyen de poser la question là où les gens qui peuvent y répondre ne sont pas.
Les deux autres forums dans lesquels on expose souvent ses problèmes sont le forum Site Web et le forum Mapping. Leurs catégories sont strictes, mais attention !
Je prendrais ici deux exemples.
Vous avez un problème d'ASP (si vous ne savez pas ce que c'est que l'ASP, ce n'est pas grave et vous ne vous en porterez que mieux). Le seul langage dynamique proposé dans le forum Site web est le PHP. Pourtant, une telle question a bien sa place dans le forum PHP. Précisez seulement dans le titre de votre topic que c'est de l'ASP comme cela : "[ASP] Titre du topic".
Vous voulez apprendre le mapping FarCry. Pourtant les seules catégories du forum Mapping sont Hl1 et Hl². Je ne vous fais pas de dessin ;) , c'est quand même là qu'il faut aller. Pareil, vous mettrez comme titre "[FarCry] Titre du topic".
Vous remarquerez aussi que le forum programmation se divise en deux catégories.
Il semble donc que le forum programmation soit orienté langages de programmation. Cependant, la programmation c'est aussi plein d'autres choses, et si vous avez une question qui ne porte pas sur un langage précis (l'exemple le plus simple est "dans quel langage puis-je faire ceci / cela efficacement ?"), vous pouvez la poser :) . Cependant, il faut faire attention à rester dans le cadre strict de la Programmation.
En cas d'erreur
Il arrive qu'on se trompe de catégorie, voire de forum, quand on poste un topic.
Il y a deux protections contre ces erreurs embêtantes : la prévention : ne pas créer un topic en état d'ébriété :p , et la guérison.
Ne vous inquiétez pas, même s'ils ont l'air méchant comme ça, ils prennent très bien ce genre de demande.
De même, si vous voyez un topic qui n'est selon vous pas à la bonne place, vous pouvez aussi demander à un modérateur de le changer, cela aidera le posteur du topic à trouver le renseignement dont il a besoin.
Maintenant que je suis sûr d'être dans le bon forum, je peux poster ?
En effet, quand on a un problème, c'est souvent parce qu'il y a une raison ; comme on n'est pas plus bête que la moyenne des gens (enfin ça dépend des cas, hein :D ), d'autres personnes ont souvent le même problème que nous.
Trouver un topic déjà existant
Comment trouver le topic en question ? Il suffit d'utiliser la fonction Recherche du forum :). Celle-ci se trouve dans le bas du menu de gauche.
Le mieux pour avoir la réponse rapidement à la question, c'est de choisir la recherche avancée et de préciser que l'on ne veut une recherche que dans le forum programmation.
Si un topic existe effectivement
Il suffit dans ce cas de trouver le topic créé par cette personne pour prévenir qu'on a le même problème (et y apporter un complément d'information quand c'est possible - par exemple quand elle n'a pas lu ce magnifique tutoriel :-° ), et d'attendre des réponses.
Parfois même la réponse au problème a déjà été donnée !
Si aucun topic n'existe
Si vous n'avez trouvé aucun topic posant la même question que vous, il est maintenant temps de créer le vôtre.
Le titre, c'est l'information accessible sans un seul clic aux lecteurs du forum programmation. Il est donc très important de le soigner : un titre clair amène les lecteurs à cliquer dessus, à entrer dans votre topic, et une fois dedans, ils vont très probablement le lire. Par contre, si le titre est brouillon, il ne vont pas lire votre topic, donc tous les efforts de présentation que vous aurez faits seront inutiles.
Le mieux pour que les titres soient clairs, c'est d'adopter une convention. Voici la convention que je vous propose :
Citation : Convention pour les titres
Dans le titre principal : le nom du langage de programmation entre crochets (ou rien si cela ne concerne pas un langage précis), suivi d'une description générale et concise du programme qui vous propose problème.
Dans le titre secondaire : des précisions sur le problème lui-même, comme par exemple l'erreur donnée par le programme, ou le nom de la fonction qui vous pose problème.
Si vous savez dans lequel des deux vous programmez, mettez-le. En effet, certains bugs sont dus au fait que l'on utilise des structures C++ et C par exemple, et si vous ne nous dites pas que l'on fait du C, on verra juste un code C++ normal avec du C dedans. Si vous ne savez pas lequel des deux vous employez, on ne va pas en faire un fromage ;) , mettez [C/C++].
Voici un exemple de titre de topic qui me semble explicite :
Citation : Un titre de topic
[C] Lecture de deux nombres pour les additionner problème de scanf
Une fois que vous avez réfléchi à la formulation claire du titre, vous pouvez vous consacrer à l'écriture du message en lui-même.
Les informations sur l'environnement sont parfois utiles, mais elles sont facultatives. Si on les met en début de topic bien qu'elles soient moins importantes que "ce que vous voulez faire", c'est parce qu'en général, le lecteur se souvient mieux de ce qu'il a lu en dernier.
Vous pouvez déjà rappeler votre langage de programmation, ça ne fait pas de mal.
Ensuite, il peut être utile de préciser votre système d'exploitation.
Enfin, il est utile de préciser votre IDE. Si vous suivez le cours C/C++ il est précisé. Si vous ne savez pas ce que c'est, essayez de répondre à la place à la question suivante : avec quel programme faites-vous de la programmation ?
Ce que vous voulez faire
Vous devez expliquer à quoi sert le programme que vous êtes en train de faire, ou que vous vous apprêtez à faire.
Tout d'abord, faites une description générale, et ensuite précisez le type d'entrée attendue et la sortie attendue du programme.
Exemple
Citation : description
Je code actuellement une calculette. Pour l'instant je fais l'addition. Mon programme prend en entrée deux int (un par ligne), et donne en sortie un int qui est la somme des deux premiers.
Si vous ne connaissez pas l'entrée attendue et la sortie attendue de votre programme, c'est qu'il y a un problème. Vous devriez réfléchir à ce que vous êtes en train de faire.
Si c'est une fonction isolée dans un programme qui pose problème, vous devriez décrire votre programme en général (description + entrées/sorties), et ensuite décrire cette fonction :
Citation : autre description
Mon programme est une calculatrice. Il prend en entrée sur une même ligne un int (le premier terme), un char (l'opération) et encore un int (le deuxième terme). Par exemple "5 * 2". La fonction qui me pose problème est la fonction d'addition, qui prend en argument les deux int et retourne leur somme.
Le bug
Si le problème est un bug de votre code, à la compilation ou à l'exécution (chose qu'il vous faudra préciser), vous devez indiquer le message d'erreur qui vous est donné, et la manière dont il faut procéder pour reproduire ce bug.
Votre code
Si vous avez un bug dans votre code, il faut le montrer pour que l'on puisse le résoudre.
Peut-on savoir quelle quantité de code montrer ?
Si vous ne montrez pas assez de code (ou pas du tout), vous allez 9 fois sur 10 ne pas montrer la ligne où il y a le bug. Il n'y a rien de pire que quelqu'un qui montre des lignes juste en disant "ça plante".
Par contre, il faut aussi redouter l'effet inverse : si vous copiez-collez 450 lignes de code en nous disant "démerdez-vous pour trouver l'erreur", il est peu probable (les programmeurs sont paresseux, c'est bien connu :p ) que quelqu'un prenne la peine de la chercher.
Cependant, déterminer la taille exacte nécessaire est très difficile car on a souvent besoin de tout le bloc d'instructions dans lequel est l'erreur, et parfois des fonctions et des variables qui sont utilisées sans être déclarées dans ce bloc. De plus, quand vous débutez, il est très rare que vous sachiez localiser l'erreur. En général vous prenez la ligne indiquée dans le message d'erreur, et ce n'est pas du tout ça qui pose problème. ;)
Ce que l'on peut faire
Dans l'absolu, il est donc préférable d'insérer tout le code, mais il est alors nécessaire qu'il soit bien espacé, bien indenté, bien commenté, bien lisible, et plutôt court si possible. (Si vous ne connaissez pas ces notions de présentation du code, vous devriez vous documenter. Je vous propose un article de la Wikipédia qui a le malheur d'être en anglais.)
En effet, il arrive que le bug soit lié non pas au code, mais à l'extension employée.
La rédaction du message est un point qu'il ne faut pas négliger.
Voici quelques conseils :
jamais de SMS ;
relire avant de poster pour enlever les fautes d'orthographe ;
la politesse est toujours un plus ;
remercier, c'est cool.
J'insiste sur le second et le dernier point.
Se relire, c'est bien, ça enlève des fautes : un message non en SMS mais mal orthographié peut être extrêmement pénible à lire. En plus, ça vous fait faire des progrès en français (si c'est pas merveilleux, ça :lol: ).
Remercier les autres, c'est quelque chose selon moi de plus important que les "Bonjour" et "Merci par avance" dans le premier message. Ça permet de marquer clairement deux choses : la (les) personne(s) qu'on remercie a (ont) aidé, et le problème est résolu.
Ainsi, une personne ayant le même problème et qui passe deux semaines après sait que la solution donnée par untel(s) était bien la bonne.
Dans le cas (très improbable, si vous avez bien suivi tous mes conseils ;) ) où votre message resterait sans réponse, ne paniquez pas. Vous devez vous demander plusieurs choses.
Ai-je mis toutes les informations ?
La présentation est-elle rebutante ?
Depuis combien de temps ai-je créé mon topic ?
Si vous avez oublié des informations importantes, il est possible que personne ne puisse vous aider. Si vous remarquez un oubli, éditez votre message pour rajouter les informations.
Si l'écriture est trop affreuse, ou si par exemple vous avez écrit 30 lignes sans saut de ligne ni ponctuation, personne ne veut répondre. Dans ce cas-là, éditez votre topic en reprenant le style.
Si vous avez créé votre topic il y a 5 minutes, ce n'est pas la peine de s'affoler : c'est un forum, donc les réponses mettent souvent une heure, parfois plus pour arriver. Si jamais vous avez créé il y a plusieurs jours, et que votre topic n'est plus sur la première page, vérifiez que son contenu est nickel (éditez ce qui ne va pas). Vous pouvez poster un message "UP", pour le faire remonter en première page.
Attention cependant à ne pas en mettre trop : si vous UPpez deux-trois fois et que personne ne répond, il vous faudra vous résigner, et admettre que personne ne répondra. Pas la peine sans doute de UPper à nouveau, et pas la peine non plus de créer un nouveau topic.
Voici un petit résumé de ce qu'on a vu au cours de ce tutoriel.
Aller au bon endroit
Le bon forum
Et si ma question concernait plutôt les forums Site Web ou Mapping ?
Choisir la bonne catégorie
Je fais du C/C++ ou autre chose ?
Ne pas poser une question déjà posée
Avoir un titre clair
Citation : Convention pour les titres
Dans le titre principal : le nom du langage de programmation entre crochets (ou rien si cela ne concerne pas un langage précis), suivi d'une description générale et concise du programme qui vous pose problème
Dans le titre secondaire : des précisions sur le problème lui-même, comme par exemple l'erreur donnée par le programme, ou le nom de la fonction qui vous gêne
Donner les informations utiles
(Les informations facultatives sont entre parenthèses)
Langage (version)
(Système d'exploitation (distribution) (version))
(Outils de développement (version))
Ce que vous voudriez que votre programme fasse
Le message d'erreur / l'entrée qui fait tout foirer
Votre code
Voici en bonus un petit squelette zCode qui me semble permettre d'ordonner au mieux ces informations :
Bonjour,
<!-- cours résumé du titre -->
<titre1>Mon environnement de programmation</titre1>
<liste>
<puce><gras>Mon langage : </gras> ....</puce>
<puce><gras>Mon système d'exploitation :</gras> ....</puce>
<puce><gras>Mon IDE :</gras> ....</puce>
</liste>
<titre1>Mon programme</titre1>
<titre2>Ce qu'il doit faire</titre2>
<!-- un truc général sur ce que doit faire le programme, sans rentrer dans les détails du code -->
<titre2>L'implémentation que j'ai choisie</titre2>
<!-- vous expliquez la manière dont vous avez choisi de transcrire ce truc général en code informatique -->
<titre1>Mon bug</titre1>
<gras>Message d'erreur : </gras> .... <!-- OU --> <gras>L'effet du bug : </gras> ...
<titre1>Mon code</titre1>
<code type="mon_langage">.....(n'oubliez pas de changer le langage et d'enlever l'espace de < /code> )...< /code>
Merci par avance de votre aide
Si on vous répond, remercier
Citation : exemple de remerciement
Merci à victor et à rz0 pour cette aide précieuse ! Mon problème est maintenant résolu.
Voilà : avec ces informations, vous devriez être capables de formuler clairement votre problème. Vous pouvez être sûrs que votre chance de trouver la solution qui vous convient est maximisée par ce petit travail. :)
De plus, je pense qu'apprendre à bien formuler son problème est un grand pas vers l'étape suivante, apprendre à le résoudre. En fait, une fois que vous aurez appliqué plusieurs fois ce tuto, vous arrêterez quasiment de poser des questions pour répondre à celles des autres. À quoi je sers, moi, dans tout ça :euh: ?
P.-S. : si vous avez des remarques sur ce tuto, veuillez me les envoyer par MP ou sur ma boîte mail (rédaction, choses peu claires, fautes d'orthographe, autres conseils...);