Wurde „Nicht jeder kann Programmierer sein“ untersucht?

182

Ein altes Sprichwort, an das sich viele Programmierer halten, lautet: "Es erfordert einen bestimmten Verstand, das Programmieren zu lernen, und nicht jeder kann es."

Jetzt bin ich sicher, dass wir alle unsere eigenen anekdotischen Beweise haben, aber wurde dies wissenschaftlich untersucht?

System aus
quelle
63
Klingt nach einer guten Skeptikerfrage.
Chad Harrison
10
Das Erlernen des Programmierens unterscheidet sich stark von der Fähigkeit, ein wertvoller Programmierer zu sein. Die Programmierung ist zum größten Teil sehr einfach. Spezifikation lesen, entsprechend implementieren. Prüfung. Wiederholen. Ja, jeder kann Programmierer sein. Nicht jeder kann ein wertvoller Programmierer sein. Insbesondere bestimmte Aufgaben erfordern viel mehr Nachdenken und Experimentieren als andere. Solche Dinge sind am besten für Leute, die es wirklich genießen, es zu tun. Ein Beispiel könnte das Implementieren von Konstrukten auf niedriger Ebene, das Zählen von Taktzyklen, Bits und Bytes ohne moderne Programmiertools oder irgendetwas sein. Das kann nicht jeder.
zxcdw
9
@zxcdw - Ich frage nicht wirklich "Nicht jeder kann ein guter / wertvoller Programmierer sein". Das ist eine Selbstverständlichkeit, denn "Nicht jeder kann ein gutes / wertvolles X sein" ist eine universelle Wahrheit für fast jeden Wert von X als Berufung. Was ich in Frage stelle, ist die Fähigkeit , Programmieren zu lernen und den Kopf für die gewöhnliche Person darum zu wickeln.
System Down
37
Das Sprichwort trifft jeden Tag auf Programmers <sigh>
yannis
15
Ich denke, bei dieser Frage geht es nicht um die Qualität von Programmierern, sondern vielmehr darum, "ob jeder geschult werden kann, ein Problem aufzugreifen und eine logisch korrekte Lösung in einer nichtmenschlichen Sprache zu finden", was meiner Meinung nach manchmal nicht der Fall ist etwas, das jeder kann. Die Konzepte des Entwurfs von Logik, um das substanzlose Verhalten einer nicht-menschlichen Maschine zu diktieren, sind extrem abstrakt. Diese Abstraktionsebene erfordert, dass man in der Lage ist, viele logische Indirektionen mental zu befolgen, da man die Produkte der einzelnen nicht berühren kann Schritt mit den Händen.
Jimmy Hoffa

Antworten:

87

Eine andere Studie, Untersuchung der Lebensfähigkeit von mentalen Modellen, die von unerfahrenen Programmierern gehalten werden :

In diesem Artikel wird eine Untersuchung zur Lebensfähigkeit von mentalen Modellen beschrieben, die von unerfahrenen Programmierern am Ende eines Java-Programmierkurses im ersten Jahr verwendet wurden. Die qualitativen Befunde identifizieren die Bandbreite der von den Teilnehmern gehaltenen mentalen Wert- und Referenzmodelle. Die quantitative Analyse zeigt, dass ungefähr ein Drittel der Schüler über ein nicht tragfähiges mentales Modell der Wertzuweisung verfügte und nur 17% der Schüler über ein tragfähiges mentales Modell der Referenzzuweisung verfügten. Im Vergleich zwischen den mentalen Modellen der Teilnehmer und ihrer Leistung bei der Bewertung der Kurse und der Abschlussprüfung wurde außerdem festgestellt, dass Schüler mit überlebensfähigen mentalen Modellen signifikant besser abschnitten als Schüler mit nicht überlebensfähigen Modellen. Diese Ergebnisse werden verwendet, um einen "konstruktivistischeren" Vorschlag zu machen.

