Skats

Datenschutzerklärung Letzten 7 Tage (Beiträge) Stichworte Fussball Tippspiel Sakniff Impressum
Zurück   Skats > Interessant & Kontrovers > Off-Topic
Registrieren Hilfe Benutzerliste Kalender


 
 
30. September 2002, 17:59   #1
Maggi
 
Benutzerbild von Maggi
 
Registriert seit: April 2002
Beiträge: 3.915
Psycho-Test für Programmierer

Zitat: "Dieser Test sagt Ihnen vielleicht mehr über Ihren Programmierstil als Sie es wünschen."

Dieser kurze Test kann Ihren Standort als Programmierer feststellen:

Eine Variable I (Definition: PL/1-DEC FIXED (2,0); COBOL-PIC 99 COMP-3) enthalte die Werte 1 oder 2. Erstellen Sie einen Code, der den Wert von I aendert. Enthaelt I den Wert 1, so wird er in 2 geaendert.


Code:
1. IF I = '2' THEN I = 1       2. if i = 2 then i = 1;
   ELSE I = 2;                    if i = 1 then i = 2;

3. IF I = 1 THEN GO TO         4. j = 2;
   SKIP;                          if i = 2 then j = 1;
   i = 1;                         i = j;
   go to done;
   skip: i = 2;
   done:

5. DCL switch label;           6. dcl onetwo (2);
   if i = 1 then switch one;      fixed binary (31);
   if i = 2 then switch two;      initial (2,1);
   go to switch;                  i = onetwo (i);
   one: i = 2;
        go to done;
   two: i = 1;
   done:

7. i = 3 - i                   8. i = i - ((i/2)*2) + 1

9. if I = 2                   10. if i = 1 then i = 2;
           then do;               else do;
            i = 1;                  if i > 2 then put list
            end                       ('i falsch, wird auf 1
           else do;                     gesetzt');
            i = 2;                  i = 1;
            ende;                 end;
Auswertung:

1. Absolventen eines Programmierkurses
Wahrscheinlich verstehen nur 10% der Absolventen von Programmierlehrgängen den Unterschied zwischen 2 und '2'. Es ist ein Geheimnis, wie man erfolgreich programmieren kann ohne ein so grundsätzliches Prinzip zu verstehen.
2. Programmier-Instruktor
Die Lösung ist ebenso falsch wie die vorhergehende. Es ist fraglich, wieviele Instruktoren irgendwelche bedeutenden Programme entworfen, codiert und getestet haben.
3. Erfahrener FORTRAN-Programmierer, der eben einen PL/1-Kurs absolviert hat
"Man kann einem alten Hund keine neue Tricks zeigen." Die Lösung ergibt ein angemessenes Resultat; mehr kann man dazu nicht sagen.
4. Assemblerprogrammierer, der den selben Kurs besucht hat
An sich ist die Lösung recht gut lesbar, aber nicht gerade sehr zielgerichtet und effizient; wahrscheinlich ein Resultat des PL/1-Trainings. Immerhin ist es bemerkenswert, daß die Lösung keinen sich selbst modifizierenden Code enthält.
5. Systemanalytiker
Diese Lösung beleuchtet eine Denkweise, in der es die Pflicht eines Systemanalytikers ist, ein Programm in einem Maße zu verkomplizieren, daß sogar ein guter Programmierer unfähig aussieht.
6. Informatiker
Wahrscheinlich die cleverste Lösung. Da sie jedoch nicht erläutert wird, haben normale Sterbliche einige Verständnisschwierigkeiten.
7. Mathematiker
Ähnlich wie die vorhergehende Lösung ist diese auch ziemlich elegant, aber ohne zusätzliche Erklärung nur schwer zu verstehen.
8. Auf Arbeitsplatz-Sicherung bedachter Programmierer
Dies ist eine sehr kunstvolle Lösung und natürlich wird sie auch nicht erläutert. Sie funktioniert tatsächlich, aber wie Lewis Carrol sagt: "Ich hätte dies sehr viel komplizierter machen koennen, sagte die rote Königin ungeheuer stolz."
9. Fan der strukturierten Programmierung
Man könnte dies als billige Polemik gegen STP bezeichnen. Zu viele diskutieren jedoch darüber, wieviele Spalten man einrücken müßte, anstatt die Technik richtig anzuwenden.
10. Guter Programmierer
Haben Sie bemerkt, daß keine der anderen Lösungen I daraufhin überprüft, ob I Werte außerhalb der angegebenen Grenzen enthält? Dies ist sehr gefährlich, trotzdem allgemein üblich. Unglücklicherweise helfen alle Programmiertechniken, trickreiche oder elegante Lösungen nicht, wenn I zu Beginn einen anderen Wert als 1 oder 2 enthält.
 
Antwort

  Skats > Interessant & Kontrovers > Off-Topic

Stichworte
psychotest




Alle Zeitangaben in WEZ +1. Es ist jetzt 22:55 Uhr.


Powered by vBulletin, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Online seit 23.1.2001 um 14:23 Uhr

Die hier aufgeführten Warenzeichen und Markennamen sind Eigentum des jeweiligen Herstellers.