Ich habe mich freiwillig gemeldet, um nächste Woche mit einem 15-jährigen Praktikanten über das Leben und die Arbeit eines Entwicklers zu sprechen.
Die Fänge sind das
- Ich habe nur eine halbe Stunde und
- Ich werde nur eine der Personen sein, die mit ihr sprechen - andere Personen in verschiedenen Rollen im Geschäft werden den ganzen Tag über die Elemente ihrer Arbeit mit ihr durchgehen.
Was soll ich abdecken und was in aller Welt kann ich hoffen, sie in nur einer halben Stunde zu unterrichten?
Ich gehe davon aus, dass sie wahrscheinlich keine Erfahrung mit Entwicklung oder Programmierung hat.
teaching
profession
Dexter
quelle
quelle
Antworten:
Ich habe viel mit Schülern zu tun, deshalb beantworte ich diese Frage ziemlich oft. Denken Sie daran, dass 15-Jährige die Programmierung viel einfacher erklären können als 50-Jährige - Sie müssen also keine Dummheiten anstellen oder weit hergeholte Analogien verwenden.
Normalerweise beginne ich mit Beispielen für folgende Programme:
Danach erkläre ich normalerweise, dass wir Programme in einer formalen Sprache codieren, die der Computer erkennen kann. Oft schreibe ich sie in etwas so Einfaches wie Notepad. Die Sprachen sehen aus wie eine Mischung aus Mathematik und Englisch. Sie beschreiben Konzepte und geben Formeln und Anweisungen, denen der Computer folgen soll.
Dann fragen sie normalerweise, ob ich die ganze Zeit am Computer bin, warum ich immer auf Facebook bin und warum meine Augen noch nicht schlecht geworden sind. Jungs fragen, ob ich weiß, wie man Leute "hackt", und Mädchen fragen, ob es gutes Geld ist oder wie viele Mädchen im Informatikunterricht sind.
Danach beginnen sie, wenn sie immer noch interessiert sind, bestimmte Fragen zu stellen, die viel einfacher zu beantworten sind (oder zumindest im Wiki): Dinge wie das Erstellen eines Spiels, die Funktionsweise von Windows Messenger usw.
Wenn Sie einen Computer in der Nähe haben, können Sie einen Code anzeigen und mitteilen - etwas, das greifbare Auswirkungen hätte, wie einen Button-Click-Handler im Einstellungsdialogfeld von Firefox, die Hauptschleife oder den Physik-Code in einer Spiel-Engine, einige JavaScript-Quelle von einer Website etc ..
quelle
Ich erklärte es meinem Fünfjährigen mit den folgenden Worten:
Ich: "Weißt du, wie Menschen in Geschichten magische Worte sagen und Dinge in der Welt verändern?"
Sie: "Jaaa?"
Ich: "Das ist Computerprogrammierung."
Sie (leise): "Wow."
15 bis 30 Minuten reichen nicht aus, um etwas Reales zu erklären, und die Erklärung der zugrunde liegenden Komplexität ist ein sicherer Weg, um sie zum Schreien zu bringen. Du arbeitest jeden Tag daran, du vergisst, wie verdammt cool es ist. Kein anderer Beruf auf der Welt schafft funktionale Dinge aus nichts als Worten ... Irgendwann muss jeder andere in die Welt des Fleisches gehen und anfangen, mit einem Hammer auf Dinge einzuschlagen. Nur so können sie ihre Idee in eine funktionierende Sache verwandeln.
Nicht wir.
quelle
Ein 15-jähriger Mensch kann jedes Konzept verstehen. Ich selbst habe mit 14 angefangen zu programmieren (in der Schule vor vielen, vielen Jahren)
30 Minuten reichen für eine Demo. Zeigen Sie ihr die Magie des Programmierens mit etwas, das so weit verbreitet ist wie ein Browser.
quelle
Schritte
Als fast 15-Jähriger kann ich Ihnen zuversichtlich sagen, dass Sie einen spektakulären Start haben sollten.
Erklären Sie, wie Sie es schaffen.
10101010
ganzen Tag tippen . Sagen Sie ihnen, dass Sie nicht einmal wissen, wie man das macht. ( Lie. Sie tun wissen , was10101010
bedeutet, nicht wahr;)) Sagen Sie ihnen, dass vor Jahren war.Zeigen Sie ihnen ein Beispiel für einen Pseudocode. Machen Sie es einfach zu verstehen:
Gehen Sie das Schritt für Schritt durch. Sagen Sie ihnen, dass Code nicht so aussieht. Code sieht aus wie
English + Math
. Es ist jedoch nicht schwer, die "Sprache" (sprich: Syntax) zu lernen, in der Sie sprechen.Zeigen Sie ihnen ein Beispiel mit etwas mehr "Mathe".
Erklären Sie, dass dieser Code wie ein Taschenrechner zwei Zahlen addiert. Zeigen Sie ihnen den "echten" Code dafür. (Stellen Sie sicher, dass Sie den Großteil der Benutzeroberfläche und andere Elemente in einer separaten Datei ablegen, und halten Sie die angezeigte Datei kurz und einfach.) Ändern Sie sie in ein Subtraktionsprogramm (indem Sie das Vorzeichen von
+
nach ändern-
), direkt vor ihren Augen.Erklären Sie, was Sie wissen müssen, um programmieren zu können. (Auf verschiedenen Ebenen.)
x + 1 = 2
, dannx = 1
.Begriffe, die Sie verwenden können
Wir wissen mehr als Sie denken.
Begriffe, die Sie erklären sollten
Ja, wir müssen noch ein paar Sachen erklären.
10101010
.Begriffe, die Sie nicht verwenden können
Einige von uns kennen dieses Zeug, aber bitte sagen Sie es trotzdem nicht.
quelle
Wenn Sie anfangen, über Dinge wie Prozesse, Muster, Anforderungen und dergleichen zu sprechen, wird sie sofort heruntergefahren. Kinder sind heute grafisch und visuell motiviert, daher würde ich etwas einbringen, um diese Art von Stimulus zu fördern. Zeigen Sie ihr etwas Schickes im Web und beschreiben Sie ihr dann auf hohem Niveau, was DAS möglich macht. Ich würde sogar vorschlagen, Ihren Entwicklungs-Laptop mitzunehmen und etwas "Cooles" auf dem Bildschirm geschehen zu lassen - ändern Sie den Code vor ihr und beobachten Sie, wie er sich auf dem Bildschirm ändert. In diesem Alter sind sie SEHR klug und alles Visuelle wird das Interesse wecken.
quelle
Alice
?Es gibt zwei großartige Analogien, auf die ich mich bei der Erläuterung der Arbeit von Programmierern stütze. Eins ist ein Rezept; Diese Metapher ist nützlich, um in kleinem Maßstab zu erklären, was jede Codezeile tut. Die Arbeit eines Programmierers schreibt das Rezept, und der Computer ist der Koch.
Die andere Analogie ist, dass ein großes Programm wie eine große Firma ist. Es gibt eine ganze Reihe verschiedener Abteilungen, die sich auf verschiedene Bereiche konzentrieren und Botschaften hin und her senden, und das Ganze erreicht letztendlich die Ziele des Unternehmens. Die Arbeit eines Programmierers besteht darin, die Organisation einzurichten, und der Computer ist die Gesamtheit der Mitarbeiter im Unternehmen.
quelle
Ich würde sagen, halte es allgemein. Programmierung und viele andere Berufe beschränken sich auf das Lösen von Problemen. Zeigen Sie ihr, wie Sie täglich Probleme lösen. Sie könnten ihr von einem Projekt erzählen, an dem Sie gearbeitet haben, und wie es Ihren Kunden helfen wird. Geben Sie auch an, warum Sie (vermutlich) Ihren Job mögen.
In meinem Fall habe ich eine Website mit Lernvideos entwickelt, auf der andere Mitarbeiter Lernprogramme veröffentlichen. Ich erläutere die Motivation für das Projekt (andere fernunterrichten, ohne dass man sich an Menschen binden muss), die Probleme, mit denen ich konfrontiert war (ich muss diese nicht unbedingt als harte Probleme ansehen) und wie ich sie gelöst habe. Ich spreche auch darüber, warum ich in erster Linie gerne programmiere: Ich schaffe gerne Dinge und den Beitrag der Programmierung zur modernen Welt.
quelle
Geben Sie ihr Beispiele für Software, an der Sie gearbeitet haben. Haben Sie einen Kunden, der Ihre Software öffentlich nutzt? Entwickeln Sie eine Inhouse-App, die Sie ihr zeigen könnten? Zeigen Sie ihr das Endergebnis Ihrer Arbeit, was der Endbenutzer sieht und verwendet.
Erklären Sie dann, dass Sie beim Schreiben geholfen haben. Gehen Sie die Teile durch, die Sie geschrieben haben. Zeigen Sie Code, wenn Sie können. Beschreiben Sie, wie diese Codezeilen einen Teil der Anwendung zum Laufen bringen.
Sprechen Sie darüber, wie viel Spaß Sie haben, wenn Sie sehen, wie Ihr Code von Menschen verwendet wird.
So erklärte ich es trotzdem meinem 14-jährigen Cousin. Er war ziemlich beeindruckt und beschloss, im nächsten Semester einen Programmierkurs zu belegen.
quelle
Kennen Sie das Brettspiel Robo Rally?
Ich habe festgestellt, dass es die perfekte Analogie zum Programmieren ist. Sie programmieren Ihren Roboter im Grunde genommen mit einfachen Befehlen (meistens mit Pfeilen), um eine bestimmte Stelle auf dem Spielbrett vor den anderen zu erreichen.
Mann, ich wünschte, ich hätte noch meine BigTrak ...
quelle
Zeigen Sie etwas Einfaches, aber Nützliches. Ein gutes Beispiel, denke ich, wäre das Folgende:
Die Gründe, warum ich diesen Ansatz mag, sind:
Sie können sich vielleicht bessere Beispiele vorstellen, aber ich denke, der Stil ist hilfreich für ein "erstes Intro".
quelle
Die meisten 15-Jährigen haben "heutzutage" viel Erfahrung mit Computern. Ich würde mehr Hand anlegen. Ich würde ihr ein bisschen Code zeigen (nicht versuchen, ihn detailliert zu erklären, aber vielleicht die extremen Grundlagen des "Flusses" behandeln) und ihr zeigen, was das Ergebnis ist. Sogar HTML wird für diese Art von Beispiel funktionieren. Sagen Sie dann "Jeden Tag mache ich das im Grunde ... außer mit Zehntausenden von Codezeilen und einem sehr großen und komplexen Programm".
Erklären Sie dann, welche Probleme Sie mit der Programmierung lösen und warum Sie das gerne tun. Zum Beispiel würde ich sagen, dass ich gerne programmiere, weil ich es liebe, wenn mein Code als Anwendung im Computer zum Leben erweckt wird.
quelle
Erstens haben Sie Konkurrenz, die Sie entlarven müssen.
Filme, Popkultur und sogar Leute auf dem Gebiet ( und diese Frage auch ) versuchen, die Programmierung (und den Großteil des Gebiets der Informatik) als irgendeine Art von Magie darzustellen. Es ist keine Magie.
Beim Programmieren werden einfach Aufgaben beschrieben und dann kombiniert, um ein Problem zu lösen. Wenn Sie versuchen, eine Parallele zu finden, verwenden Sie Mathe. Ein Computer ist wie ein Mathematiklehrer, bei dem Sie alle Ihre Arbeiten zeigen müssen .
Aus physikalischer Sicht sind Computer nicht schlau - sie wissen nur so viel, wie wir ihnen sagen. Wenn ein Computerprogrammierer ein Programm erstellen möchte, das beispielsweise Musik von einer CD abspielt, muss er dem Computer lediglich mitteilen, wie die auf der CD gespeicherten Daten gelesen und anschließend in Schallwellen umgewandelt werden sollen , wie diese Schallwellen von Ihren Lautsprechern ausgegeben werden.
Wenn Sie diese Idee auf die nächste Ebene heben, erfahren Sie, wie die Programmierung Aufgaben aufeinander aufbaut. Genau wie er / sie Rechnen lernen musste, bevor er / sie Algebra in Mathematik lernen konnte, muss dem Computer auch erklärt werden, wie er / sie die Grundlagen erledigt, bevor er / sie lernen kann, wie komplexere Aufgaben zu erledigen sind. Im Laufe der Jahre war es Informatikern und Programmierern möglich, Computer so weit zu "unterrichten", dass wir viel näher an der Art und Weise, wie wir miteinander sprechen, mit ihnen "sprechen" können.
Zurück im wirklichen Leben fordert Sie Ihr Mathematiklehrer vielleicht auf, "15 hoch 3" zu lösen, aber Sie wissen nur, wie Sie das tun sollen, weil Ihnen zuvor beigebracht wurde, dass "X hoch Y" in die Aufgaben von zerfällt "Multipliziere X mit X und mache es Y- mal" [technisch gesehen Y -1-mal, aber eh.]
Ähnlich wie in Ihrem Mathematikunterricht haben die Programmierer eine Basis von 'bekannten' Aufgaben aufgebaut, sodass wir uns nicht auf die Details der kleinen Dinge konzentrieren müssen und unsere Zeit der Lösung der eigentlichen Probleme widmen können und nicht so sehr, wie die zugrunde liegenden Aufgaben ausgeführt werden sollen aufgaben - wir können jetzt davon ausgehen, dass ein Computer die grundlegenden Dinge versteht.
quelle
Ich würde tun, was mich süchtig machte, als ich ungefähr 9 war. Nimm den C64 aus dem Loft und mache:
10 PRINT "YOU SMELL"
20 GOTO 10
(Danke Vater).
Dann, wenn der Spaß vorbei ist. Ich würde ihr das Zahlenspiel zeigen. Ja, alles in BASIC. Eine moderne Sprache ist nicht unbedingt erforderlich, um einen Computer zu zeigen, der Anweisungen entgegennimmt.
quelle
Es könnte hilfreich sein, mit etwas zu beginnen, das sie routinemäßig tut, wie Facebook, und ihr zu erklären, wie ein einfacher Aspekt wie das Anmelden sehr kompliziert sein kann.
Sie könnten von hier aus in Datenbanken, Anwendungsdesign und dann in einige Aspekte der Sicherheit verzweigen, was etwas Hilfreiches ist, das sie mitnehmen kann.
Du kannst sie sogar fragen: "Wenn es eine Sache mit Facebook gäbe, die du ändern könntest, was wäre das?" Führen Sie sie dann durch, wie Sie die Änderung vornehmen könnten und wie viele Personen beteiligt wären.
Ich lernte zuerst Pascal zu programmieren und war total begeistert, dass mein Programm meine Eingabe akzeptierte, damit herumspielte und etwas anderes druckte. Ich war von dort süchtig. Manche Leute klinken leicht.
quelle
Ich hoffe, sie hat ein Praktikum an einem Ort absolviert, an dem vermutlich Software entwickelt wird, für die sie ein gewisses Interesse haben muss.
Es gibt keine gesetzte Antwort, ich würde sie 5-10 Minuten lang befragen, was sie weiß, dann versuche einfach, so gut du kannst darauf aufzubauen.
quelle
Beginnen Sie auf hoher Ebene. Erklären Sie vielleicht, dass es bei der Computerprogrammierung um Problemlösung geht: Nehmen Sie ein Problem und entwickeln Sie eine Lösung, die als eine Reihe von Anweisungen geschrieben ist, die eine Maschine verwenden und verstehen kann.
Der schwierige Teil könnte darin bestehen, Beispiele zu finden, die ein 15-jähriges Mädchen interessant und relevant finden würde . Da ich noch nie in dieser Situation war und sie nicht kannte, bin ich mir nicht sicher, was ich dafür empfehlen soll. Vermeiden Sie Codebeispiele bis kurz vor dem Ende und mit Ausnahme sehr einfacher oder interessanter Fälle, wie z etwas einfaches und grafisches (zeichnen Sie einige Formen in ein Fenster, verfolgen Sie eine Maus, etc ...).
quelle
Hier ist meine Sichtweise nach ein paar gescheiterten und ein paar ziemlich guten Versuchen:
Programmierung ist Problemlösung.
Beginnen Sie mit konkreten Dingen, die so programmiert sind, dass sie jeden Tag verwendet werden - Internetbrowser (Facebook), Handy, Registrierkasse usw. Lassen Sie sich von ihnen viele Beispiele geben. Stellen Sie fest, dass in all diesen Dingen eine Art Computer enthalten ist. Das Herz eines Computers ist der Prozessor.
Der Prozessor ist wie ein sehr schneller, aber sehr dummer Arbeiter. Wenn Sie ihm Anweisungen geben, werden sie genau so ausgeführt, wie Sie es sagen. Es wird nichts extra tun und es wird dir nicht sagen, ob etwas, was du ihm befohlen hast, falsch war. Dieser Prozessor erledigt jedoch alles - wenn Sie ihm genau mitteilen, wie es geht, kann er einen Anruf tätigen oder ein Bild in eine E-Mail einfügen.
Fragen Sie sie, wie sie einem sehr schnellen, aber sehr dummen Arbeiter sagen würde, er solle eine Dose Soda von einer Soda-Maschine kaufen. Wie sie beginnt, die Schritte zu beschreiben ("Geld in den Automaten stecken und den Knopf drücken"), beginnen Sie, es wie ein Programm zu zerlegen ("Was ist Geld? Wie stecke ich es in den Automaten? Wenn ich Geld in den Automaten stecke und drücke." gleichzeitig die Taste, passiert nichts. "). Wenn Sie ein Whiteboard haben, beginnen Sie links mit ihren ersten Anweisungen. Platzieren Sie die neue größere Liste auf der rechten Seite, während sie sie überarbeitet. Wenn Sie eine gute Anleitung haben, beginnen Sie mit der Verallgemeinerung der Stücke ("Nehmen Sie das Geld aus der Tasche und entfernen Sie das Soda aus dem Tablett. Was sind die gleichen / unterschiedlichen Teile?"). Nehmen Sie die Verallgemeinerungen und legen Sie sie in die Mitte und kreuzen Sie die Stücke ab, die sie jetzt umfassen. Versuchen Sie schließlich, die Teile so zusammenzubinden, dass sie mit ihren ursprünglichen Anweisungen übereinstimmen, ähnlich wie Funktionsaufrufe. Andere gute Übungen: Briefe verschicken, durch eine Tür gehen, einen Kreis / ein Quadrat / ein Dreieck zeichnen.
Programmierung ist also Problemlösung: Aufteilen von Problemen in Teile, Identifizieren gemeinsamer Teile und Zurückgruppieren dieser Teile, um Probleme zu lösen. Bald stellen Sie fest, dass einige Teile für viele Probleme gleich sind, und dann fangen Sie an, Teile zusammenzusetzen, um Probleme zu lösen, von denen Sie nicht einmal wussten, dass Sie sie hatten.
Okay, zu diesem Zeitpunkt kann sie verstehen, aber sie ist wahrscheinlich gelangweilt. Im Anschluss finden Sie einige coole Programmierbeispiele. Shader und zugehöriger visueller Code sind einfach zu demonstrieren - Sie können ein Bild erstellen und mit sehr kleinen Codeänderungen Änderungen daran vornehmen. Wenn sie Interesse an Facebook bekundet hat, zeigen Sie, dass Sie über REST mit Facebook gesprochen haben, um Freunde von Freunden (6 Grad ihrer Daten) zu sehen. Wenn sie Videospiele mag, zeigen Sie ein paar Open-Source-Spiele-Demos zusammen mit ein paar Ausschnitten ihres Codes und wie sie das Spiel unterstützen. Beenden Sie den Vorgang, indem Sie ein paar kostenlose Tools und Ressourcen zeigen, die sie zu Hause untersuchen könnte. (Python, C # usw.)
Meine fehlgeschlagenen Versuche: Versuch, die Pi-Berechnung zu erklären (sie fragten), das C-Jump-Brettspiel http://c-jump.com/ (sie haben es nicht verstanden und die Anweisungen waren fehlerhaft) und Live-Codierung einer 2d Spiel (konnte einfach kein Interesse wecken, egal wie klein meine Schritte zwischen den Demos waren).
Viel Glück!
quelle
Machen Sie ein einfaches Programm. Nein, nicht "Hallo Welt!"
Ich würde sagen, dass es viele Arten von Programmiersprachen gibt - solche, die Spiele machen, solche, die Roboter steuern -, aber Sie werden mit HTML arbeiten.
Erstellen Sie eine Webseite ohne Inhalt und fügen Sie ein Formular hinzu, mit dem eine E-Mail an ihre E-Mail-Adresse gesendet wird. Vermutlich hat sie ein Handy, mit dem der Eigentümer benachrichtigt werden kann, dass eine neue E-Mail vorliegt. Sie können ihr also sagen, dass dies eine großartige Möglichkeit für ihre Freunde und Familie ist, mit ihr in Kontakt zu treten. Wenn sie in Zukunft eine eigene Website erhält, können Sie ihr mitteilen, dass sie das Formular auf ihre Website stellen kann, damit ihre Kunden und Geschäftspartner mit ihr Kontakt aufnehmen können.
Alternativ, wenn sie ein bisschen schelmisch ist, erzähle ich Ihnen, was mich zum Programmieren gebracht hat: Hacken. Damals machte ich das beste Programm, das ich je für AOL gemacht hatte (abgesehen von einem Programm, das mein Programm in nur einem von Dutzenden von Dingen übertroffen hat) - im Alter von 14 bis 15 Jahren. Auf der White-Hat-Seite habe ich auch eines der ersten Spam-Entfernungsprogramme erstellt (1995). Ich konnte mein Online-Erlebnis viel angenehmer gestalten, und wir werden es dabei belassen. Alles, was ich an einem Computer machen wollte, war ein Abenteuer oder Puzzle, das ich herausfinden musste, und die Dinge, die ich an einem Computer machen wollte, waren endlos. Sicher, es zum Laufen zu bringen, bereitete manchmal Kopfschmerzen, aber ein Programm zu schreiben, das Dinge besser und schneller vollbrachte, als jeder Mensch es könnte. oder Dinge zu tun, die für die breite Öffentlichkeit einfach unmöglich waren, glich dem Bau einer feinen Maschine, auf die man stolz sein konnte. Wahrscheinlich möchten Sie nichts Ernstes scheuen, aber es wäre äußerst einfach, in Visual Basic etwas zu erstellen, das beim Start gestartet werden könnte (auf der Seite des Bildschirms oder der Taskleiste), und von dort aus Sie könnten damit ihre Lieblingswebsites, ihre Lieblingsprogramme usw. starten. Sie könnten ihr die Befehle zum Starten einer Exe und einer Website vorstellen und sie dann bitten, einige Schaltflächen zu erstellen und den Code zu diesen Schaltflächen hinzuzufügen , indem Sie ihre Lieblingswebsites (Facebook, Twitter usw.) und -programme (iTunes, Textverarbeitung usw.) eingeben. Wenn sich ihr Computer in ihrem Zimmer befindet, können Sie auch einen Wecker darauf werfen, um zusätzliche Funktionen zu erhalten. Na sicher, 30 Minuten sind zu kurz, um sie durch das Ganze zu führen, also müssten Sie es schon erledigen. Am Ende mailen Sie ihr ein kleines 2-3-seitiges Benutzerhandbuch, den Code und die EXE-Datei es ist nicht so schlimm, es wird im Leben äußerst nützlich sein und wird dabei helfen, ihr analytisches Denken zu entwickeln.
quelle
Früher unterrichtete ich 18-jährige College-Studenten, und ich nehme an, 15-jährige sind ungefähr gleich. Erwarten Sie keinen Erfolg ohne Übung. In meiner ersten Klasse habe ich einige Wochen gebraucht, um "eingebrochen" zu werden.
Das Größte, was ich lernen musste, war, dass das, was ich für so einfach und offensichtlich hielt, dass ich befürchtete, ich könnte die Zeit nicht ausfüllen, für die Schüler überhaupt nicht so war. Ich habe gelernt, dass Sie in kleinen Schritten gehen müssen - sonst ist es nur "gee whizz" Magie.
Wie du das in 30 Minuten anpasst, weiß ich nicht genau, aber als erstes zeigte ich ihnen einen kleinen selbstgebauten Computer, der so programmiert war, dass er durch Klicken eines Lautsprechers ein wenig Musik spielt. Ich erklärte, dass es eine Note spielen könnte, indem es einen Zähler dekrementiert, um als Verzögerung zwischen den Klicks zu wirken. Ich habe den Pseudocode einfach wie ein Rezept an die Tafel geschrieben. Dann gab es einen kleinen Kondensator, den ich unter einen Draht haken konnte, der das Ganze ungefähr 1000-mal langsamer laufen ließ. Dann hörten sie Klicken - Warten - Klicken - Warten ... Dann, als ich den Kondensator aushängte, platzte er mit der kleinen Melodie heraus.
Das Ziel dabei war es, herauszufinden, dass Computer nur einfache Aufgaben ausführen und diese nacheinander ausführen. Sie beginnen nicht jeden Schritt, bis der vorherige Schritt abgeschlossen ist. (Ja, ja, ich weiß - Pipelining und so weiter, aber wir sprechen mit Neulingen .) Nur die elektronische Geschwindigkeit lässt sie alles auf einmal tun, was Neulinge gerne annehmen (zusammen mit Gedankenlesen). . Das ist eines der wirklich grundlegenden Konzepte, ohne die man Programmierung und Computer nicht verstehen kann. Für uns ist dies so uneinheitlich, dass wir nicht einmal merken, dass wir es wissen, aber Anfänger wissen es nicht.
quelle
Ich weiß, dass es keine Programmiersprache ist, aber ich denke, HTML ist ein guter Anfang. Weil Sie sofort Ergebnisse erhalten ... beginnen Sie mit
Hallo Welt
Dann mach:
Hallo <b> Welt </ b>
Usw.
quelle
Wenn ich es wäre, würde ich ihr sagen, dass es beim Programmieren darum geht, eine Aufgabe so in kleine Aufgaben aufzuteilen, dass Sie sie leichter lösen können. und dann diese kleinen Aufgaben in einer Sprache ausdrücken, die von einem idiotischen Computer nicht missverstanden werden kann. Man muss es aber auch so machen, dass es auch andere Programmierer leicht verstehen können - und das ist nicht dasselbe.
Das heißt, zusätzlich zu dem, was alle anderen gesagt haben ...
quelle
Dies ist mehr meine persönlichen Erfahrungen als eine einfache "Antwort".
Warum habe ich mich dafür interessiert? Meine Eltern kauften 1984 einen IBM PC XT (ich wurde 1984 geboren). Es hat 640kb RAM und 20MB HDD und ein 5 "FDD und lief MS-DOS v3.2. Ich durfte es nicht berühren, bis ich im 5. Standard war und als ich es endlich benutzen durfte, habe ich alle meine Jahre gegossen der angehäuften Neugier hinein.
Meiner Schwester hingegen war es gestattet, denselben PC und einen Quadra 610-Mackintosh zu benutzen, wann immer sie wollte.
Unterrichten meiner Schwester ... Ich habe versucht, meiner Schwester die Programmierung in BASIC beizubringen. Ich habe sie dazu gebracht, alles richtig zu machen, vom Starten des Computers über das Eintippen und Ausführen des Programms. Es war als Linienprogramm.
Das dauerte eine halbe Stunde. Als sie es schließlich ausführte, druckte es das Wort "CAT" und sie war wütend. Sie hatte erwartet, dass ein Bild von einer Katze auftauchen würde. Sie stürmte aus dem Raum und das war das Ende der Programmierung für immer!
Moral: Der Output sollte proportional zu Zeit und Aufwand sein.
Unterrichten von Highschool-Kindern Labview und Lego NXT Ich war ein Jahr lang Mentor für FIRST Robotics und musste die Kinder bei der Programmierung des Roboters in NI Labview unterstützen. Ehrlich gesagt lag die Programmierkenntnis weit über dem Niveau eines Schülers. Aber der Wettbewerb sollte Kinder für das Ingenieurwesen begeistern und die Messlatte höher legen, wenn es darum geht, Herausforderungen anzunehmen. Solange die Programme nur eine if-Anweisung und eine Schleife hatten, war alles in Ordnung. Die Leute verließen den Programmierbereich des Roboters, als sie das Codediagramm sahen, das ich für den Roboter erstellt hatte, den wir im Vorjahr gebaut hatten.
So sehr die Leute behaupten, dass 15-Jährige komplexe Dinge tun und eine Aufmerksamkeitsspanne von Stunden haben können, fand ich einen seltsamen Mangel an Motivation in ihnen, dies zu tun. Sie wollten einfache Dinge tun, die ihren Verstand nicht belasteten. Sie zogen CAD und Frästeile auf der Drehmaschine dem Schreiben von Programmen vor.
quelle
Was ist CS?
Ich denke, bevor Sie sich mit Demos befassen, ist es hilfreich, kurz Ihren Platz in der Welt von CS einzuschätzen. Ich mochte Hal Abelsons Beschreibung von CS im Verhältnis zu Mathe: Während Mathe Ihnen hilft, die Welt in Begriffen von Gesetzen zu beschreiben, hilft CS Ihnen, zu beschreiben, wie man Dinge tut. Sein Beispiel war die Quadratwurzelfunktion: math definiert sie, hilft Ihnen jedoch nicht, sie für eine bestimmte Eingabe zu finden. CS wird. Auf einer niedrigeren Ebene legten Elektrotechnik und Physik den Grundstein für die Hardware, die das Internet ermöglichte, ließen jedoch die Fragen offen, wie Menschen dazu gebracht werden sollten, es zu nutzen.
Wie ist es, Programmierer zu sein?
Dann stellt sich die Frage, wie es ist, Programmierer zu sein. Was mich angesprochen hat, war, dass es eine schnellere Abwicklung von Versuchen, Testen und Reparieren gibt als jedes andere technische Gebiet. Es ist eine ununterbrochene Problemlösung, während in anderen Bereichen die Bearbeitungszeit für eine einzelne Schleife Monate betragen kann. Es ist auch für fast jedes andere technische Gebiet nützlich, was mehr ist, als für die meisten anderen technischen Gebiete gesagt werden kann. Wenn Sie also (wahrscheinlich) noch nicht wissen, was Sie tun möchten, ist es eine gute Sache, früh gut zu werden. Im College werden Sie für mehr Professoren durch wenige Dinge nützlicher als durch die Möglichkeit, ihre Experimente zu programmieren.
Augensüßigkeit, gebunden an Code
Dann vergessen Sie natürlich nicht die Demos. Es könnte cool sein, eine Kopie von Quake (Open Source) zu erhalten, eine Änderung in einer Zeile vorzunehmen (z. B. die Schwerkraft zu ändern) und beispielsweise neu zu kompilieren. Schauen Sie sich auch den Code an. Versichern Sie ihr, dass sie nicht erwarten sollte, viel zu verstehen, es mag jetzt wie Kauderwelsch wirken, aber auch Zeitungen in Fremdsprachen, die sie noch nicht gelernt hat. Sie können sagen, dass sie trotzdem sehen kann, dass Dinge den Dingen zugewiesen werden, dass Objekten gesagt wird, was zu tun ist, und hier setzen wir die Schwerkraft usw.
quelle
Ich habe mit 14 Jahren angefangen zu programmieren. Während die meisten (47 der 50 eingeschriebenen Studenten) entweder Mitte des Jahres abbrachen oder einfach beschlossen, im nächsten Jahr nicht in den Aufbaukurs einzusteigen, blieb ich dabei und lernte etwas sehr Wichtiges:
Das Programmieren gibt Ihnen die Möglichkeit, etwas aus dem Nichts zu erschaffen. Sie haben die Macht, Wörter in ein nützliches Werkzeug zu verwandeln, das eine Notwendigkeit erfüllt, eine unterhaltsame Aktivität für Sie und Ihre Freunde oder einfach etwas, das Sie Ihren Freunden zeigen und sagen können: "Schauen Sie, was ich getan habe."
Zunächst wurde uns "Hello World" beigebracht, aber ich hatte kein Interesse, bis ich meinen Code mit dem Benutzer interagieren lassen konnte . In dem Moment, in dem wir gelernt hatten, Input mit "cin" zu lesen, machte ich mich daran, ein Mad-Lib-Programm zu entwickeln, das wir im Unterricht spielen konnten. Meine erste Hürde war das Lesen von Eingaben mit Leerzeichen, gefolgt vom Formatieren von Ausgaben. Später wollte ich in der Lage sein, diese Geschichten in einer Datei zu speichern, und so musste ich Datei-E / A lernen. Das Überwinden von Hindernissen, um meine eigenen Ziele zu erreichen, hat mich beschäftigt.
Später im Jahr stellten wir fest, dass die Netzwerkadministratoren unsere Verwendung von "Net send" und des Novell SendMessage-Clients, mit dem wir während des Computerkurses kommunizierten, protokollierten und deaktivierten, nachdem die Schüler einen Test damit betrogen hatten. Also habe ich einen Chatroom geschrieben, um den zu ersetzen, den die Admins deaktiviert haben. Es war das erste wirklich nützliche Ding, das ich geschaffen hatte. Ich habe es dem Chat-System von Battle.Net nachempfunden. Es enthält eine Benutzerregistrierung, Moderatoren und sogar ein grundlegendes Verschlüsselungs- und Schattendateisystem, um Manipulationen durch Benutzer zu verhindern Zugang und Benutzung des Programms). Dies waren keine Konzepte, die mir bereits bekannt waren, sondern Lösungen, die ich selbst gefunden habe, um ein Problem zu lösen. Für mich war das die Freude am Programmieren.
Um die Frage richtig zu beantworten, ist eine interaktive Demo, abgesehen von der Diskussion darüber, was es bedeutet, Software zu entwickeln, wahrscheinlich eine großartige Idee. Am liebsten etwas, das ein Problem löst, das sie hat, wie das automatische Ändern der Größe all dieser riesigen Bilder von ihrer Kamera. Etwas komplizierter mag es sein, dass sie Spaß mit einer einfachen Webseite zum Hinterlassen einer Nachricht hat, die sie mit ihren Freunden teilen kann. Sie können jederzeit eine E-Mail an jemanden senden, wenn eine neue Nachricht veröffentlicht wird, und den Code bearbeiten lassen, damit er an Ihre E-Mail-Adresse anstatt an Ihre gesendet wird. Lassen Sie die Seite außerdem die letzte X-Anzahl von Kommentaren anzeigen, und veranlassen Sie sie, diese Anzahl ebenfalls anzupassen, und überprüfen Sie die Ergebnisse.
quelle
Wo ich früher arbeitete, kamen manchmal Kinder mit Berufserfahrung. Einige interessierten sich für Computer, andere nicht. Früher haben wir sie dazu gebracht, sich vor einen Computer zu setzen und ein Ratespiel zu schreiben. (Der Computer wählt nach dem Zufallsprinzip eine Zahl aus, und der Benutzer erhält eine Rückmeldung, ob seine Vermutung zu hoch / niedrig war.) Das ist einfach und ein wirklich unterhaltsames Ergebnis. Nichts ist mächtiger, als ihnen greifbar zu machen, was SIE hervorbringen können.
quelle
Wenn Sie jemandes Aufmerksamkeit erhalten und behalten wollen, dann fragen Sie, sagen Sie es nicht. Fragen Sie, wie sie eine einfache Aufgabe ausführen würden, z. B. ein Glas Wasser zu sich nehmen. Zeigen Sie ihnen dann, wie das Befolgen der Anweisungen, die sie gegeben haben (z. B. "Gehen Sie den Flur hinunter"), die Probleme, wann Sie links abbiegen, rechts abbiegen, anhalten usw., nicht bewältigt der Programmierung! Dann können Sie zeigen, wie eine "do-until" -Schleife die Situation "Gehen bis zur Wand" bewältigen kann, um aus dem einen Fuß-vor-dem-anderen-Schritt Meta-Aufgaben zu machen zu Fuß.
quelle
Ich bin nicht sicher, ob dies eine Legende oder eine wahre Geschichte ist, aber ich habe gelesen, warum der Glückliche eines Tages steif wird. Ein Teil der Geschichte war, wie er einem Kind (oder vielleicht sogar Kindern), das er in einem Zug getroffen hatte, das Programmieren zeigte.
Wie einige von Ihnen vielleicht wissen, war Ruby ein Typ (und Ruby ist auch ziemlich freundlich zu normalen Menschen). Er arbeitete an einem Spiel in Ruby, während ein Kind auf ihn zukam, um zu sehen, was er tat. Er zeigte ihnen zuerst das Ergebnis - das Arbeitsspiel. Dann zeigte er das Kind , wie er kann ändern Dinge im Code , um das Ergebnis zu ändern. Dann ließ er das Kind spielt mit dem Code und modifizierte Ergebnis.
Ich denke, dass dies Ihr allgemeiner Arbeitsablauf sein sollte - resultieren, modifizieren, spielen. Sie sollten ein Projekt (Spiel wäre die beste Wahl) in menschenfreundlicher Sprache finden und es dem Kind zeigen.
Wie ich traurig bin, habe ich keine Ahnung, ob diese Geschichte wahr ist oder nicht. Es ist immer noch sehr cool.
Auch noch eine Sache. Ich erinnere mich an meine ersten Erfahrungen mit der Programmierung -
MessageBox
in Delphi. Es war cool, weil ich den Computer dazu bringen konnte, das zu tun, was ich wollte und sofort das Ergebnis sah.Dann erschienen Mikrocontroller. Sie waren sogar noch besser, weil mein Code die reale Welt verändern könnte. Ich meine, das Zuweisen von Werten zu Variablen war nicht mehr so abstrakt, da eine Spannung am Ausgangsanschluss auftrat, die dann dazu führte, dass sich mein Motor bewegte. Es war cool. Vielleicht möchten Sie diesen Weg wählen - zeigen Sie dem Kind etwas wie Arduino.
Ich denke, es geht darum, das Ergebnis zu verändern und zu sehen.
quelle
Zeigen Sie ihr das Endergebnis einiger der Dinge, die Sie getan haben. Sprechen Sie allgemein über Ihre Rolle in den Projekten. Vielleicht helfen Sie ihr sogar dabei, eine Hallo-Welt zu machen, wenn sie interessiert scheint.
quelle
Meine liebste Analogie zum Programmieren ist Zauberei (Harry-Potter-Stil) wie Satanicpuppy. Ich benutze dies sowohl für nicht-technische Kollegen als auch für Kinder, es scheint ziemlich gut zu funktionieren und vermittelt definitiv die Kraft, die Computer uns geben.
Computer sind unsere Zauberstäbe. Sie ermöglichen es uns, mit der richtigen Bewegung des Handgelenks und Beschwörungsformeln zu zaubern. Als Programmierer haben wir Zugriff auf Zauberbücher (Bibliotheken), die von unseren Vorgängern bearbeitet und verfeinert wurden. Wir können neue Zaubersprüche und Beschwörungsformeln erstellen oder mit vorhandenen arbeiten. Manche sind einfach, manche erfordern mehr Übung, um sie wirklich effektiv einzusetzen, es gibt oft Kompromisse und viele verschiedene Möglichkeiten, um dasselbe Problem zu lösen (sollte ich einen guten Trank oder eine Beschwörung verwenden?).
Diese erweiterte Metapher kann wirklich gut ausgedehnt werden und ermöglicht es mir oft, meine Leidenschaft für das Programmieren auf eine Weise zu vermitteln, die für Leute außerhalb des Feldes zugänglich ist.
quelle
Der beste Weg, Kinder zu verstehen, ist, zuerst ein Kind zu sein ..! Als Kind hasste ich es, Hausaufgaben, Auferlegungen usw. zu machen! Es gibt also Einstiegspunkte, an denen Sie ihre Aufmerksamkeit auf sich ziehen können. Obwohl wir nicht alles erklären können, können wir in 30 Minuten versuchen, ihnen eine Art von Belichtung zu geben, bei der interessierte Kinder sie als Inspiration finden. Beginnen Sie mit verwandten Themen wie Hausaufgaben usw. Erklären Sie ihnen, wie ein Computer in wenigen Sekunden Impositionen usw. erstellen kann.
Ich wünsche dir alles Gute.. ! Gut gemacht
quelle