Siehe auch spätere Forschungen von denselben Autoren der Studie Sheep vs Goats (die, um genau zu sein, nie veröffentlicht wurde). Ihre letzte und jüngste Studie zu diesem Thema aus dem Jahr 2009 ist eine Meta-Analyse der Auswirkungen von Konsistenz auf den Erfolg beim frühen Erlernen der Programmierung (pdf).

Es wurde ein Test entworfen, der anscheinend das Wissen eines Studenten über Aufgabenstellung und Reihenfolge vor einem ersten Programmierkurs überprüfte, aber tatsächlich darauf abzielte, seine Argumentationsstrategien zu erfassen. In einem Experiment wurden zwei unterschiedliche Schülergruppen ermittelt: Eine konnte ein mentales Modell für die Programmausführung aufbauen und konsequent anwenden. der andere schien entweder nicht in der Lage zu sein, ein Modell zu erstellen oder konsequent anzuwenden. Die erste Gruppe schnitt am Ende des Kurses sehr viel besser ab als die zweite in Bezug auf Erfolg oder Misserfolg. Der Test sagt die Leistungsniveaus nicht sehr genau voraus, aber indem wir das Ergebnis von sechs Wiederholungen des Experiments, fünf in Großbritannien und eine in Australien, kombinieren, zeigen wir, dass Konsistenz einen starken Einfluss auf den Erfolg beim frühen Lernen zum Programmieren hat - aber Hintergrundprogrammiererfahrung auf der anderen Seite,

Jeff Atwood
quelle
24
"... im ersten Jahr Java-Programmierkurs ..." <- Ich habe Ihr Problem gefunden.
Jon Galloway
4
Bornat diskutiert über das Zurückziehen des Originalpapiers hinaus Versuche, das Ergebnis von 2009 zu reproduzieren - für mich scheinen sie nicht ermutigend: eis.mdx.ac.uk/staffpages/r_bornat/papers/…
Blaisorblade
6
Wie oben erwähnt, wurde die Originalarbeit darüber zurückgezogen: retractionwatch.com/2014/07/18/…
Spongeboy
92

Ja, es gibt eine ziemlich berühmte Online-Zeitung, die mehr oder weniger bestimmen soll, wer ein Programmierer sein soll.

Eine kognitive Studie zum frühen Lernen des Programmierens - Prof. Richard Bornat, Dr. Ray Adams

Alle Programmierlehrer stellen fest, dass ihre Ergebnisse einen doppelten Buckel aufweisen. Es ist, als gäbe es zwei Bevölkerungsgruppen: diejenigen, die [programmieren] können und diejenigen, die [nicht programmieren] können, jede mit ihrer eigenen unabhängigen Glockenkurve.

Fast alle Forschungen zum Programmieren von Lehren und Lernen haben sich auf das Lehren konzentriert: Ändern der Sprache, Ändern des Anwendungsbereichs, Verwenden einer IDE und Arbeiten an der Motivation. Nichts davon funktioniert und der doppelte Buckel bleibt bestehen.

Wir haben einen Test, der die Bevölkerung, die programmieren kann, vor Kursbeginn heraussucht. Wir können den Doppelhöcker auseinander nehmen. Sie glauben das wahrscheinlich nicht, aber Sie werden es tun, wenn Sie das Gespräch hören. Wir wissen nicht genau, wie / warum es funktioniert, aber wir haben einige gute Theorien.


Hier ist ein Blog-Beitrag von Jeff Atwood , der die Ergebnisse interpretiert und einige Dinge in einen Kontext stellt.

Trotz der enormen Veränderungen, die seit der Erfindung des elektronischen Rechners in den 1950er Jahren stattgefunden haben, bleiben einige Dinge hartnäckig gleich. Insbesondere können die meisten Menschen das Programmieren nicht lernen: Zwischen 30% und 60% aller Studienanfänger in der Universitätsinformatik schlagen den ersten Programmierkurs fehl.

Erfahrene Lehrer sind müde, merken dies aber nie. Aufrichtige Anfänger, die glauben, dass die Alten es falsch gemacht haben müssen, lernen die Wahrheit aus bitterer Erfahrung; Und so ist es seit fast zwei Generationen, seit das Thema in den 1960er Jahren begann.

