Bienvenue sur PEBKAC.fr, le site qui recense les anecdotes où l’on se moque des utilisateurs ne maîtrisant pas l’outil informatique. PEBKAC est un acronyme signifiant « Problem Exists Between Keyboard And Chair ».
Le problème se situe entre la chaise et le clavier : soumettez vos histoires, donnez votre avis !
Ce site n'est pas le site original pebkac.fr. Je publie ici la liste des PEBKAC que j'ai pu sauvegarder avant que le site original ne soit mis hors ligne.
En école supérieure d'informatique, j'ai le plaisir "d'apprendre le langage C", que je connais déjà par auto-didactisme, et heureusement pour moi. Cependant, j'ai pu assister à quelques erreurs de mes professeurs :

- D'après eux, "Code::Blocks" est un compilateur (je lui ai fait remarquer que c'était GCC qui faisait office de compilateur, et que "Code::Blocks" n'était au fond qu'une interface, mais je cite : "On ne va pas jouer sur les mots").

- Nous apprenons bien évidemment le C89, avec ses limitations. C'est vrai quoi, ce n'est pas comme si une nouvelle norme du langage C était sortie ces 23 dernières années.

- Il faut toujours utiliser "fflush(stdin);" après une entrée clavier. Pas mal pour des programmes dits "ANSI".

- Et pour finir en beauté, "else if" est une pratique à proscrire, pour son équivalent "bien plus lisible" d'un nouveau bloc "if" dans le précédent bloc "else".

Non mais je vous jure... PEBKAC.
PEBKAC #6094 proposé par Lynix le 08/11/2012 | 47 commentaires | 👍🏽 👎🏽 +283
Pas mal, mais dans une certaine fac du sud ouest, j'ai eu également un prof de C du même tonneau. Entre autres:
- "pour faire une variable d'indice de tableau, n utilisez pas "i" car c est peu compréhensible. Utilisez "ind""
- "n utilisez pas "variable++:" (en instruction seule, pas au milieu d'autre fonction evidemment) car vous allez vous tromper. utilisez plutot "variable = variable + 1;""

**PAN**
Commentaire #65122 écrit par Arnaud le 08/11/2012 à 17h47 | 👍🏽 👎🏽
Concernant fflush(stdin), je suis partagée : pour des raisons pédagogiques, on peut tout à fait choisir d'éviter ce genre de sujet "épineux" pour enseigner les bases. Inutile d'embrouiller les élèves débutants avec des considérations de ce genre. Par la suite, bien sûr, il faudra clarifier et expliquer aux élèves que ce n'est pas la bonne pratique.

Pour le reste, je valide le PEBKAC
Commentaire #65123 écrit par Emi le 08/11/2012 à 17h48 | 👍🏽 👎🏽
Code::Blocks est un compilateur : mouais, même si sur un sens strict il a tort, c'est un IDE qui permet la compilation, demi pebkac.

Par contre la pratique du else{ if(){ permet de générer le pebkac d'hier :

}}}}}}}}}}}}} // fermeture des 42 else précedents
Commentaire #65124 écrit par Link le 08/11/2012 à 17h48 | 👍🏽 👎🏽
D'où sortent-ils ces gens ?
Le pire c'est qu'il y en a des plus compétents qui cherchent du boulot.
Commentaire #65128 écrit par but2ene le 08/11/2012 à 18h00 | 👍🏽 👎🏽
Justement, autant ne pas donner de mauvaises habitudes aux gens dès le départ.

L'idéal serait des fonctions int lireEntier(void), char lireCharactere(void) fournis par les profs et qui s'occuperaient de tout.

Après vu le niveau de compétence apparent des profs, faut pas compter dessus.

Par contre, histoire de pas embrouiller les débutants, autant en rester au C89 pour l'instant. Quitte à compléter avec C99 et C11 ensuite.
Commentaire #65129 écrit par DMR le 08/11/2012 à 18h02 | 👍🏽 👎🏽
Je peux comprendre qu'on enseigne le C89, ça reste quand même la version la plus courante en entreprise. Et un programmeur C89 n'aura aucun problème à bosser en C99 ou C11 alors que le contraire va vachement l'emmerder. C'est donc défendable.

Le fflush(STDIN), c'est peut-être pour éviter les questions difficiles au début. Le premier mois, on utilisait scanf() sans comprendre les pointeurs, le buffering ni toutes les saloperies que cette fonction amène. Après, on a compris pourquoi c'était dangereux et on a fait autrement pour les saisies utilisateur.

