Die besten Möglichkeiten, einem Anfänger das Programmieren beizubringen?[geschlossen]

StackOverflow https://stackoverflow.com/questions/3088

  •  08-06-2019
  •  | 
  •  

Frage

Ursprüngliche Frage

Ich bin derzeit damit beschäftigt, meinem Bruder das Programmieren beizubringen.Er ist ein absoluter Anfänger, aber sehr schlau.(Und er will tatsächlich lernen).Mir ist aufgefallen, dass sich einige unserer Sitzungen in Kleinigkeiten verzetteln, und ich habe das Gefühl, dass ich nicht besonders gut organisiert war.(Aber die Antworten auf diesen Beitrag haben sehr geholfen.)

Was kann ich besser machen, um ihn effektiv zu unterrichten?Gibt es eine logische Reihenfolge, mit der ich Konzept für Konzept durchgehen kann?Gibt es Komplexitäten, die ich bis später vermeiden sollte?

Die Sprache, mit der wir arbeiten, ist Python, aber Ratschläge in jeder Sprache sind willkommen.


So helfen Sie

Wenn Sie gute Antworten haben, fügen Sie Ihrer Antwort bitte Folgendes hinzu:

  • Einsteigerübungen und Projektideen
  • Ressourcen für den Unterricht von Anfängern
  • Screencasts / Blogbeiträge / kostenlose E-Books
  • Drucken Sie Bücher, die für Anfänger geeignet sind

Bitte beschreiben Sie die Ressource mit einem Link dazu damit ich einen Blick darauf werfen kann.Ich möchte, dass jeder weiß, dass ich einige dieser Ideen definitiv verwendet habe.Ihre Einsendungen werden in diesem Beitrag zusammengefasst.


Internetquellen für Unterrichtsanfänger:


Empfohlene gedruckte Bücher für den Unterricht von Anfängern

Keine korrekte Lösung

Andere Tipps

Ich musste mit mehreren Programmieranfängern zusammenarbeiten (habe nie eine Codezeile geschrieben) und werde diesen Herbst einen außerschulischen Workshop mit Oberstufenschülern durchführen.Das kommt der Dokumentation am nächsten.Es ist noch in Arbeit, aber ich hoffe, es hilft.

1) FizzBuzz. Beginnen Sie mit Befehlszeilenprogrammen.Sie können sehr schnell einige unterhaltsame Spiele oder Tools schreiben und alle Sprachfunktionen sehr schnell erlernen, ohne zuerst die GUI-Tools erlernen zu müssen.Diese frühen Apps sollten so einfach sein, dass Sie keine echten Debugging-Tools verwenden müssen, damit sie funktionieren.

Nicht zuletzt sind Dinge wie FizzBuzz gute Projekte.Ihre ersten Apps sollten sich nicht mit Datenbanken, Dateisystemen, Konfiguration usw. befassen müssen.Dies sind Konzepte, die die meisten Menschen einfach verwirren, und wenn Sie nur die Syntax und die grundlegenden Framework-Funktionen lernen, brauchen Sie wirklich keine größere Komplexität.

Einige Projekte:

  • Hallo Welt!
  • Nehmen Sie das Jahr meiner Geburt und berechnen Sie mein Alter (nur (jetzt – damals) keine Monatskorrekturen). (einfache Mathematik, Eingabe, Ausgabe)
  • Fragen Sie nach einer Richtung (oben, unten, links, rechts) und teilen Sie dem Benutzer dann sein Schicksal mit (in ein Loch fallen, einen Kuchen finden usw.). (Boolesche Logik)
  • FizzBuzz, aber zähle einmal pro Sekunde. (Schleifen, Timer und mehr Logik)
  • Abhängig von ihrem Alter mögen manche eine App sehr, die die Benutzer in bestimmten Abständen zufällig beleidigt. (Schleifen, Arrays, Timer und Zufall, wenn Sie das Intervall zufällig festlegen)

2) Einfaches Projekt Sobald sie die Sprachfunktionen gut beherrschen, können Sie ein Projekt starten (einfache, unterhaltsame Spiele funktionieren gut).Sie sollten versuchen, das erste Projekt innerhalb von 6-12 Stunden fertigzustellen.Nehmen Sie sich nicht die Zeit, es frühzeitig zu entwerfen.Lassen Sie sie es entwerfen, auch wenn es scheiße ist.Wenn es scheitert, sprechen Sie darüber, was passiert ist und warum es fehlgeschlagen ist. Wählen Sie dann ein anderes Thema und beginnen Sie erneut.