sergserg
quelle
46
Um fair zu sein - diese Studie belegt, dass 30-60% der Schuleinnahmen keine Arbeit verrichten dürfen. Das war in allen Fächern und zu jeder Zeit so!
Martin Beckett
15
Dies ist ein sehr interessantes Papier, und es unterstützt die Idee, dass nicht jeder für das Programm zugeschnitten ist. Leider zeigt die spätere Arbeit der Autoren (auch auf der verlinkten Seite), dass ihr Test weniger aussagekräftig ist als ursprünglich angenommen. "Wir können nicht behaupten, die programmierenden Ziegen von den nicht programmierenden Schafen zu trennen ... Es ist bedauerlich, dass das Ergebnis nicht dem ursprünglichen Versprechen entspricht, aber die Tür für unsere Erkundungen noch nicht ganz geschlossen hat."
AShelly
26
Um klar zu sein, das erste Papier von 2006 war nur ein Entwurf und wurde nie veröffentlicht. Es ist also nicht genau wissenschaftlich überprüft. Vielleicht ist es besser, sich die späteren Studien auf der Seite des Autors anzuschauen .
Jeff Atwood
17
Erfolg in einem akademischen Kurs zu untersuchen, ist eine seltsame Art, das Phänomen zu untersuchen. Erstens sind Vorlesungen wahrscheinlich die am wenigsten geeignete Methode, um Programmieren zu lehren. Zweitens lernt nicht jeder (gut) aus Vorträgen. Das ist zu viel Voreingenommenheit für mich.
Raphael
5
Prof. Bornat machte sich später die Mühe, diesen Entwurf freiwillig zurückzuziehen, weil er seinerzeit psychische Probleme hatte. eis.mdx.ac.uk/staffpages/r_bornat/papers/… Außerdem ist meine Lektüre von Sec. 3 ist, dass andere das Ergebnis nicht reproduzierten - wie sie sagen, wird sogar die Schlussfolgerung der Metaanalyse von 2009 "zumindest durch das kulturelle Umfeld und die Bildungspraktiken beeinflusst ". Insgesamt bin ich der Meinung, dass der Kurs schlecht war, was nicht verwunderlich ist, da "wie man Programmieren effektiv lehrt" ein Forschungsproblem ist.
Blaisorblade
33

Jeder kann Programmierer sein. Überlegen Sie, wie einfach es ist, Tabellen zu erfassen. Überlegen Sie, wie leicht Alan Kay Kindern das Programmieren anhand von Experimenten und Erkundungen in einer programmierbaren Umgebung näher bringt.

Die Teilnehmer können in Kursen auf College-Ebene erfolgreich studieren und zu dem Schluss kommen, dass "einige Teilnehmer nicht in der Lage sind, Programmieren zu lernen". Eine solche Schlussfolgerung überschreitet jedoch die Grenzen der beobachteten Beweise erheblich. Wie viel Fehler könnte stattdessen darauf zurückgeführt werden, wie die Programmierung vermittelt wird (zu abstrakt?) Oder welcher Programmierstil vermittelt wird (zu zwingend?) Oder auf die Programmierumgebung (Zusammenstellung, keine unmittelbare Rückmeldung?).

Es versteht sich von selbst, dass Menschen Abstraktionen am schnellsten erfassen, nachdem sie bereits mit mehreren konkreten Instanzen gearbeitet haben - dh dass wir etwas erst lernen können, wenn wir es fast schon wissen. Mit der Zusammenfassung zu beginnen, ist daher eine völlig dumme Art, Programmierung zu lehren. Viele Menschen, die über vorgefasste "mentale Modelle" stolpern, würden gedeihen, wenn sie in einer konkreteren Umgebung mit Echtzeit-Feedback unterrichtet würden (z. B. in der Kahn-Akademie für CS ) und dann ermutigt würden, die Leiter der Abstraktion zu erklimmen, wenn sie dazu bereit sind. Learnable Programming ist ein neuer Aufsatz von Bret Victor, der auf unnötige Umweltprobleme aufmerksam macht, mit denen Programmierer beim Lernen konfrontiert sind.