Par contre, je valide le else if.
Commentaire #65130 écrit par Eric le 08/11/2012 à 18h07 | 👍🏽 👎🏽
Ils n'ont probablement jamais mis les pieds dans une entreprise;
Commentaire #65135 écrit par hr0 le 08/11/2012 à 18h16 | 👍🏽 👎🏽
L'élève qui en sait plus que le prof. Ca me rappelle la VDM de l'élève qui avait écrit une page wikipédia que le prof avait pompé en guise de cours.
Commentaire #65137 écrit par qwerty le 08/11/2012 à 18h23 | 👍🏽 👎🏽
Question bête quel est l'intérêt de fflush(STDIN) qui n'a pas de comportement définit ?
Surtout d'apprendre au debut de très mauvaises habitudes.
Commentaire #65138 écrit par but2ene le 08/11/2012 à 18h23 | 👍🏽 👎🏽
Pas besoin de mettre les pieds dans une entreprise pour savoir coder.
Commentaire #65140 écrit par but2ene le 08/11/2012 à 18h25 | 👍🏽 👎🏽
C'est sur VDM ça ? Moi je l'avais vu sur DTC.
http://danstonchat.com/13851.html
Commentaire #65149 écrit par Banon le 08/11/2012 à 19h24 | 👍🏽 👎🏽
Le premier, je l'ai déjà entendu, c'est purement syntaxique,conventionnel (j'adhère pas perso, mais ce n'est pas une faute au niveau technique)

Par contre le deuxième, à ce que j'ai entendu, ces raccourcis (à savoir variable++ => variable = variable + 1) avaient été crées dans un tout autre contexte, il y a longtemps (le mec tapait son programme sur une machine à distance, et le réseau ne passait pas forcément bien, d'où l'intérêt d'économiser les caractères. Corrigez-moi si je me trompe, j'ai entendu cela y'a un moment). Autrement le coup de "vous allez vous tromper", je comprends pas trop par contre...
Commentaire #65150 écrit par Sonny le 08/11/2012 à 19h25 | 👍🏽 👎🏽
Peut-être un enseignant chercheur, dont ce n'est pas son domaine précis?
Commentaire #65152 écrit par Sonny le 08/11/2012 à 19h26 | 👍🏽 👎🏽
Comme on dit: quand on connais pas son boulot, on l'enseigne ;) (la réciproque n'est pas forcément vrai, je le précise quand même)
Commentaire #65153 écrit par Vordano le 08/11/2012 à 19h27 | 👍🏽 👎🏽
Coder en C n'est pas un domaine de recherche ...
Commentaire #65155 écrit par but2ene le 08/11/2012 à 19h39 | 👍🏽 👎🏽
Je ne pense pas que tu fasses en excellent prof de Français XD.
CQFD.
Commentaire #65157 écrit par but2ene le 08/11/2012 à 19h43 | 👍🏽 👎🏽
Pour le premier, entre sa première moitié est classique en effet. Le souci c'est la deuxième moitié, qui devrait être "utiliser une variable dont le nom correspond à ce que l'on parcourt"

Pour le deuxième je n'en sais fichtrement rien, pour moi les instructions sont totalement équivalentes après compilation, mais peut-être qu'à des âges reculés cela permettait d'utiliser l'instruction assembleur INC plutôt qu'un ADD, ce qui doit être plus efficient. Peut-être aussi que je dis n'importe quoi.
Commentaire #65161 écrit par Noraa le 08/11/2012 à 20h50 | 👍🏽 👎🏽
Ils sortent d'il y a 20 ans. Non, ils y sont toujours, c'est bien ça le problème...
Commentaire #65163 écrit par Noraa le 08/11/2012 à 21h00 | 👍🏽 👎🏽
Mais en fait, mes profs sont plus que compétents alors, à de rares exceptions près...