Hier beginnen Sie mit der Einführung der Debugging-Funktionen Ihrer Tools.Auch wenn Sie das Problem durch das Lesen des Codes erkennen können, sollten Sie ihnen den Umgang mit den Tools beibringen und ihnen dann zeigen, wie Sie es erkennen können.Dies dient dem doppelten Zweck, die Debugging-Tools zu erlernen und zu lehren, wie man Fehler ohne Tools identifiziert.

Sobald das Projekt funktionsfähig ist, können Sie es zur Einführung von Refactoring-Tools verwenden.Es ist gut, wenn Sie das Projekt dann um einige einfache Funktionen erweitern können, die Sie nie geplant haben.Dies erfordert in der Regel ein Refactoring und umfangreiches Debuggen, da nur sehr wenige Leute beim ersten Mal auch nur halbwegs guten Code schreiben.

Einige Projekte:

3) Echtes Projekt Starten Sie ein echtes Projekt, das einige Zeit dauern kann.Verwenden Sie eine ordnungsgemäße Quellcodeverwaltung und legen Sie Wert auf einen Zeitplan.Führen Sie dieses Projekt wie ein echtes Projekt aus, es ist nicht zuletzt eine gute Erfahrung, mit den Tools umgehen zu müssen.

Natürlich müssen Sie dies für jede Person anpassen.Das Wichtigste, was ich herausgefunden habe, ist, selbst die ersten einfachen Apps auf das anzuwenden, was die Person interessiert.

Einige Projekte:

  • Tetris
  • Textdateibasierte Blog-Engine
  • Fortgeschrittenere Robotik funktioniert

Sie könnten es mit verwenden Alice.Es handelt sich um ein 3D-Programm, das für den Einsatz in Einführungskursen in die Programmierung konzipiert ist.

Die beiden größten Hindernisse für neue Programmierer sind oft:

  • Syntaxfehler
  • Motivation (etwas Sinnvolles und Lustiges schreiben, anstatt etwas Gekünstetes)

Alice verwendet eine Drag-and-Drop-Schnittstelle zum Erstellen von Programmen und vermeidet so die Möglichkeit von Syntaxfehlern.Mit Alice können Sie 3D-Welten konstruieren und Ihren Code (einfache) 3D-Charaktere und Animationen steuern lassen, was normalerweise viel interessanter ist als die Implementierung verknüpfter Listen.

Erfahrene Programmierer mögen Alice als Spielzeug betrachten und sich über das Ziehen und Ablegen von Codezeilen lustig machen, aber Forschung zeigt, dass dieser Ansatz funktioniert.

Haftungsausschluss:Ich habe an Alice gearbeitet.

Ich empfehle Logo (auch bekannt als die Schildkröte), um die Grundkonzepte zu erlernen.Es bietet eine gute Sandbox mit sofortigem grafischen Feedback und Sie können Schleifen, Variablen, Funktionen, Bedingungen usw. demonstrieren. Diese Seite bietet ein hervorragendes Tutorial.

Wechseln Sie nach Logo zu Python oder Ruby.Ich empfehle Python, da es auf ABC basiert, das für den Programmierunterricht erfunden wurde.

Wenn ich Programmieren unterrichte, muss ich den Vorschlag von EHaskins unterstützen, zunächst einfache Projekte und dann komplexe Projekte durchzuführen.Der beste Weg zu lernen besteht darin, mit einem eindeutigen Ergebnis und einem messbaren Meilenstein zu beginnen.Es sorgt dafür, dass der Unterricht konzentriert bleibt, ermöglicht es dem Schüler, Fähigkeiten aufzubauen und diese Fähigkeiten dann weiter auszubauen, und gibt dem Schüler etwas, das er seinen Freunden zeigen kann.Unterschätzen Sie nicht die Macht, etwas für die eigene Arbeit vorzeigen zu können.

Theoretisch können Sie bei Python bleiben, da Python fast alles kann.Es ist ein gutes Mittel, um objektorientierte Programmierung und (die meisten) Algorithmen zu lehren.Sie können Python im interaktiven Modus wie eine Befehlszeile ausführen, um ein Gefühl dafür zu bekommen, wie es funktioniert, oder ganze Skripte auf einmal ausführen.Sie können Ihre Skripte spontan interpretieren oder in Binärdateien kompilieren.Es gibt Tausende von Modulen zur Erweiterung der Funktionalität.Sie können einen grafischen Taschenrechner erstellen, wie er im Lieferumfang von Windows enthalten ist, oder Sie können einen IRC-Client oder etwas anderes erstellen.