In einigen Fällen sind es die Schüler, die ihren Unterricht nicht bestehen. Intellektuelle Faulheit und vorsätzliche Ignoranz wird in jeder großen Gruppe von Menschen existieren. Kluge Köpfe sind keine Ausnahme, wie jeder bezeugen kann, der mit einer brillanten Kurbel argumentiert hat. Vor allem in den Bereichen Programmierung und Mathematik scheitern die Schüler jedoch häufig am Unterricht.

dmbarbour
quelle
7
Ich denke, dass so gut wie jeder das rudimentäre Codieren lernen kann, genauso wie er grundlegende Musik lernen kann. Davon zu leben, ist jedoch eine andere Sache. Zum Beispiel spiele ich gerne Gitarre, aber ich werde nicht in naher Zukunft auf einer Stadiontour in mehreren Städten oder auf einem großen Studioalbum auftreten.
Jfrankcarr
4
Schauen Sie sich das Papier an, das in Sergs Antwort verlinkt ist. Auch wenn es nicht so klar ist, wie sie ursprünglich gedacht hatten, ist die Wahrheit, dass manche Leute sich einfach nicht mit den grundlegendsten Programmierkonzepten auseinandersetzen können, selbst nach ein oder zwei Monaten Unterricht - zum Beispiel: x = 1; y = x;und die Frage ist: " Was sind die Werte von xund y? "
Izkata
3
Hallo und herzlich willkommen! Sie wissen das wahrscheinlich nicht, da Sie sehr neu sind, aber wir mögen keine offenen Fragen und / oder Diskussionsfragen. Ich habe die Is it true that not everyone can learn how to program?Zeile aus der Frage entfernt, unsere erfahreneren Mitglieder haben sie ignoriert und festgestellt, dass sie nicht unseren Richtlinien entspricht, und ihre Antworten auf die forschenden / wissenschaftlichen Aspekte der Frage konzentriert. Könnten Sie bitte das Gleiche tun?
Yannis
3
@jfrankcarr - Jede Fähigkeit auf professioneller oder wettbewerbsfähiger Ebene lässt viele Praktiker zurück. Die meisten Menschen können nicht einmal natürliche Sprache professionell sprechen oder schreiben.
Dmbarbour
3
@Izkata - Die Veröffentlichung Serg linked ist von zweifelhaftem wissenschaftlichem Wert; Ähnliche Ergebnisse würden von jeder schlecht unterrichteten Klasse erzielt werden: Menschen, die das Thema bereits verstanden haben, haben es gut gemacht. Und zu Ihrer Beispielfrage: Häufiger waren Fragen, die eine imperative Semantik voraussetzten, die sicherlich nicht intuitiv sind. Könnten Sie sogar Ihre eigene Frage beantworten, wenn Sie nicht davon ausgehen könnten, dass keine Nebenläufigkeit vorliegt?
Dmbarbour
19

Vielleicht ist das eine Anekdote, aber als ich ein paar hundert Studenten der Freien Künste in Intro-Programmierung unterrichtete, fand ich keinen solchen "Doppelhöcker". Es schien mir, dass sie alle ziemlich fähig waren, obwohl einige härter arbeiteten als andere, und sehr wenige versuchten, sich ihren Weg zu bahnen.

Vieles hat damit zu tun, wie es gelehrt wird.

Vieles hat auch mit Begierde zu tun - manche finden das Programmieren gar nicht interessant. Aber trotzdem können sie es lernen, wenn sie sich ehrlich anstrengen.

