JS Learning Group: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Phaer (Diskussion | Beiträge) add js workshop concept. |
||
Zeile 14: | Zeile 14: | ||
Nächster Termin: | Nächster Termin: | ||
* Mo, 22.12.2014,19:00 | * Mo, 22.12.2014,19:00 | ||
---- | |||
Ich poste hier mal einen ersten Konzept-Entwurf Zur Diskussion. Contributions welcome! ~ [[Benutzer:Phaer|Phaer]] ([[Benutzer Diskussion:Phaer|Diskussion]]) 04:11, 9. Dez. 2014 (CET) | |||
js-intro-de | |||
== Zielgruppe == | |||
Sind Leute die entweder noch gar nicht programmiert haben, eher wenig | |||
Programmier-Erfahrung haben und Leute die andere Programmiersprachen | |||
nutzen aber im Browser immer wieder über Feinheiten und Quirks der | |||
JavaScript-Umgebung stolpern. | |||
Der hohe Anspruch ist es vor allem die Sprache JavaScript, die | |||
Browser-Umgebung und Node.js von Grund auf soweit zu vermitteln, dass | |||
am Ende alle Teilnehmenden ein kleines Projekt geschrieben und | |||
Code-Stücke von anderen gelesen und verstanden haben. Außerdem sollen | |||
sie in der Lage sein sich selbstständig in neue Frameworks | |||
einzuarbeiten und Ansatzpunkte haben ihre eigenen Projekte zu verwirklichen. | |||
== Format == | |||
* Zweiwöchentlich(?) | |||
* ~1h Vortrag, ~1h+ Questions & Answers | |||
* + Leseempfehlung zur Wiederholung und Vertiefung des besprochenen. (~1h Zeitaufwand) | |||
* + Kleinere, Übungsaufgaben zum Wiederholen in der Gruppe. | |||
oder allein. | |||
== Resourcen == | |||
* [https://developer.mozilla.org/en-US/docs/Web/JavaScript Mozilla Developer Network (MDN)], | |||
Beinhaltet eine Referenz um Details nachzulesen, eine "re-introduction to JavaScript" für | |||
erfahrenere Programmierer*innen und einen Guide für | |||
Anfänger*innen. Für letztere ist aber vielleicht Eloquent | |||
JavaScript die bessere Wahl, weil umfassender. | |||
* [http://eloquentjavascript.net/ Eloquent Javascript], eine | |||
allgemeine Einführung. Gut geeignet für Einsteiger*innen. | |||
* [https://leanpub.com/javascript-allonge/read Javascript Allonge], | |||
eine Einführung in die funktionale Programmierung mit | |||
Javascript. Vermittelt ein tieferes Verständnis vom Umgang mit Funktionen. | |||
== Kapitel == | |||
=== Tools & development setup === | |||
Es wäre wohl gut in der ersten Session zuerst mal Kontakt | |||
mit den wichtigsten Tools zu haben um mit diesen in den folgenden | |||
Sessions üben zu können. | |||
* Git(hub): Wir versuchen zu klären was git ist, stellen GitHub und | |||
try.github.com vor und verweisen dann auf weiterführende Infos. Ziel ist es | |||
dass alle eine Vorstellung haben was Git ist, es auf ihren Rechnern | |||
installiert haben und zumindest einmal gecloned und comitted haben. | |||
* Editoren: Eine kurze Diskussions und Vorstellrunde für verschiedene | |||
Text-Editoren. Erläutern was für Features so ein Text-Editor haben | |||
kann und warum z.B. Syntax-Highlighting oder eine Integrationen mit | |||
Lintern wie jshint sehr nützlich sein können. Ziel ist es, dass alle | |||
einen Text-Editor mit Syntax-Highlighting und am besten einem | |||
Syntax-Checker/Linter installiert haben. | |||
* Node.js: Wir installieren bei allen Node.js um die Sprache, JavaScript, | |||
unabhängig von einer Browser-Implementierung erlernen zu können und | |||
versuchen kurz zu besprechen was grobe Unterschiede zwischen | |||
z.B. einem Browser und node.js sind. Wir verwenden node.js nur als | |||
Interpeter für javascript und verwenden möglichst wenig | |||
node-spezifische Features bis zum entsprechendem Kapitel. Ziel ist, | |||
dass alle node.js installiert und "hello world" ausgeführt haben. | |||
=== Javascript als Sprache (mit node.js, aber allgemein) === | |||
* nodeschool.io nutzen | |||
=== Javascript im Browser === | |||
* Einführung Developer-Tools (Console, Inspector, Network Tab) | |||
* Was ist das DOM? Wie nutze ich es? (Vanilla JS, noch ohne Libraries) | |||
* Der Debugger: Wie setze ich breakpoints und was mache ich mit ihnen? | |||
* jQuery, underscore.js, zepto. Eine Übersicht zu praktischen Helfern. | |||
* Backbone.js als Beispiel für ein umfangreichers Framework. Eventuell | |||
auch noch Marionette.js | |||
=== Javascript am Server === | |||
* Node.js | |||
* Meteor | |||
=== Javascript für command line apps. === | |||
* Diskussion verschiedener libraries zum handling von command line | |||
arguments, dem arbeiten mit stdin, stdout, etc. |