XKCD beschreibt Pythons Leistungsfähigkeit etwas besser:"You're flying! How?" "Python!"

Danach können Sie zu C# oder Java wechseln, obwohl diese nicht viel bieten, was Python nicht bereits hat.Der Vorteil davon besteht darin, dass sie eine Syntax im C-Stil verwenden, die viele (ich wage zu sagen, die meisten?) Sprachen verwenden.Sie müssen sich noch keine Gedanken über die Speicherverwaltung machen, können sich aber daran gewöhnen, dass der Sprachdolmetscher etwas mehr Freiheit und weniger Handgriffe hat.Python erzwingt Leerzeichen und Einrückungen, was meistens, aber nicht immer, nett ist.Mit C# und Java können Sie Ihren eigenen Leerraum verwalten und gleichzeitig stark typisiert bleiben.

Von da an ist der Standard C oder C++.Die Freiheit in diesen Sprachen ist geradezu existenziell.Sie sind nun für Ihre eigene Speicherverwaltung verantwortlich.Es gibt keine Müllabfuhr, die Ihnen helfen könnte.Hier lehren Sie die wirklich fortgeschrittenen Algorithmen (wie Mergesort und Quicksort).Hier erfahren Sie, warum „Segmentierungsfehler“ ein Schimpfwort ist.Hier laden Sie den Quellcode des Linux-Kernels herunter und blicken in den Abgrund.Beginnen Sie mit dem Schreiben eines Ringpuffers und eines Stapels für die String-Manipulation.Dann arbeiten Sie sich nach oben.

Ein guter Python-Kurs ist der MIT Eine sanfte Einführung in die Programmierung mit Python.Es ist alles kostenlos online und Sie müssen kein MIT-Überstudent sein, um es zu verstehen.

Bearbeiten [Justin Standard]

Für diesen Kurs wird dieses kostenlose Online-Buch verwendet: Wie man wie ein Informatiker denkt
Ich finde es auf jeden Fall sehr nützlich.

Python-Paket VPython -- 3D-Programmierung für gewöhnliche Sterbliche (Videoanleitung).

Codebeispiel:

from visual import *

floor = box (pos=(0,0,0), length=4, height=0.5, width=4, color=color.blue)
ball = sphere (pos=(0,4,0), radius=1, color=color.red)
ball.velocity = vector(0,-1,0)
dt = 0.01

while 1:
    rate (100)
    ball.pos = ball.pos + ball.velocity*dt
    if ball.y < ball.radius:
        ball.velocity.y = -ball.velocity.y
    else:
        ball.velocity.y = ball.velocity.y - 9.8*dt

VPython-Hüpfball http://vpython.org/bounce.gif

Beginnen Sie mit Turtle-Grafiken in Python.

Ich würde die Schildkrötengrafiken verwenden, die standardmäßig in Python enthalten sind.Es ist visuell und einfach und Sie können diese Umgebung nutzen, um viele Programmierkonzepte wie Iteration und Prozeduraufrufe einzuführen, bevor Sie sich zu sehr mit der Syntax befassen.Betrachten Sie die folgende interaktive Sitzung in Python:

>>> from turtle import *
>>> setup()
>>> title("turtle test")
>>> clear()
>>>
>>> #DRAW A SQUARE
>>> down()        #pen down
>>> forward(50)   #move forward 50 units
>>> right(90)     #turn right 90 degrees
>>> forward(50)
>>> right(90)
>>> forward(50)
>>> right(90)
>>> forward(50)
>>>
>>> #INTRODUCE ITERATION TO SIMPLIFY SQUARE CODE
>>> clear()
>>> for i in range(4):
        forward(50)
        right(90)
>>>
>>> #INTRODUCE PROCEDURES   
>>> def square(length):
        down()
        for i in range(4):
            forward(length)
            right(90)
>>>
>>> #HAVE STUDENTS PREDICT WHAT THIS WILL DRAW
>>> for i in range(50):
        up()
        left(90)
        forward(25)
        square(i)