Mike Dunlavey
quelle
5
Ich frage mich oft , wo Wunsch , in dieser spielt, wir alle wissen , wie völlig uninteressant Programmierung für die große Mehrheit der allgemeinen Bevölkerung ist, frage ich mich , wie viele Menschen versuchen cs für Geld gehen , aber den durchschnittlichen Personen völligen Mangel an Interesse an der Art und Weise ein, das Computer funktioniert.
Jimmy Hoffa
6
@Jimmy: Ich habe versucht, es interessant zu machen, indem ich sie zu persönlichen Projekten über Spiele, Wissenschaft, Finanzen, Musik veranlasst habe, was auch immer sie ansprach. Programmieren ist viel interessanter, wenn es Mittel zum Zweck ist.
Mike Dunlavey
2
@Den: Nun, sie mussten kleine Programme für Hausaufgaben machen, sie hatten Quiz und Tests und sie mussten jeweils ein bedeutendes persönliches Programmierprojekt machen, das ich alle benotete. Der Kurs war erforderlich.
Mike Dunlavey
1
@MikeDunlavey Studenten haben immer Freunde, die programmieren können und Hausaufgaben können leicht betrogen werden.
Sulthan
2
@ Sulthan: Nicht in meiner Klasse haben sie nicht. Einige haben es versucht. Einige haben versucht, auf einem Test von anderen zu kopieren. Es war offensichtlich - der Code ähnelte zu sehr dem eines anderen und enthielt gleichzeitig offensichtliche Fehler. Für Projekte waren keine zwei gleich, und nichts setzt eine rote Fahne wie jemand, der mittelmäßig an Quiz und Hausaufgaben arbeitet, sich aber in ein schönes Projekt verwandelt. Ich mache gerade einen anderen Test und gebe ihn ihnen. Wenn sie eindeutig nicht wissen, wie es weitergeht, bin ich nicht verpflichtet, ihnen eine gute Note zu geben. Alternativ kann ich einen anderen Professor hinzuziehen.
Mike Dunlavey
7

Als ich anfing, war es üblich, einen "Eignungstest" zu absolvieren, bevor man einen Programmierjob bekam. Es gab nicht so viele Informatikabsolventen, daher war es üblich, Mitarbeiter aus anderen Disziplinen einzustellen.

Die Tests ähnelten denen, die Sie bei IQ- Tests sehen (wie lautet die nächste Nummer in der Sequenz usw.).

Der anekdotische Beweis war, dass nicht jeder, der den Test bestand, ein guter Programmierer wurde, aber keiner, der den Test nicht bestand, sondern aus anderen Gründen eingestellt wurde, jemals ein guter Programmierer wurde.

Leider haben HR-Drohnen diese Tests nicht verstanden (und sind fehlgeschlagen, als sie sie absolviert haben!). Daher hängt die Rekrutierung heutzutage von den Dingen ab, die HR-Drohnen verstehen - gute College-, Kommunikations- und Anzugfähigkeiten.

Dies ist so ziemlich der Grund, warum große IT-Abteilungen viele Leute haben, die sich hervorragend mit PowerPoint-Shows auskennen, und nur sehr wenige gute Programmierer.

James Anderson
quelle
1
+ Ich bin so dankbar, dass ich noch nie (fast) HR durchlaufen musste.
Mike Dunlavey
4

Für diejenigen, die die Doppelhöcker- oder Ziegen-gegen-Schaf-Studie von Dehnadi und Bornat zitieren, lohnt es sich, mentale Modelle und Programmierfähigkeiten von Caspersen et al. (2007) zu prüfen, in denen sie versuchen, diese zu replizieren:

Die Vorhersage des Erfolgs von Studenten, die an Einführungskursen teilnehmen, ist seit mehr als 25 Jahren ein aktives Forschungsgebiet. Bis vor kurzem hatten keine Variablen oder Tests eine signifikante Vorhersagekraft. Dehnadi und Bornat behaupten jedoch, einen einfachen Test für die Programmierfähigkeit gefunden zu haben, um Programmierschafe sauber von nicht-programmierenden Ziegen zu trennen. Wir stellen kurz ihre Theorie und ihr Testinstrument vor.