Parce que si même moi, qui galère encore à faire un bête programme utilisant le multithreading, je vois les erreurs, c'est que j'ai du être plutôt bien formé, non ?
Commentaire #65164 écrit par Till Gray le 08/11/2012 à 21h03 | 👍🏽 👎🏽
Les cours de première année et souvent de seconde année sont vécue par les profs comme des corvées. EN général c'est celui qui a perdu à la courte paille qui y va même si ce n'est pas son domaine de compétence. Quand j'étais en DEUG 1 (ça remonte) on avait des TP en CamL le prof n'avait jamais touché au langage.
Commentaire #65167 écrit par Plop le 08/11/2012 à 21h33 | 👍🏽 👎🏽
Sauf que là c'est au moins la 3 ieme année après le bac.
Commentaire #65169 écrit par but2ene le 08/11/2012 à 21h53 | 👍🏽 👎🏽
Pour ne pas utiliser i comme variable, ça peut se comprendre. Quand on utilise des langages de calcul numérique (quand on travaille sur Matlab, ou encore mieux sur Octave), i est utilisé uniquement pour les nombres complexes.
C'est donc peut-être un vieux réflexe hérité d'autres langages.
M'enfin, pour ne pas s'adapter au langage qu'il utilise, PEBKAC à ton prof.
Commentaire #65171 écrit par Me le 08/11/2012 à 22h09 | 👍🏽 👎🏽
En parlant de cela, français sans majuscule ;).
Et 'un excellent prof'...
Commentaire #65180 écrit par Astalaseven le 08/11/2012 à 22h59 | 👍🏽 👎🏽
Pas vraiment un PEBKAC à proprement parler.
Commentaire #65186 écrit par Grincheux. le 08/11/2012 à 23h24 | 👍🏽 👎🏽
Ecole 2 ans -> de prépa avant.
Commentaire #65187 écrit par but2ene le 08/11/2012 à 23h58 | 👍🏽 👎🏽
Moi non plus ;)
Commentaire #65188 écrit par but2ene le 09/11/2012 à 00h00 | 👍🏽 👎🏽
Le MT, c'est bien plus complexe comme sujet que "Code blockzs est il un compilateur"...
Commentaire #65193 écrit par palu le 09/11/2012 à 02h18 | 👍🏽 👎🏽
Bah... il n'avait pas mis de majuscule à « Français », juste une capitale.

/
Commentaire #65198 écrit par slash le 09/11/2012 à 08h33 | 👍🏽 👎🏽
J'aurais dû aller dormir à cette heure-là.
Commentaire #65212 écrit par but2ene le 09/11/2012 à 09h00 | 👍🏽 👎🏽
moi je mets « variable += 1 » la plupart du temps. ça se lit plus vite je trouve. (enfin, je veux dire que le cerveau n'a pas a traduire l'incrementation en addition de un, on sait de suite qu'il s'agît d'augmenter de un).

Ma vie..
Commentaire #65250 écrit par niahoo le 09/11/2012 à 10h29 | 👍🏽 👎🏽
Bah, c'est dans les deux. Je crois que l'un à pomper sur l'autre.
Commentaire #65259 écrit par qwerty le 09/11/2012 à 10h37 | 👍🏽 👎🏽
Ne serait-ce que pour le coup du "else { if { ..." , si quand même !
Commentaire #65266 écrit par Yorgl le 09/11/2012 à 10h46 | 👍🏽 👎🏽
@but2ene : Pas forcément, mon école était en 5 ans après le bac et commençait la programmation dès la première année (en ADA, les cours de C commençaient en deuxième année). Bon maintenant ça a changé, la CTI est venue mettre son nez dans la gestion de l'école et a exigé qu'elle devienne comme les autres, cycle prépa intégrée en 2 ans puis 3 ans dans le département choisi.
Commentaire #65267 écrit par Acorah le 09/11/2012 à 10h49 | 👍🏽 👎🏽
Les baffes, elles, ne sont pas limitées. *SPAF*
Commentaire #65286 écrit par ROB le 09/11/2012 à 12h11 | 👍🏽 👎🏽
Effectivement. Après, vu qu'il y a pas la date des quotes sur DTC on peut pas trop savoir. Mais je pense plus que l'original est sur DTC, à moins que le mec n'ait inventé une conversation inutile avant...
http://www.viedemerde.fr/travail/7224295
Commentaire #65294 écrit par Banon le 09/11/2012 à 12h55 | 👍🏽 👎🏽
J'ai un programme pour pas que tu te fatigue trop à force rob:

int i = 0;
if (
présence( "else ( if" ; string ( du programme) )==true
) {
for (k=0; k < exponentielle(nb); k++)
{return: "*SPAF*";}
i++;
}
Commentaire #65334 écrit par Le gnome le 09/11/2012 à 16h15 | 👍🏽 👎🏽
mes excuses,
il faut lire exponentielle(i) et pas exponentielle (nb).
(référence à un pebkac tout récent: parce que mettre une variable 'i' c'est pas bien ...)
Commentaire #65336 écrit par Le gnome le 09/11/2012 à 16h17 | 👍🏽 👎🏽
sinon c'est quoi l'école ?
Commentaire #65362 écrit par X3N le 09/11/2012 à 18h50 | 👍🏽 👎🏽
Coder [certaines choses] en C peut être un domaine de recherche. Et la recherche en informatique existe aussi.

Par contre, ça pourrait aussi être un chercheur dans un domaine qui n'a rien à voir, mais qui a des connaissances du C/qui en utilise de temps en temps.
Commentaire #65393 écrit par Loki le 09/11/2012 à 22h50 | 👍🏽 👎🏽
but2ene => Il est chose courante qu'un enseignant chercheur en informatique enseigne la programmation, j'ai des tas d'exemples sous le coude (après y'en a qui ont plus ou moins cherché à approfondir le cours pour l'enseigner, c'est vrai)
Commentaire #65551 écrit par Sonny le 11/11/2012 à 12h37 | 👍🏽 👎🏽
Concernant le "else if", il a pas tord dans un sens...

l'instruction "else if" n'existe pas en "c" (pas comme le "elsif" d'ada en tout cas).

On peut écrire "else if(cond)", mais le compilo l'interpète comme:
else {
if(cond) {
...
}
}

Ou alors j'ai pas compris la dernière remarque :(
Commentaire #65999 écrit par plop le 14/11/2012 à 23h29 | 👍🏽 👎🏽
Inpres à Seraing, Belgique.

(Désolé de la réponse tardive, je viens seulement de voir qu'il avait été publié).
Commentaire #82000 écrit par Lynix le 05/03/2013 à 23h37 | 👍🏽 👎🏽
Je n'ai jamais dit que "else if" était une instruction, mais que mon professeur n'aimait pas ce raccourci.
Commentaire #82002 écrit par Lynix le 05/03/2013 à 23h38 | 👍🏽 👎🏽
Et près de cinq mois après ce PEBKAC, j'ai eu droit à :

1) Raté mon examen de C, pour avoir utilisé des variables de type "int" à la place de variable de type "short", mon prof croyant dur comme fer que cela économise de la mémoire, allez lui expliquer le concept de pile ...

2) Interdiction d'utiliser des break/continue ou plusieurs return dans une fonction

3) Nous avons du écrire un puissance 4 avec possibilité de se battre contre l'ordinateur il y a un mois, plusieurs de mes camarades m'ont dit que c'était sans doute la meilleure "IA" de toutes. Cela n'a pas empêché ma prof de me mettre un zéro, pour quelle raison ? Celle-ci :
J'ai utilisé une structure contenant mon jeu (Le tableau représentant la grille du jeu, le nombre de jetons joués, ...), que je passais à mes fonctions via un pointeur constant ou non (Selon la fonction).
Bref, une simulation de POO en C, ma prof expliquant ma note par "Vous savez que ce n'est pas ce que je veux", dans la mesure où les structures ont étés enseignées au cours théorique avant de devoir faire le puissance 4, non je ne sais pas...