>>>
>>> #NOW HAVE THE STUDENTS WRITE CODE TO DRAW
>>> #A SQUARE 'TUNNEL' (I.E. CONCENTRIC SQUARES
>>> #GETTING SMALLER AND SMALLER).
>>>
>>> #AFTER THAT, MAKE THE TUNNEL ROTATE BY HAVING
>>> #EACH SUCCESSIVE SQUARE TILTED

Bei dem Versuch, die letzten beiden Aufgaben zu erfüllen, werden sie viele Fehlversuche haben, aber die Fehlschläge werden visuell interessant sein und sie werden schnell lernen, wenn sie versuchen herauszufinden, warum das Ergebnis nicht das war, was sie erwartet hatten.

Entscheidend ist, dass die betreffende Person ein Problem haben muss, das sie lösen möchte.Wenn Sie kein Programm haben, das Sie schreiben möchten (und etwas Vernünftiges und Klardefiniertes, nicht „Ich möchte das nächste Quake schreiben!“), können Sie das Programmieren nicht lernen, weil Sie nichts haben, was Sie motivieren könnte .Ich meine, Sie könnten ein Buch lesen und ein grobes Verständnis der Syntax und Semantik einer Sprache erlangen, aber bis dahin ein Programm, das Sie schreiben möchten Du wirst nie die Brennnessel fassen.

Wenn dieser Impuls vorhanden ist, sind alles andere nur Kleinigkeiten.

Ich weiß nicht, ob das hier schon jemand erwähnt hat, aber vielleicht möchten Sie einen Blick darauf werfen Zed Shaw'S Lernen Sie Python auf die harte Tour

Hoffe das hilft

http://tryruby.hobix.com/">Ruby ausprobieren (in Ihrem Browser)

Dies ist ein fantastisches Buch, das meine kleinen Brüder früher gelernt haben:

http://pine.fm/LearnToProgram/

Das Wichtigste ist natürlich, SOFORT nach der Lektüre des Buches mit einem echten, nützlichen Programm zu beginnen.

Wenn er interessiert ist, sind die kleinen Details nicht die guten Teile?Mit Python haben Sie die GUI bereits herausgeschnitten, sodass keine Verwirrung mehr entsteht.Warum nicht ein Projekt, ein Spiel oder so etwas auswählen und es umsetzen?Das klassische Hi-Lo-Zahlen-Ratespiel kann einfach über die Befehlszeile in 20 bis 30 Codezeilen implementiert werden (natürlich abhängig von der Sprache) und bietet Ihnen Variablen, Bedingungen, Schleifen und Benutzereingaben.

Ich würde ihn einfach jede Menge Code schreiben lassen.Lassen Sie ihn alles fahren, was Sie tun, und stehen Sie einfach zur Verfügung, um Fragen zu beantworten.

Ob Sie es glauben oder nicht, nach ein paar Monaten, in denen er jede Menge beschissenen Code geschrieben hat, wird er anfangen, auf die Idee zu kommen und bessere Programme zu schreiben.An diesem Punkt können Sie sich in Details (Speicher usw.) vertiefen und auch über allgemeine Designprinzipien sprechen.

Ich habe gehört, dass das, was die großen Künstler von den mittelmäßigen unterscheidet, darin besteht, dass sie jedes Mal, wenn sie üben, etwas verbessern, egal wie klein es ist.Lassen Sie Ihren Bruder üben, und er wird jedes Mal besser, wenn er sich an die Tastatur setzt.

Bearbeiten:[Justin Standard]

Esteban, das erinnert mich an einen kürzlichen Horrorbeitrag zum Codieren, und ich Tun denke, du hast recht.Aber ich denke, es lohnt sich immer noch, Methoden dafür zu finden Führung seine Praxis.Keine Frage, ich möchte, dass er so viel Code schreibt, wie er kann.Das ist einer der Gründe, warum ich nach Beispielprojekten frage.

Beginnen Sie zunächst wie alle anderen:mit einem Hallo Welt Programm.Es ist einfach und vermittelt ihnen ein grundlegendes Gefühl für den Aufbau eines Programms.Versuchen Sie, sich an die Zeit zu erinnern, als Sie zum ersten Mal programmierten, und wie schwierig einige der Konzepte waren – fangen Sie einfach an.