Wir haben ihren Test in unserem lokalen Kontext wiederholt, um ihre Ergebnisse zu verifizieren und vielleicht zu verallgemeinern, aber wir konnten nicht zeigen, dass der Test den Erfolg der Schüler in unserem Einführungskurs prognostiziert.

Basierend auf diesem Versagen des Testinstruments diskutieren wir verschiedene Erklärungen für unsere unterschiedlichen Ergebnisse und schlagen eine Forschungsmethode vor, mit der es möglich sein könnte, lokale Ergebnisse in diesem Bereich zu verallgemeinern. Darüber hinaus diskutieren und kritisieren wir den Programmierfähigkeitstest von Dehnadi und Bornat und entwickeln alternative Testinstrumente.

Thomas Park
quelle
4

Man kann Studien über Abstraktionskapazitäten oder andere nützliche Kenntnisse anstellen, aber die Definition der Programmierung ist unklar, und ich halte das Zitat für irrelevant, da es unterschiedliche Sichtweisen auf die Programmierung gibt:

Die erste Art: Programmiersprachen sind (oder sollten) eine Art menschliche Sprache, die eine Aufgabe beschreibt, die der Computer ausführen soll, sodass jeder, der spricht, programmieren kann. Es heißt Scripting, BASIC, das Schriftsatzsystem TeX , etc ... Die Sprache oder das System spielen keine Rolle, es ist die Art und Weise, wie ihre Schöpfer und Leute es sahen: "Liebes Programm / Computer, bitte drucke meinen Namen aus" , anstatt Msgstr "Gib mir einen Speicherplatz von der Größe von elf Zeichen, dann gib mir die Adresse dieses Speicherplatzes, dann lass mich ihn speichern und gib dann elf Zeichen in diesen Speicher ein, den du aus meinem Tastaturpuffer entnehmen kannst (aber vergiss nicht, ihn zu löschen , usw."

In diesem Fall ist klar, dass die Studie eher "Nicht jede Sprache kann schnell assimiliert werden?" Lautet.

Andererseits sind Programmiersprachen nur eine Möglichkeit zu beschreiben, wie ein Computer funktioniert oder wie er funktionieren sollte, wie er verbunden sein sollte, wenn Sie an Computer aus den 1950er Jahren denken. Daher kann der Programmierer nichts tun, auch wenn er die Programmiersprache perfekt „spricht“, wenn seine Intelligenz diese Abstraktionsebene nicht erreichen kann, auf der Bytes im Speicher gespeichert werden, Zeichenfolgen als Zeiger usw. und dann Gehe zurück zur Erde, um sie mit dem Problem zu verbinden. Daher kann nicht jeder Mensch programmieren (in Assemblersprache ...).

Abgesehen davon benötigen Sie alle Qualitäten, die zum Arbeiten und Produzieren von etwas erforderlich sind: Sie müssen genau wissen, was Sie wollen, es anderen leicht machen, Ihre Ziele zu verstehen / zu vervollständigen / zu überprüfen, sich auf Ihre Ziele zu konzentrieren usw. ... Aber genau wie ein Architekt, ein Schriftsteller, ein Musiker, eine Prostituierte ... aehh Prothese, etc.

Aber die meisten Menschen haben gute Abstraktionsfähigkeiten, insbesondere Kinder. Einige deutsche Schulen unterrichten Haskell für Jugendliche (Programmiersprachen wie Pascal oder Delphi werden in jeder deutschen Schule unterrichtet).

Daher würde ich sagen, dass die Frage sehr schwer zu beantworten ist und dass jede Antwort (oder Studie) wahrscheinlich irrelevant ist.

In dem Artikel Teach Yourself Programming in Ten Years von Peter Norvig finden Sie eine sehr kurze Analyse, wie Menschen Programmieren lernen . Er scheint zu glauben, dass es keinen geborenen Programmierer gibt.