4) Nous avons étés interdits d'indices pendant près de quatre-cinq mois, dans le but d'apprendre et comprendre les pointeurs, alors oui ça peut être bien pour apprendre leur fonctionnement, mais peut-être faudrait-il avoir appris à maîtriser les indices avant car maintenant que les indices sont de nouveau autorisés, plus personne ne sait comment s'en servir ...

Bref, ça mériterait bien que je refasse un PEBKAC tout ça ...
Commentaire #82004 écrit par Lynix le 05/03/2013 à 23h55 | 👍🏽 👎🏽
Alors pour Christophe Lambert :
Je suis une fille et je suis aussi dans l'informatique. Tu n'as jamais eu de prof d'informatique toi ?
Dans mon école (supérieure), plus de la moitié des enseignants sont en fait des enseignantes. On n'est plus à l'âge de pierre. On peut faire la cuisine ou bien on peut aussi tout à fait coder voir faire les deux et bien le faire.
Défendre un troll avec une remarque sexiste ce n'est pas de la rage ça ?
Ah oui c'est vrai que les quelques commentaires précédents sont extrêmement polis et pertinents...
Commentaire #82301 écrit par Ayara le 07/03/2013 à 08h34 | 👍🏽 👎🏽
Et en plus, le C89 demande un peu plus de rigueur, qui manque cruellement à certains étudiants pour développer...
Commentaire #96211 écrit par Garf365 le 11/06/2013 à 10h38 | 👍🏽 👎🏽
Concernant le point 2, beaucoup d'entreprise l'interdise, pour des questions de lisibilité/prédictibilité du code... après, syntaxiquement parlant, c'est pas faux....
par contre,² sanctionner un élève pour ça je trouve ça abusé
Commentaire #96214 écrit par Garf365 le 11/06/2013 à 10h41 | 👍🏽 👎🏽