Fahren Sie nach Hello World mit der Erstellung einiger grundlegender Variablen und der Arithmetik fort und wenden Sie sich dann der booleschen Logik und if/else-Anweisungen zu.Wenn Sie eines Ihrer alten Programmierlehrbücher haben, schauen Sie sich einige der frühen Beispiele an und lassen Sie ihn diese durchgehen.Versuchen Sie einfach nicht, zu viel auf einmal vorzustellen, sonst wird es überwältigend und verwirrend.

Wenn Sie Ihrem Bruder das Programmieren beibringen, sollten Sie darauf achten, dass er sich nicht zu sehr auf Sie verlässt.Wenn ich anderen helfe, beginnen sie oft, mich als Antwortbuch auf alle ihre Fragen zu betrachten, und anstatt zu experimentieren, um eine Antwort zu finden, fragen sie mich einfach.Oft experimentiert der beste Lehrer und jedes Mal, wenn Ihr Bruder eine Frage hat wie "Was wird passieren, wenn ich 2 zu einer Schnur hinzufüge?" Sie sollten ihm sagen, er solle es ausprobieren und selbst sehen.Außerdem ist mir aufgefallen, dass es hilfreich ist, wenn ich jemandem ein Konzept nicht vermitteln kann, wenn ich mir einen Beispielcode anschaue, in dem wir uns jedes Segment einzeln ansehen und es Stück für Stück erklären können.Nebenbei bemerkt haben Programmieranfänger oft Probleme mit der Idee der objektorientierten Programmierung. Sie sagen, sie verstehen es, wenn man es ihnen beibringt, bekommen aber erst dann ein klares Konzept davon, wenn sie es tatsächlich implementieren.

Ich habe früher Programmieren unterrichtet und Ihr Bruder hat gegenüber den meisten meiner Schüler einen großen Vorteil, den er lernen möchte :)

Wenn Sie sich für C entscheiden Ein Freund hat eine Website Das verfügt über die Art von Programmen, die die Benutzer älterer Generationen als einfache Eingaben in Erinnerung haben.Die komplexeren von ihnen verwenden Ncurses, was ihre Verwendung als Lehrmittel irgendwie zunichte macht, aber einige von ihnen sind winzig kleine Dinge und man kann eine Menge lernen, ohne dass es einem beigebracht wird.

Persönlich denke ich, dass Python und Ruby großartige Muttersprachen abgeben würden.

BEARBEITEN:Liste der Programmieraufgaben für Anfänger über Nacht aufgetaucht ist, könnte genau das sein, wonach Sie suchen.

Es hängt wirklich vom Lernstil Ihres Bruders ab.Viele Menschen lernen schneller, indem sie sich die Hände schmutzig machen und sich einfach darauf einlassen, die Konzepte und das Gesamtbild herauskristallisieren, während sie Fortschritte machen und ihr Wissen erweitern.

Ich bevorzuge es, mit dem Gesamtbild zu beginnen und mich dann auf das Wesentliche zu konzentrieren.Das erste, was ich wissen wollte, war, wie das alles zusammenpasst, dann dieser ganze objektorientierte Kauderwelsch, dann etwas über Klassen und Instanzen und so weiter.Ich möchte die zugrunde liegenden Konzepte und ein wenig Theorie kennen, bevor ich die Syntax lerne.Ich hatte einen kleinen Vorteil, weil ich vor 20 Jahren einige Spiele in BASIC geschrieben habe, aber seitdem nicht mehr viel.

Vielleicht ist es sinnvoll, einen Produktionsprozess zu beleuchten, indem man mit einem allgemeinen Leitbild, dann einem Plan und/oder Flussdiagramm beginnt und dann einen Pseudocode ausarbeitet (in Anlehnung an die Syntax, die Sie letztendlich verwenden werden), bevor Sie den Code tatsächlich schreiben.

Die goldene Regel besteht hier darin, den Lernstil Ihres Schülers herauszufinden.

Wenn Ihr Bruder Zugriff auf iTunes hat, kann er Videovorlesungen eines Einführungskurses in die Informatik von Richard Buckland an der University of New South Wales herunterladen.Er ist ein engagierter Dozent und behandelt die Grundlagen der Informatik und der C-Sprache.Wenn nichts anderes passiert, sagen Sie Ihrem Bruder, er soll die Videos im Hintergrund abspielen, und einige Konzepte könnten durch Osmose in ihn eindringen.:) :)

COMP1917 Higher Computing – 2008 Sitzung 1 http://deimos3.apple.com/WebObjects/Core.woa/Browse/unsw.edu.au.1504975442.01504975444

