Tuesday 13 January 2004, 18:08
Petit guide à l'usage du débutant rebuté
J'aurais pu appeler ce billet "Du bon usage des forums d'aide" (il est encore temps d'ailleurs), mais le titre actuel correspond plus à ce que je veux en faire. Ce guide s'adresse aux débutants dans le langage PHP, débutants qui souvent usent et abusent des forums d'aide comme ceux de phpapps, phpdebutant ou encore phpscripts-fr. Nous verrons donc quels démarches entreprendre, avant, pendant et après l'utilisation de ces forums, ainsi que les avantages et agréments que cela procurent pour vous les utilisateurs, mais aussi pour ceux qui prennent la peine de répondre à vos questions.
Prelude: ces gens qui vous répondent.
Pour bien apréhender ce guide, il est nécessaire d'avoir une vision pertinente des gens qui vous répondent sur les forums. Pour commencer, arrettons les de les appeller les gens, et voyons les plutôt comme des personnes individuelles, avec chacune une vie privée et une vie professionnelle. Ces personnes ont des centres d'interets, nottement la programmation, ce qui les a bien entendu ammenés à fréquenter les forums, mais à ce stade de l'histoire, il est important de faire un petit retour en arrière. Bien avant de pouvoir répondre à vos questions, ces personnes ont étées comme vous: des débutants. A l'époque où ils ont commencés, les forums d'aide étaient beaucoup moins développés qu'aujourd'hui, voir inexistants. Comment ces personnes sont-elles devenues aptes à répondre à vos questions ? Grâce aux démarches que nous allons voir tout au long de ce guide.
De plus, comme nous l'avons déjà dit, ces personnes ont toutes une vie privée, ainsi qu'une vie professionnelle. Ces personnes prennent de leur temps pour répondre à vos questions, temps qu'elles amputent soit à leur vie privée, soit à leur vie professionnelle, n'oubliez jamais cela.
Branle bas de combat ! Erreur en approche !
(oui je sais, c'est moisi comme titre)
Voilà, vous avez aligné vos premières lignes de codes, et vlatipa que PHP commence déjà à vous insulter. Première chose à faire: LIRE. On voit trop souvent sur les forums des questions du type:
Warning: mysql_connect(): Access denied for user: 'ash@localhost' (Using password: NO) in /usr/home/ash/public_html/error.php on line 2 sa veu dir koa
Passons sur le français déplorable (nous y reviendrons plus tard), et interressons nous au fond du post, dans lequel l'auteur nous demande la signification de l'erreur sus-cité. En lisant simplement (bien entendu, il faut comprendre l'anglais, nous reviendrons aussi sur ce sujet plus tard), on sait déjà que la connection mysql a échouée, que le nom d'utilisateur essayé est ash et qu'on n'a pas fourni de mot de passe pour la connection. C'est déjà pas mal non ?
Une fois ces informations glanées, si cela n'aiguille toujours pas sur la voie de la correction, le prochain recours est la documentation PHP. Outre le fait que c'est très certainement la meilleure documentation que j'ai eu le loisir de lire (nous reviendrons là dessus aussi), elle est extrémement utile. Revenons à nos moutons, l'erreur concerne la fonction mysql_connect, nous allons donc nous rendre à la page de documentation la concernant. Le site php.net à ceci de particulier qu'il utilise un système d'urls très ingénieux, permettant l'accès à toutes les pages de documentation par des raccourcis très pratiques. En général, une url du type http://fr.php.net/nom_de_la_fonction vous redirigera vers la page de manuel ad hoc. En l'occurence, http://fr.php.net/mysql_connect nous mène bien à la page de documentation de cette fonction. Voyons voir ce que nous y apprenons.
La structure générale de la documentation d'une fonction est la suivante:
- Nom de la fonction.
- Versions de PHP.
- Description coute.
- Synopsis.
- Description longue.
- Exemples.
- Notes des utilisateurs.
C'est une (très) bonne idée de lire intégralement (y compris les notes d'utilisateurs) les pages de documentation de chaque fonction que vous utilisez. On y apprend beaucoup de choses, toujours très interressantes. Bien, qu'aprenons nous présentement sur mysql_connect ? Le synopsis nous dit:
resource mysql_connect ( [string server [, string username [, string password [, bool new_link [, int client_flags]]]]])
Rebutant pour le débutant peut-être. Décortiquons tout cela. Le synopsis est composé, dans l'ordre:
- Du type de données renvoyées par la fonction.
- Du nom de la fonction.
- Des arguments de la fonction.
Les arguments sont donnés sous la forme type_de_données nom_de_la_variable. Un argument entre crochets est un argument optionel. Revenons en arrière et regardons le code qui a généré l'erreur que j'ai utilisé dans mon exemple de post:
<?php mysql_connect(); ?>
Ce code est correct syntaxiquement, et la fonction mysql_connect ne possède que des arguments optionels. Où se situe le problème ? Plus loins sur la page, on voit que mysql_connect() establishes a connection to a MySQL server. The following defaults are assumed for missing optional parameters: server = 'localhost:3306', username = name of the user that owns the server process and password = empty password., qui nous informe que les valeurs par défaut en l'absence d'arguments sont localhost:3306 pour le serveur, le nom de l'utilisateur du serveur web pour le login et un mot de passe vide pour le mot de passe. Ces paramètres sont pour la plupart du temps ineffectifs, ou alors c'est que votre serveur mysql est très mal configuré. Nous avons donc la source de l'erreur. Maintenant, on peut être en droit de se demander quel est notre nom d'utilisateur ainsi que notre mot de passe, mais cela dépasse le cadre de ce guide, qui n'est pas là pour vous expliquer comment vous connecter à votre base de données mysql :)
RESUME: Nous avons résolu ce problème sans l'aide de personne, à l'aide des outils suivants:
- Des yeux, pour lire
- Un peu d'anglais, pour comprendre
- Un peu de bon sens, pour penser à la documentation
- La documentation PHP, pour le reste
On remarque que trois des quatre outils utilisés font partie de vous-même.
L'anglais, un ami, le français aussi.
Et non pas un ennemi comme certains ont l'air de le penser. Si vous souhaitez progresser en programmation, et même en informatique, la pratique de l'anglais est obligatoire. La grande majorité des documentations ont pour langue d'origine l'anglais, rendant les versions anglaises de ces documentation plus à jour de facto. Vous n'y croyez pas ? Pourtant la version anglaise de la documentation PHP est plus à jour que la version française. On peut aussi remarquer que le nombre de sites anglophones traitant de PHP est bien plus conséquent que le nombre de sites francophone. Pour finir, les Notes d'utilisateurs sont majoritairement écrites en anglais, et rater ces notes, c'est rater la moitié de la documentation.
Le français et lui aussi important. Combien de messages sur les forums sont incompréhensibles grammaticalement, en style SMS, ou bourrés de fautes d'orthographe jusqu'à la substantifique moëlle ? Un grand nombre en tout cas. Ecrire en français correct présente plusieurs avantages, voici les deux principaux: c'est avant tout une marque de respect envers vos interlocuteurs. En prenant le temps et en faisant l'effort d'écrire en français correct, vous montrez à vos interlocuteurs que vous les respectez, c'est une forme de reconnaissance du travail fourni, et vos interlocuteurs n'en seront que plus aimables et enclins à vous répondre pertinemment. Deuxième avantage indéniable, votre problème est plus compréhensible s'il est décrit dans un français correct, c'est inéluctable.
Utiliser les outils adéquats.
Je connais des personnes (ok j'en fais partie) qui, quand ils n'ont rien de mieux à faire, lisent la documentation PHP, et avec plaisir encore (et en anglais of course). Bon bien sur, je ne vous dirais pas que c'est une condition sine qua non pour être bien vu sur les forums, après tout, chacun son trip. Ceci dit, parlons en de la documentation. Comme je le disais plus haut, la documentation PHP est une des meilleures du Net. N'hésitez pas à en user et à en abuser. Même si vous croyez connaître parfaitement la fonction qui vous pose question. La documentation doit-être votre premier réflexe en cas de problème. 90% des problèmes y trouvent leur solution.
Cela paraît idiot, mais n'hésitez pas à utiliser Google. N'hésitez même pas a googler sur les messages d'erreur ! Le plus souvent vous trouverez des résultats pertinents, répondant à votre problème.
Si après votre passage sur la documentation et sur Google vous n'avez toujours pas résolu votre problème, il reste une troisième source: les sites web parlant de PHP. Il existe très certainement (à moins que vous ne travailliez sur quelque chose d'exotique) un tutoriel, une astuce, un commentaire, quelque chose, qui parle de ce que vous êtes en train de faire.
Dernière solution, la recherche sur les forums. Dans 70% des cas, votre sujet à déjà été abordé. Une recherche sur les forums où vous comptez demander de l'aide s'impose. Cela peut vous donner soit des pistes, soit des solutions, soit rien du tout. Si vous trouvez une piste mais qu'elle ne mène à rien, vous pouvez demander plus d'explication sur le forum, en mentionnant le sujet où vous avez trouvé la piste. Cela montre que vous avez fait des efforts de recherche avant d'intervenir sur le forum.
RESUME: Nous avons donc quatre sources possibles de solutions avant d'intervenir directement sur un forum:
- La documentation PHP.
- Google.
- Des sites traitant de PHP.
- La fonction recherche des forums.
Le savoir vivre sur les forums.
Bon, vous avez cherché partout, impossible de trouver une solution à votre problème ou de réponse à votre question. Cela arrive, et heureusement, sinon les forums n'auraient plus qu'à fermer. Vous vous apprêttez donc à poster votre désarroi sur un forum, mais attention, il existe des règles à suivre. Il existe tout d'abord des règles tacites, valables sur l'immense majorité des forums, qui vous vaudront de vous faire bien voir, et qui encourageront les habitués du forum à vous répondre. Ces règles sont simples et pleines de bon sens.
- Ecrire dans un français correct.
- Dire bonjour, et merci.
- Etre poli et courtois.
- Choisir un sujet qui va bien. Les sujet du style au secours ! ou j'ai un problème aidez moi sont clairement à bannir.
- Exposer son problème le plus clairement possible. N'hésitez pas à re-écrire plusieurs fois votre message avant de le poster.
- Inclure le moins de code parasite possible. Vous devez cibler au mieux le code qui pose problème. En général, 10 lignes de codes maximum semblent être un bon compromis. Si vous devez absolument présenter une grande portion de code (pour présenter un contexte par exemple), utilisez les outils adéquats.
- Ne pas se croire plus important que les autres. Les sujet du style URGENT: aidez moi svp ou les mentions IMPORTANT etc, sont à bannir. Votre sujet est surement important pour vour, mais pour les autres, ce n'est qu'un post de plus dans le forum.
Respecter ces règles élémentaires, c'est augmenter vos chances d'avoir des réponses. Bien entendu, pour chaque forum où il existe une charte, la lecture et le respect de celle-ci s'imposent.
N'oubliez jamais que vous n'êtes pas chez vous sur un forum. Vous n'êtes même pas un invité: vous êtes venu de votre plein gré, vous devez respecter les règles qui s'appliquent.
Après la bataille.
Une fois votre problème résolu, n'oubliez pas de remercier les personnes qui vous ont aidé. N'hésitez pas non plus à décrire la technique qui vous a permis de résoudre le problème, un forum est un lieu d'échange, votre participation sera la bienvenue.
Conclusion
Apprendre un language de programmation n'est pas une mince affaire. Cela demande tu temps et de l'investissement. Demander de l'aide à tout va sur un forum n'est pas de l'investissement. Quelqu'un qui sait résoudre ses problèmes tout seul devient compétent, car il peut résoudre les nouveaux problèmes auxquels il est confronté. Quelqu'un qui ne sait pas résoudre ses problèmes tout seul ne sera jamais vraiment compétant: il dépendra toujours de quelqu'un pour l'aider.
12 comments
Ah ben voilà ce qu'il me fallait !! (notamment pour les liens ;p) En tout cas faudra que je me mette à fréquenter (= lire avant toute question ;p) les forums, que ce soit pour le php ou autre, j'ai une fâcheuse tendance à essayer de me dépatouiller toute seule sans doc ni rien, et ptin, keske je perds comme temps ! ;op
Ce billet est tout simplement magnifique.
Ah ben tiens... je l'avais zappé ce billet... à placarder dans tous les forums du compte m'sieur !!!
Chapeau l'artiste !!
Pour ce qui est des erreurs php et du fait qu'elles soient en anglais : http://www.nexen.net/erreurs/
Il suffit d'y rentrer son erreur pour en connaitre sa signification ;)
En tout cas, superbe billet !
Il devrait être présenté à tous les nouveaux arrivant sur un forum d'entraide :)
tu n'est pas un ghuy
Wunderbach ! Moi qui pratique assez peu les forums et qui n'utilise pas non plus le php, on se demande ce que je fous la. Et pourtant j'apprécie ce genre de pensées qui me feront réfléchir à 2 fois avant de poster sur un forum d'entraide. Merci Jeffrey
hannnnnnnnn comment il ecorche ton nom l'autre :)
Ce billet est un monument !
Je me joins aux autres pour applaudir des deux mains :)
J'ajouterais juste une chose concernant le langage SMS : Ca rend impossible les recherches faites en bon Français et ça aussi c'est pénible !
Euh, c'est peut-être un peu tard 4 ans après mais lire pertinament §"L'anglais, un ami, le français aussi." (au lieu de pertinemment) dans un billet parlant de correction du français ;p
Par ailleurs, "j'en fais partiE", parraît->paraît, apprettez->apprêtez, compétant->compétent
Mais bravo pour le billet, dont je suivrai religieusement les conseils :)
Cordialement,
Arthur
on se demande comment j'ai pu laisser passer des fautes aussi grosses :o merci en tout cas ;)
This post's comments feed