Yves
quelle
3
Hallo und herzlich willkommen! Ich bin ein bisschen verwirrt darüber, wie Ihre Antwort die Frage beantwortet, in der es wirklich darum geht, ob dies untersucht wurde oder nicht ...
yannis
Entschuldigung, ich habe den "Senden" -Button durcheinander gebracht ... Ich hoffe, das macht mehr Sinn
Yves
Sie sind auf dem richtigen Weg, aber Sie binden Programmiersprachen mit Hardware (Computern) eng zusammen. Programmierung ist nicht ausschließlich die Fähigkeit, mit dem Computer zu sprechen. Beim Programmieren geht es darum, einen Prozess auf konsistente Weise zu beschreiben. Das Beschreiben eines Prozesses für einen anderen Menschen ähnelt dem Codieren in einer höheren Programmiersprache. Der größte Unterschied besteht darin, dass Menschen gegenüber Mehrdeutigkeiten toleranter sind.
Kaiser Orionii
Ich verteidige diesen Standpunkt nicht, aber ich habe versucht, darauf hinzuweisen, dass die Leute dazu neigen, Programmiersprachen zu sehen und die Verwendung dieser entweder als Aufgabenbeschreibung (wichtig für das Programmieren und Skripten auf hoher Ebene) oder als Beschreibung als "Computerprozess" -Beschreibungen (z. B. erscheinen einfache Sprachen der VHDL-Modellierungssprache näher als VB.NET, auch wenn es sich um Programmiersprachen handelt). Diese beiden Ansätze sind sehr unterschiedlich und doch zwei Seiten derselben Medaille. Sie bestehen auf verschiedenen Aspekten der menschlichen Intelligenz, die schwer zu quantifizieren sind. Es ist also schwer, sie zu studieren.
Yves
3

Vor vielen Jahren habe ich mehrere Kurse mit militärischer Führungstheorie absolviert. Ein Teil der Theorie war, dass es ein Führungskontinuum gibt, von denen, die natürliche Führer sind, bis zu denen, die einen Hund nicht an der Leine führen können. Die Idee war, dass die Menschen auf diesem Führungskontinuum in einer Glockenkurve verteilt waren, wobei sich die meisten Menschen irgendwo zwischen den beiden Extremen befanden. Abgesehen von den wenigen am äußersten Ende, die "keinen Hund führen konnten", konnte fast jedem die Kunst des Führens beigebracht werden. Der Aufwand, jemanden zum Anführer zu machen, hing davon ab, wo er auf dem Kontinuum saß.

Ich vermute, die Programmierung hat ein ähnliches Kontinuum und eine ähnliche Verteilung. Es wird solche geben, die es mühelos schaffen, und solche, die es niemals schaffen könnten, wenn ihr Leben davon abhängt. Aber sie sind die wenigen am Ende der Glockenkurve. Die meisten Menschen sitzen zwischen diesen Extremen im Kontinuum. Sie können programmieren lernen, aber der Aufwand für das Unterrichten hängt davon ab, wo auf dem Kontinuum sie sitzen.

Simon Tewsi
quelle
Ich sehe viele Leute, die einen Hund nicht richtig an der Leine führen. Früher konnte ich meine Hunde auch in der Stadt ohne Leine laufen lassen. Ich habe mich immer gewundert, warum die Leute den Hund nicht auf die Palme bringen.
2

Ich bin mir nicht sicher, ob es nur Programmierung ist. Ich sah das gleiche Phänomen, als die Leute einfach lernten, mit Computern umzugehen. Zurück am College war ich Laborassistent in einem Labor, in dem Computerkenntnisse für Senioren vermittelt wurden.

Innerhalb von zwei Wochen konnte ich diejenigen identifizieren, die es bekamen, und diejenigen, die es nicht bekamen, mit im Grunde 100% iger Genauigkeit. Sie haben entweder akzeptiert, dass der Computer so funktioniert, oder Sie haben Ihren Kopf für die gesamte Klasse dagegen geschlagen. Es gab keinen Mittelweg. (Die Tatsache, dass es sich um eine Seniorenklasse handelte, bedeutete, dass wir viele Headbeater hatten, was das Muster viel offensichtlicher machte.)

Loren Pechtel
quelle