Wenn der Link nicht funktioniert, finden Sie hier einen Pfad:

Startseite -> iTunes U -> Ingenieurwesen -> COMP1917 Higher Computing – 2008 Sitzung 1

Da ist ein Wikibook, das sich ziemlich gut zum Erlernen von Python eignet.

Ich weiß nicht, wie die Wikibooks für andere Sprachen sind, aber ich persönlich habe Python aus dem Wikibook gelernt, so wie es im Februar 2007 war

PS: Falls Sie es nicht kennen Wikibooks, es ist im Grunde die Wikipedia-Version des Buchautorens.Es ist schwer zu beschreiben, aber wenn Sie sich ein paar der dortigen Bücher ansehen, werden Sie sehen, wie es funktioniert

Ich denke, Python ist eine großartige Idee.Ich würde ihm ein paar grundlegende Aufgaben geben, die er alleine erledigen kann, und ihm sagen, dass alle Sackgassen, in die er gerät, wahrscheinlich durch einen Besuch bei Google gelöst werden können.Zumindest bei mir blieb es immer besser hängen, wenn ich ein Problem alleine löste, als wenn mir jemand die Lösung erzählte.

Einige mögliche Projekte (in keiner bestimmten Reihenfolge):

  • Münzwurfsimulator.Lassen Sie den Benutzer eine gewünschte Anzahl von Versuchen für den Münzwurf eingeben.Führen Sie es aus und zeigen Sie die Ergebnisse zusammen mit dem Prozentsatz für Kopf oder Zahl an.

  • Erstellen Sie einen Temperaturkonverter mit einem Menü, das Benutzereingaben benötigt, um auszuwählen, welche Art von Umrechnung der Benutzer durchführen möchte.Nachdem Sie die Konvertierung ausgewählt und durchgeführt haben, sollte es zum Hauptmenü zurückkehren.

    Hier ist ein Beispiel für einen erweiterten Konverter mit derselben Idee: http://pastebin.org/6541

  • Erstellen Sie ein Programm, das eine numerische Eingabe entgegennimmt und die Buchstabennote anzeigt, in die es übersetzt werden soll.Am Ende wird die Eingabe anhand von if- und elif-Anweisungen ausgewertet, um herauszufinden, wo sie passt.

  • Machen Sie ein einfaches Quiz mit mehreren Multiple-Choice-Fragen oder füllen Sie die leeren Fragen aus.Am Ende wird angezeigt, wie es dem Benutzer ergangen ist.Er kann alle Fragen auswählen, die er möchte.

  • Nehmen Sie eine (vermutlich große) Anzahl von Pennys als Eingabe und wandeln Sie diese in größere Nennwerte um.Zum Beispiel: 149 Pennys = 1 Dollar, 1 Quarter, 2 Dimes und 4 Pennys.

  • Erstellen Sie einen einfachen Listenmanager.Sie können Listen hinzufügen/löschen und Einträge in diesen Listen hinzufügen/löschen.Hier ist ein Beispiel für einen Weihnachtslistenmanager: http://pastebin.org/6543

  • Erstellen Sie ein Programm, das erstellt und dann testet, ob eingegebene Zahlen ein magisches Quadrat bilden (mit einem 2D-Array).Hier ist ein Beispielcode, aber er sollte eigentlich bei jedem Schritt das Quadrat ausdrucken, um zu zeigen, wo sich der Benutzer in Bezug auf die Bildung des Quadrats befindet: http://pastebin.org/6544

Ich würde auch vorschlagen, ein paar Sachen mit xTurtle oder einem anderen Grafikmodul zu machen, um Abwechslung zu schaffen und zu verhindern, dass er langweilig wird.Natürlich handelt es sich hier um Programmierübungen und nicht um die Skripterstellung, für die viele Leute eigentlich Python verwenden würden, aber die Beispiele, die ich gegeben habe, stammen ziemlich direkt aus der Zeit, als ich mit Python lernte, und es hat für mich großartig geklappt.Viel Glück!

Lass es einfach Spaß machen!

Erstaunlicherweise könnte Scala das einfachste sein, wenn Sie es versuchen Kojo

Wenn Ihr Bruder Rätsel mag, würde ich es empfehlen Python-Herausforderung.Ich würde es nicht als formelles Lehrmittel in einem 1-zu-1-Tutorial verwenden, aber es ist etwas, was er tun kann, wenn Sie nicht zusammen sind, um sich selbst herauszufordern und Spaß zu haben.

