Bitte hilf mir dabei, diese Repository zu übersetzen!
Haskell erlernen ist eine gute Idee, aber du musst es nicht alleine machen. Das Buch Haskell Programming from First Principles von Chris Allen und Julie Moronuki stellt das perfekte Curriculum für Gruppentraining dar. Da ich bei der Kreation dieses Buchs selbst Trainingsgruppen erstellt habe, kann ich die Wirksamkeit davon bezeugen: Es hält dich motiviert, auf Schiene und ehrlich. Du könntest einer existierenden Gruppe beitreten, aber es ist meist besser, deine eigene zu beginnen, selbst wenn du dich nicht für qualifiziert empfindest. Ich wusste so gut wie gar nichts über Haskell oder funktionale Programmierung als ich meine erste Gruppe in New York City begonnen habe. Ich finde, das ist die bestmögliche Lösung - Dein Lernen ist nicht gestört oder deine Meinung von Erfahrungen oder irrelevanten Erwartungen gestört und du kannst mit anderen Anfängern lernen. Ihr seid alle zusammen! Immerhin sind die meisten Haskell-Entwickler - hoffen wir - noch nicht einmal geboren. Lernen Sie heute, und du wirst immer noch Teil der Vorhut.
Diese Repository bringt eine Reihe von Ressourcen für Menschen, die ihre eigenen Haskell Studiengruppen beginnen möchten, aber nicht sicher sind, wie sie es tun sollen. Hier finden Sie Ratschläge für die Publikation Ihrer Gruppe, Leitlinien für Teilnehmer, einen empfohlenen Zeitplan und andere Ressourcen. Wenn Sie mögen, was Sie sehen, ist hier, was ich denke, dass Sie tun sollten :
- Wenn du deine eigene Studiengruppe anfängst, forkst du diese Repo und änderst sie für deinen eigenen Zweck. Wenn du das tust, dann bitte ich nur, dass du den Geist respektierst, in dem dieses Material angeboten wird und mir keine wesentlichen Änderungen an der Pädagogik oder dem Prozess ankreidest.
- Füge einen Link zu deiner Studiengruppe inder untenstehenden Liste, und reiche eine pull request zu deiser Repo ein, um sie zu publizieren. Fragen Sie nur, wenn Sie beabsichtigen, (mehr oder weniger) meinen Empfehlungen zu folgen.
- In Ihrer eigenen Repo schlage ich vor, dass Sie die
guidelines.md
Datei zu IhrerREADME.md
machen, um alle Änderungen vorzunehmen. Sie können auch zurück zu dieser Repo verlinken, wenn Sie möchten. - In diesem Repo sind einige Ressourcen enthalten. Benutzen Sie sie. Fügen Sie welche hinzu. Erwarten Sie, dass ich mehr hinzufüge - vielleicht.
Haskell Programming from First Principles, auch bekannt als das Haskellbook, ist die Grundlage des von diesem Repo vorgeschlagenen Studiengangs. Erwarten Sie nicht, angemessene Alternativen zu finden. Die Autoren haben in der Vergangenheit Rabatt-Codes für die Mitglieder der Studiengruppen, wie durch die Leitlinien festgelegt. Ich kann aber selbstverständlich keine Rabatte selbst garantieren. Bitte kontaktieren Sie die Autoren und fragen Sie sie direkt - bevor Sie das Angebot an Ihre Gruppe bekannt geben.
Erste Schritte
Sie können es ganz auf eigene Faust machen, aber ich habe Meetup zu einem lohnenden Veranstaltungsort aufgrund seiner eingebauten Netzwerkeffekte gefunden. Entwickler scheinen dort überrepräsentiert zu sein, und Ihre Gruppe wird jedem bekannt gegeben, der vorher ein ähnliches Interesse bezeugt hat. Wenn deine Stadt oder Region eine eigene Haskell User Group oder eine andere sogar tangential verwandte Meetup Gruppe hat, solltest du sie bitten, dich zu einem Event Host zu machen, damit du Meetings selbst planen kannst und nicht bezahlen musst, um ein Meetup selbst zu starten. Du könntest nützliche Unterstützung von der lokalen Gemeinschaft erhalten, aber würde ich nicht unbedingt darauf zählen. Aber es tut nicht weh, um irgendwelche Haskell-Leute in deinem Gebiet zu erreichen und persönlich zu verschiedenen programmbezogenen Treffen (Haskell oder anders) zu gehen, um anzukündigen, dass du eine Studiengruppe anfängst. Die persönliche Berührung zählt noch sehr viel.
Das Wort verteilen
Sobald Sie sich verpflichtet haben, eine Gruppe zu gründen, müssen Sie Mitglieder finden. Vertrauen Sie mir, sie sind da draußen und warten auf jemanden mit mehr Initiative (das sind Sie), um sie zu finden. Ich empfehle, ein breites Netz zu werfen. Offensichtlich solltest du deine Absichten an die größeren Haskell- und funktionalen Programmiergemeinschaften verkünden. Aber es ist auch eine gute Idee, Mainstream-Entwickler, die ein Interesse an FP haben können, und sogar Nicht-Entwickler, die vielleicht ein neues Interesse oder einen Karrierepfad erkunden möchten zu erreichen. Wie für die früheren Optionen, meine Empfehlungen sind unten. Für die letzteren müssen Sie persönliche Überzeugung ausprobieren, sich auf Mundpropaganda verlassen und sonst Ihre eigene Phantasie verwenden.
- Reddit ist ein guter Startpunkt. Sie sollten einen Link zu Ihrem Meetup auf alle relevanten Subreddits posten. Einige Vorschläge:
- haskell
- functional programming
- programming
- javascript - das Übergewicht aller Entwickler, vor allem diejenigen, die neu zu Programmierung und / oder eifrig, neue Dinge zu lernen sind
- irgendwelche subreddits für Ihre lokale Gemeinschaft (vermutlich wenig Einfluss, aber Sie konnten auch versuchen)
- Hacker News - Kümmere dich um einen tollen Titel
- Lobsters - in der Regel hohe Qualität, aber Sie können eine Einladung zu verbinden benötigen
- IRC
#haskell
#haskell-beginners
- Slack - Du musst eventuell etwas recherchieren um die besten Gruppen zu finden
- FPChat
- Code Newbie
- Elm
- Alle anderen Programmierslacks local to your area, was auch immer Sprache oder Fokus sind - zum Beispiel in New York City habe ich zu diesen Slacks gepostet:
- Haskell Mailing Lists - nicht unbedingt eine gute direkte Quelle von Studenten, aber möglicherweise eine nützliche indirekte Quelle, wenn Sie höflich die Empfänger bitten, Ihre Notiz an potenziell interessierte Parteien weiterzugeben
- Social media
Ort
Das ist der schwerste Teil der Suche - einen physischen Raum zu finden. Während man es in einem Cafe (oder während der Nebenzeiten in einem Whole Foods Essbereich, die in der Regel geräumig sind), ist es viel besser, einen privaten Platz zu haben. Eine weiße Tafel und ein Projektor sind ideale Annehmlichkeiten. Fragen Sie potenzielle Mitglieder, vor allem die Entwickler, an ihren Arbeitsplätzen zu erkundigen. Kontaktieren Sie lokale Tech-Unternehmen. Wenn sie bereits Haskell oder andere funktionale Sprachen unterstützen, können sie sich interessieren. Oder surfen Sie auf Meetup zu lernen, wo andere Gruppen gehen. Ich schlage vor, dass Sie einen Backup-Platz haben, wenn möglich, falls Ihr primärer Standort plötzlich nicht verfügbar ist.
Zeitplan
Sobald Sie einen Platz gefunden haben, um sich zu treffen, können Sie eine wiederholbare Info-Seite für Meetup (wenn Sie es verwenden) entwerfen und sich auf einen Zeitplan begeben. Ich empfehle, dass Sie mindestens wöchentlich treffen, wenn Sie sinnvolle Fortschritte machen werden. Hier ist ein Beispiel für eine Meetupseite von meiner eigneen Studiengruppe in New York.
Pedagogie und Curriculum
Dieses Repo enthält einen separaten Satz von generischen [Leitlinien] (guidelines.md), einschließlich eines empfohlenen 12-Wochen-Curriculums für die ersten 18 Kapitel des Haskellbook, die Sie für Ihre eigene Studiengruppe verwenden können. Ich empfehle Ihnen, diese Richtlinien einfach so umzusetzen, wie sie sind und der Versuchung widerstehen, sie "aufzuweichen". So funktioniert das. Natürlich sollten Sie irgendwelche Details hinzufügen, die Ihren Umständen besonders entsprechen. Zum Beispiel Ihre eigenen Meetup-Seite und / oder Slack-Kanäle.
Ob Sie das Curriculum ausstrecken wollen, liegt bei Ihnen. Das erste Mal, als ich eine Studiengruppe hatte, haben wir das ganze Buch, ein Kapitel pro Woche (eines der längeren Kapitel, die wir über zwei Wochen gespalten haben) gelesen. Ich empfehle diesen Ansatz nicht mehr, da es schwer ist, die Leute für über 30 aufeinanderfolgende Wochen zu wöchentlichen Treffen zu begehen. Ich schlage vor, Sie beginnen mit 12 Wochen oder wie viele Sie für angemessen halten, um die ersten 18 Kapitel des Buches zu decken, die Sie durch Monate führt. Das deckt das Anfänger-Material ab. Wenn es Interesse an der Fortsetzung der Studiengruppe gibt, können Sie vorangehen und das nachfolgende Zwischenmaterial abdecken. Es ist auch vollkommen vernünftig zu erwarten, dass die Teilnehmer genug Kompetenz und Disziplin gewonnen haben, um dieses Material auf eigene Faust zu decken.
Zusätzlich zu den Ratschlägen und Ressourcen, die in diesem Repo enthalten sind, habe ich vorher über die Pädagogik geschrieben, die für diese Art von Studiengruppe eignen auf Medium:
Ihr erstes Treffen
Sie werden wahrscheinlich eine große Anzahl von Leuten zum ersten Treffen anziehen. Die meisten von ihnen werden Touristen sein. Im Allgemeinen können Sie erwarten, dass mehr Menschen zu RSVP zu allen Treffen als tatsächlich auftauchen. Und man kann im Laufe der Zeit eine gewisse Abwechslung erwarten. Für das erste Treffen, aber, tun Sie Ihr Bestes, um den Zweck der Studiengruppe zu erklären und wie Sie beabsichtigen, es zu führen. Sie können Fragen stellen, wenn Sie möchten, aber ich würde keine unaufgeforderten Ratschläge, allgemeine Fragen über Haskell oder Forderungen, FP in der Praxis zu verteidigen.
So schnell wie möglich in die Übungen gehen. Da es das erste Treffen ist, könnte eine allgemeine Präsentation auf Lambda-Kalkül nützlich sein, um das Eis zu brechen, aber ich würde empfehlen, nur eine kurze Intro zu machen und zu treffen und zu grüßen und dann alle in Mini-Gruppen zu teilen, um über ihre Hausaufgaben zu gehen, es sei denn, Sie haben eine sehr kleine Weiche. Sie können die Antworten kollektiv übergeben, nachdem jeder eine Chance gehabt hat, ihre Arbeit zu teilen. Es ist wichtig, von Anfang an Gruppennormen zu etablieren.
Aufeinanderfolgende Meetings
Mehr oder weniger, tu, was du die erste Woche gemacht hast, aber ohne das Treffen. Neulinge müssen auf eigene Faust aufholen, da man sich nicht ständig von Menschen begnügen kann, die von Anfang an nicht teilnehmen konnten. Mit anderen Worten: Sei kein Märtyrer, sondern lade sie ein, ihre eigene Initiative zu ergreifen, um ihre Kollegen außerhalb der regulären Tagungszeiten zu erreichen, um die Arbeit zu decken, die sie verpasst haben. Ich habe es für nützlich gehalten, wenn ich gemeinsam Übungen mache, um alle zu bitten, ihre Computer wegzulegen und sie noch einmal einfach so zu machen. Die Wiederholung ist heilsam und es fördert auch die Solidarität der Gruppe. Diejenigen, die ihre Hausaufgaben gemacht haben, werden immer noch ein bisschen kämpfen, um sich an ihre Lösungen zu erinnern, während diejenigen, die nicht schnell kommen, um den Fehler ihrer Wege zu sehen.
Sie können optional eine [Skeleton-Code-Datei] (https://github.com/sjsyrek/study-haskell-nyc/blob/master/ch17/ch17.hs) vorbereiten, um während der Besprechung auszufüllen. Hier ist ein Projektor praktisch. Die [InstanceSigs
] (https://downloads.haskell.org/~ghc/8.0.2/docs/html/users_guide/glasgow_exts.html#ghc-flag--XInstanceSigs) GHC-Erweiterung ist besonders nützlich für diesen Zweck. Wie üblich, sollten Sie Ihre Bildschirm-Immobilien zwischen dem PDF des Haskellbook und Ihrer REPL und / oder Code-Datei gleichmäßig teilen. Stellen Sie sicher, dass Sie jedem eine Chance geben, in Ihren Treffen mitzumachen, darunter (vielleicht besonders) das Widerwillige, damit nicht ein paar dominante Persönlichkeiten übernehmen. Sei geduldig. Unterstützend sein. Habe Spaß. Gehen Sie auf einen Snack oder einen Drink nachher. Weiter.
Lehre und Teilnehmerführung
Lehren ist etwas, das Sie vielleicht mit der Übung besser machen können. Für die meisten Studiengruppen-Koordinatoren, ist Ihre beste Wette, die wörtliche Rolle von Koordinator zu übernehmen und nicht zu lehren (Vortrag). Sie haben genug zu tun, nur um sicherzustellen, dass Ihre Treffen reibungslos laufen. Für kleinere Wechselwirkungen, versuchen Sie zu hören und Lernenden auf ihre eigenen Begriffe zu Treffen. Chris Done hat einen interessanten Blogpost dazu geschrieben. Ich bin nicht ganz von der Wirksamkeit der sokratischen Methode überzeugt, aber ich bin sicherlich einverstanden, dass es kontraproduktiv ist, die Antworten auf schwere Probleme zu verraten.
Sie sollten sich wahrscheinlich vor einigen Verhaltensrichtlinien für Ihre Gruppe entscheiden, so dass die Teilnehmer zumindest stillschweigend einverstanden sind, freundlich und kooperativ zu sein. Die Sozialregelungen des Recurse Centers sind ein guter Ausgangspunkt. Wenn Sie die Notwendigkeit fühlen, meine eigenen ziemlich vagen Formulierungen zu erweitern, dann tun Sie dies. Aber lassen Sie die Regeln niemals davon abhalten, dass Sie das Anmaß erzwingen oder umgekehrt Sie zwingen, gegen Ihr besseres Urteil zu handeln.
Bezahle es weiter
Sobald Ihre Studiengruppe fertig ist, was dann? Sie können sicherlich auf mittleres oder fortgeschrittenes Material umziehen. Besser noch, du kannst von Anfang an wieder von vorn beginnen. Diese Gemeinde braucht mehr Menschen, und es wird immer eine Nachfrage nach anfängerfreundlichen Studiengruppen geben. Wenn deine Erfahrung so wie meine ist, hast du viele Leute über deine Studiengruppe zu spät gekommen, um mitzumachen. Wenn du es nicht selbst wieder tun willst, ist eine noch bessere Lösung, einen erfolgreichen "Absolvent" deiner ersten Studiengruppe zu ernennen, um den zweiten zu führen. Und so weiter und so weiter. Es ist das Mindeste, was sie tun können, um all deine harte Arbeit als Organisator zurückzuzahlen, oder?
Die folgende Liste der Studiengruppen hat das in diesem Repo vorgeschlagene Format und die Richtlinien angenommen oder angepasst. Jede Gruppe kann einen Zug anfordern, der der Liste hinzugefügt werden soll. Eine Auflistung stellt hier keine Bestätigung dar.
Europa
Nordamerika
- haskell-lang.org - Ein Portal zum Haskell-Ecosystem
- How to learn Haskell - Ein Leitfaden für den Einstieg mit Haskell von einem der Autoren des Haskellbook
- School of Haskell - Einige Tutorials der guten Leute von FP Complete
- A Haskell Study Syllabus - Auch von FP Complete
- HaskellWiki - Artikel über einige Themen
- Typeclassopedia - Teil des HaskellWiki, eine gute Referenz
- Haskell WikiBook - Ein Supplement zum HaskellWiki
- Haskell is easy - Eine Liste von Haskell-Libraries
- Haskell Libraries - Eine Liste mit Links zu Tutorials
- Haskell auf Stack Overflow - Vielleicht fragte bereits jemand deine Frage
- Haskell auf Reddit
- How I Start: Haskell - Wie man ein neues Haskell-Projekt einrichtet
#haskell
und#haskell-beginners
- IRC channels auf freenode