Nachdem ich ein paar kostenlose E-Books durchgesehen hatte, fand ich das beste Buch zum Erlernen des Programmierens: Head First Programming, veröffentlicht von O'Reily Press.Es verwendet Python als Sprache und bietet Ihnen Programme, mit denen Sie von Anfang an arbeiten können.Sie sind alle interessanter als „Hello World“.Es ist das Geld wert, das ich dafür ausgegeben habe, und da es schon eine Weile auf dem Markt ist, finden Sie möglicherweise ein günstigeres gebrauchtes Exemplar bei Ebay oder Amazon.

Wenn Sie die Grundlagen des Programmierens vermitteln möchten, ohne sprachspezifisch zu sein, gibt es eine Anwendung namens Kratzen das wurde am MIT erstellt.Es soll Menschen dabei helfen, Programmierkenntnisse zu entwickeln.Wenn Benutzer Scratch-Projekte erstellen, lernen sie, Bedingungen, Schleifen usw. zu erstellen.Es gibt auch eine Community von Scratch-Projekten, die heruntergeladen werden können – so können Sie die Programme anderer Leute erkunden und sehen, wie sie erstellt wurden.

Ich denke, sobald er die Grundlagen (Variablen, Schleifen usw.) beherrscht, sollten Sie versuchen, ihm dabei zu helfen, etwas Bestimmtes zu finden, an dem er interessiert ist, und ihm dabei helfen, die Notwendigkeiten zu erlernen, um dies zu verwirklichen.Ich weiß, dass ich viel eher geneigt und motiviert bin, etwas zu tun, wenn es für mich von Interesse ist.Lassen Sie ihn auch einige der schwierigeren Probleme bewältigen. Nichts ist befriedigender als der Moment, in dem Sie es selbst herausfinden.

Mir wurde beigebracht, wie man Probleme auf sprachunabhängige Weise mithilfe von Flussdiagrammen löst PDL (Programmdesignsprache).Nach ein paar Wochen lernte ich, die PDL, die ich geschrieben hatte, in eine Sprache umzuwandeln.Ich bin froh, dass ich auf diese Weise gelernt habe, denn ich habe den Großteil meiner Jahre damit verbracht, zu programmieren und Probleme zu lösen, ohne an eine Sprache gebunden zu sein.Welche Sprache ich verwende, war immer ein Implementierungsdetail und nicht Teil des Designs.

Eine Schlüsselkompetenz besteht darin, das Problem lösen zu müssen, indem man es in seine grundlegenden Schritte zerlegt.Ich denke, es ist eines der Dinge, die diejenigen, die programmieren können, von denen, die es nicht können, unterscheiden.

Was die Art und Weise angeht, wie man die Reihenfolge der Konzepte einer Sprache angeht, ist es meiner Meinung nach am einfachsten, sich dafür zu entscheiden, ein Projekt im Kopf zu haben und die Konzepte so anzugehen, wie sie benötigt werden.Auf diese Weise können Sie sie nach Bedarf auf etwas anwenden, an dem Sie interessiert sind.Beim Erlernen einer Sprache ist es gut, mehrere einfache Projekte im Kopf zu haben und einige mit zunehmender Komplexität.Wenn Sie sich für diese entscheiden, können Sie die benötigten Konzepte und deren Reihenfolge festlegen.

Ich würde empfehlen, sich auch einige Screencasts anzusehen – sie werden im Allgemeinen im Kontext einer bestimmten Technologie und nicht einer Sprache erstellt. Wenn jedoch Python-Code angezeigt wird, reicht das aus :).Der Punkt ist: Sie werden von einigen guten Programmierern erstellt und es ist eine gute Sache, zu beobachten, wie gute Programmierer programmieren.Sie und Ihr Bruder könnten auch ein bisschen Peer-Programmierung machen, das wäre vielleicht eine noch bessere Idee.Vergessen Sie nur nicht zu erklären, WARUM Sie etwas auf diese Weise und nicht auf diese Weise tun.Ich denke, der beste Weg, Programmieren zu lernen, besteht darin, gute Beispiele zu nutzen und zu versuchen, die schlechten gar nicht erst zu sehen.

Robert Read hat einen nützlichen Leitfaden geschrieben, Wie man ein Programmierer wird, das einen breiten Bereich von Programmierproblemen abdeckt, die für Anfänger hilfreich sein könnten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top