jQuery: Das Praxis-Training

So werden Ihre Webseiten richtig modern!
4.3 (2 ratings) Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
15 students enrolled
$120
Take This Course
  • Lectures 75
  • Contents Video: 9 hours
    Other: 0 mins
  • Skill Level All Levels
  • Languages German
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works

Discover

Find online courses made by experts from around the world.

Learn

Take your courses with you and learn anywhere, anytime.

Master

Learn and practice real-world skills and achieve your goals.

About This Course

Published 5/2015 German

Course Description

In 9 Stunden zur modernen Web-Applikation! Lernen Sie in diesem Training, wie Sie mit jQuery interaktive und animierte Websites entwickeln. Schauen Sie Ihren Trainern dabei über die Schulter, wie sie Selektoren für die DOM-Manipulation erstellen, JavaScript-Ereignisse programmieren und die Website mit Animationen und Effekten ausstatten. Dabei lernen Sie den gesamten Workflow eines Webentwicklers kennen – vom Aufsetzen des Testservers bis zur Optimierung von Usability und SEO.

- Interaktive Web-Frontends entwickeln mit jQuery

- Responsive Webdesign für mobile Endgeräte

- Zahlreiche Profitipps zu Usability, Performance und SEO

Matthias Bruch ist Senior Software Engineer und Technology Evangelist bei der netzkern AG. Als erfahrener JavaScript-Profi entwickelt er Web-Apps für mobile Endgeräte sowie individuelle Rich Internet Applications auf Basis von .NET.

Henry Zeitler ist passionierter Webdesigner, Experte für Webstandards und Frontend-Entwickler bei der netzkern AG. Er war jahrelang als Trainer für HTML und CSS tätig. Heute kümmert er sich primär um Mobile Optimization und technisches SEO.

What are the requirements?

  • Dies ist ein umfassender Kurs, der keine Vorkenntnisse in jQuery erfordert.
  • Geplante Projekte im Bereich Web-Applikation helfen, um das neue Wissen direkt umzusetzen

What am I going to get from this course?

  • Erstellen Sie benutzerfreundliche und ansprechende Elemente wie einen Slider oder eine Tab-Navigation und fügen Sie moderne CSS-Effekte hinzu.
  • Lernen Sie anhand einer dynamischen Web-Applikation, wie Sie Daten per Ajax laden und wie Sie das JSON-Format einsetzen.
  • Erfahren Sie mehr über Responsive Webdesign und lernen Sie die Bibliothek »jQuery Mobile« kennen, mit der sich Ihre Web-App auf unterschiedlichen Geräten optimal darstellen lässt.

What is the target audience?

  • Entwickler, die mehr über Webdesign für mobile Endgeräte erfahren wollen
  • Alle, die dynamische Navigationselemente animieren wollen
  • Jeder, der Ajax-Anwendungen entwickeln möchte

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.

Curriculum

Section 1: Einführung in jQuery
00:18

In dieser Einleitung gibt Ihnen Matthias Bruch einen Ausblick auf das Kapitel. Darin erfahren Sie unter anderem, welche umfassenden Vorteile die jQuery-Bibliothek Ihnen bietet.

06:31

In diesem Video stellt Ihnen Matthias Bruch die Entwicklungsgeschichte von jQuery vor – von den Anfängen in 2005 bis heute. Erhalten Sie einen Eindruck davon, was über die Jahre hinweg alles mit jQuery möglich geworden ist.

10:23

In diesem Video zeigt Ihnen Ihr Trainer, worin die Unterschiede zwischen jQuery und JavaScript bestehen. An einem ersten Beispiel sehen Sie, wie Sie jQuery in Ihren Code einbinden und welche Vorteile Sie dadurch erhalten.

04:51

Von jQuery gibt es zwei verschiedene Versionen, die parallel weiter entwickelt werden – jQuery 1 und jQuery 2. In diesem Video werden die Unterschiede zwischen diesen beiden Entwicklungssträngen ebenso erklärt wie die Unterschiede innerhalb der Version 1.x.

Übungsmaterial zu den einzelnen Abschnitten
Article
Section 2: Die Entwicklungsumgebung einrichten
00:19

In diesem Video stellt Ihnen Henry Zeitler die Themen des Kapitels vor. Darin richten Sie eine Server-Umgebung ein und erfahren, wie Sie das Trainingsprojekt installieren.

03:18

Zu Beginn dieses Videos zeigt Ihnen Henry Zeitler, wie Sie eine Webserver-Umgebung auf Ihrem PC einrichten. Anschließend lernen Sie die Internet Information Services (IIS) von Microsoft kennen, mit denen Dateien im Netzwerk zugänglich gemacht werden.

01:54

Wichtig für Ihre Server-Umgebung ist auch die Plattform »Node.js«, mit der mehrere Anfragen asynchron verarbeitet werden können. Zusätzlich zeigt Ihnen Ihr Trainer in diesem Video, wie Sie das Serve-Tool installieren.

08:24

In diesem Video lernen Sie die Beispielanwendung des Trainings kennen – eine interaktive und responsive Web-App. Außerdem stellt Ihnen Ihr Trainer die Versionsverwaltung mithilfe von »GitHub« vor.

04:15

Node.js ist natürlich nicht nur für Windows, sondern auch für Macintosh-Computer verfügbar. Ihr Trainer zeigt Ihnen, wie Sie Node.js inklusive weiterer Komponenten mittels des Terminals auf dem Mac installieren. Dabei lernen Sie auch, die Komponenten richtig zu verwenden.

03:13

Im Internet gibt es zahllose Editor-Programme, ein jedes mit unterschiedlichen Vor- und Nachteilen. Ihr Trainer stellt Ihnen in diesem Video einige gängige Editoren vor und zeigt Ihnen seinen persönlichen Favoriten.

Section 3: Grundlagen von JavaScript
00:13

In dieser Einleitung stellt Ihnen Matthias Bruch die Themen des folgenden Kapitels vor. Darin vermittelt er Ihnen die Grundlagen von JavaScript, die Sie für die Webentwicklung mit jQuery benötigen.

09:25

Bevor es mit jQuery losgeht, lernen Sie in diesem Video, wie Sie mit JavaScript Variablen anlegen und vergleichen. Zusätzlich erfahren Sie, wie Sie in JavaScript Objekte erzeugen.

09:40

Ohne Funktionen geht nichts in JavaScript. Daher lernen Sie in diesem Video, wie Sie Funktionen erstellen und im Code aufrufen. Dabei werden auch die Begriffe »Parameter« und »Callback« erläutert.

09:33

Wenn man viele Daten unbekannten Typs speichern muss, bietet sich ein so genanntes »Array« an. In Kombination mit einer Schleifenanweisung stellen Arrays ein überaus nützliches Werkzeug der JavaScript-Entwicklung dar.

08:44

Mit JSON, kurz für »JavaScript Objekt Notation«, lassen sich viele Zeilen Code einsparen. Insbesondere wenn Sie Objekte und Arrays erstellen, werden Sie die Stärken von JSON zu schätzen wissen. Matthias Bruch erklärt Ihnen in diesem Video die Syntax von JSON sowie seine Vorteile gegenüber XML.

06:29

In diesem Video wird das so genannte Prototyping erklärt. Dabei handelt es sich um ein Äquvialent zur Vererbung in JavaScript. Ihr Trainer zeigt Ihnen, wie Sie Prototypes im Code erstellen und sinnvoll nutzen.

11:48

In diesem Video geht es um Scopes und Closures. Beim Scope handelt es sich um den Gültigkeitsbereich einer Variablen. Closures stehen für das Prinzip, Funktionen innerhalb von Funktionen zu deklarieren – ein Feature, das es nur in wenigen Programmiersprachen gibt.

10:02

Timouts und Intervalle sind Werkzeuge, mit denen sich ganz unterschiedliche Aufgaben bewältigen lassen. Wie Sie diese Funktionen nutzen, um damit beispielsweise Objekte zu bewegen, erfahren Sie in diesem Video.

10:32

Eine weitere Möglichkeit, um JavaScript-Code ohne User-Interaktion auszuführen, bietet der »Web Worker«. Mit diesem ist es sogar möglich, mehrere Skripte gleichzeitig auszuführen. Den richtigen Einstieg in dieses Thema bietet Ihnen Matthias Bruch in diesem Video.

08:30

Um Posts lokal speichern zu können, nutzen Sie den Local Storage. Mit diesem ist es, ganz ähnlich wie bei Cookies, möglich, kleine Datenmengen auf dem Computer des Users abzulegen. Wie der JavaScript-Code dazu aussehen muss, zeigt Ihnen Matthias Bruch in diesem Video.

14:00

In diesem Video erstellt Ihr Trainer mit Ihnen den Speicher für die Posts der Web-App. Sie erfahren zunächst, wie Sie solch einen Post-Store anlegen und anschließend mit den wichtigsten Funktionen ausstatten.

05:44

Nun soll auch die »Stored«-Funktion der Web-App realisiert werden. Sie möchten also eine Liste mit allen Posts schreiben, die zum Merken markiert worden sind. Wie Sie dies am besten umsetzen, erfahren Sie in diesem Video.

17:33

Matthias Bruch zeigt Ihnen in diesem Video im Detail, wie Sie das Timeline-Skript aus dem Einführungskapitel programmieren. Dabei kombinieren Sie alle Fertigkeiten, die Sie mittlerweile erlangt haben, um dem Skript die nötigen Funktionen zu verleihen.

Section 4: CSS-Selektoren im DOM
00:28

In diesem Video gibt Ihnen Henry Zeitler einen Ausblick auf die Themen des Kapitels. Sie lernen darin das DOM kennen und erfahren, wie Sie mit jQuery-Selektoren gezielt HTML-Elemente ansprechen.

04:00

Die Sizzle Selector Engine ist sowohl als Teil von jQuery als auch außerhalb davon nutzbar. Mit Sizzle ist die Verwendung von CSS3-Selektoren besonders einfach. Henry Zeitler stellt Ihnen in diesem Video die Engine sowie häufig verwendete Selektoren vor.

05:27

In diesem Video widmen Sie sich IDs und Klassen als typische Beispiele für Selektoren. Dabei erfahren Sie, wie Sie IDs ansprechen und Elemente mit jQuery manipulieren – zum Beispiel, indem Sie einem Element eine neue Klasse zuweisen.

06:26

Genau wie in CSS lassen sich Pseudoselektoren auch in jQuery nutzen. Pseudoselektoren sind ein hilfreiches Werkzeug, um spezifische Elemente anzusprechen und zu manipulieren.

04:44

Mittels Attributselektoren können HTML-Attribute direkt angesprochen werden – so auch das »href«-Attribut. Wie man Selektoren einsetzt, um zum Beispiel die Farbe eines Hyperlinks zu verändern, sehen Sie im folgenden Video.

04:49

Gerade dann, wenn Ihre Skripte größer und komplexer werden, spielt Performance eine große Rolle. Daher ist es wichtig, zu beachten, welchen Selektor man zu welchem Zweck verwendet und wie man Selektoren miteinander verknüpft.

11:25

Mithilfe von DOM-Selektoren soll in diesem Video ein Overlay für die Login-Maske realisiert werden. Dieses soll sich sowohl beim Laden der Seite, als auch nach einem Klick innerhalb der Navigation öffnen. Henry Zeitler zeigt Ihnen in diesem Video auch, wie Sie dabei eine Schließen-Funktion umsetzen.

Section 5: Formulare und Events
00:21

In diesem Video gibt Ihnen Ihr Trainer einen Ausblick auf das Kapitel. In den folgenden Videos lernen Sie unter anderem das Event-Bubbling und die Möglichkeiten der Formularvalidierung kennen

12:05

Es gibt zwei Arten von Ereignissen: User-Interaktionen und Statusänderungen. Matthias Bruch stellt Ihnen in diesem Video entsprechend die verschiedenen Methoden des Event-Handlings vor.

08:18

In diesem Video lernen Sie, wie Sie das Event-Handling programmieren. Zentral sind dabei die Methoden »off« und »one«. Darüber hinaus erfahren Sie, wie Sie Events mithilfe von sogenannten »Triggern« auslösen.

15:32

In diesem Video lernen Sie das Event-Bubbling sowie sein Gegenstück, das Capturing, kennen. Ihr Trainer stellt Ihnen außerdem die verschiedenen Mouse-Events vor und erläutert deren Unterschiede.

15:46

Bei Formular-Funktionen von Webseiten spielt jQuery im Hintergrund häufig eine wichtige Rolle. Außerdem lassen sich Formulare mit jQuery noch benutzerfreundlicher gestalten. So kann man beispielsweise per Skript darauf reagieren, wenn Formularfelder nicht vollständig ausgefüllt wurden.

15:51

Moderne Browser können Formulareingaben inzwischen selbstständig auf Korrektheit überprüfen. Da dies bei älteren Browsern aber nicht funktioniert, sollten Sie dafür weiterhin auf jQuery zurückgreifen. Wie Sie die Formularvalidierung mithilfe von regulären Ausdrücken optimieren, lernen Sie in diesem Video.

Section 6: Gestaltung und Animation
00:24

Animationen und Effekte sind das Aushängeschild von jQuery. In dieser Einleitung gibt Ihnen Ihr Trainer einen Ausblick auf das Kapitel, in dem Sie diese Gestaltungsmöglichkeit näher kennenlernen.

16:36

Für die Gestaltung Ihres Projekts ist CSS von großer Bedeutung. CSS und jQuery lassen sich perfekt kombinieren. Henry Zeitler stellt Ihnen in diesem Video verschiedene Schreibweisen vor und zeigt Ihnen, wie Sie damit auf CSS-Eigenschaften zugreifen können.

10:40

Zu den grundlegenden und bekanntesten jQuery-Effekten gehören die »fade«-Methoden. Ihr Trainer zeigt Ihnen in diesem Video die verschiedenen Arten von Fade-Effekten und verknüpft diese mit Callbacks.

15:55

Neben den »slide«-Effekten steht in diesem Video die mächtige »animate«-Methode im Vordergrund. Auch weitere Funktionen sowie nützliche Tipps und Tricks rund um das Thema Animationen zeigt Ihnen Henry Zeitler in diesem Video im Detail.

03:40

Animationen lassen sich auch mithilfe von CSS3 erstellen. Diese funktionieren über die Eigenschaft »transition«. Wie eine typische CSS3-Animation aufgebaut ist und worin ihr Vorteil besteht, erklärt Ihnen Henry Zeitler in diesem Video.

Section 7: Manipulation der DOM-Inhalte
00:23

In diesem Video gibt Ihnen Matthias Bruch einen Ausblick auf die Kapitelinhalte. Sie erfahren, welche Methoden Ihnen jQuery für die DOM-Manipulation bereitstellt und welche Vor- und Nachteile diese haben.

09:18

In diesem Video erfahren Sie, was es mit dem DOM-Baum auf sich hat und welche Methoden Sie benötigen, um in ihm ein neues Element hinzuzufügen.

12:18

In diesem Video lernen Sie einige neue Methoden kennen, wie zum Beispiel »prepend«. Außerdem thematisiert Matthias Bruch die Möglichkeiten des HTML-Aufrufs, wobei auch Sicherheitsprobleme und Alternativen erörtert werden.

06:57

Beim Auslesen von Attributen haben Browser teilweise unterschiedliche Vorgehensweisen. Aus diesem Grund gibt es in jQuery die beiden Methoden »attr« und »prop«. Wie Sie diese für Checkboxen nutzen, erfahren Sie im folgenden Video.

06:44

Matthias Bruch erklärt Ihnen in diesem Video, wie Data-Attribute funktionieren. Sie lernen, wie Sie Werte hinzufügen und auslesen, und sehen dabei einige Beispiele für den sinnvollen Einsatz von Data-Attributen.

Section 8: Daten asynchron übertragen mit Ajax
00:21

Dieses Kapitel behandelt die Webtechnologie Ajax. Sie lernen darin, wie Sie Daten asynchron übertragen und die Methode »ajax« richtig anwenden, um damit zum Beispiel eine Suchfunktion zu programmieren.

10:32

Zu Beginn dieses Videos erklärt Ihnen Matthias Bruch das Protokoll HTTP und seine grundsätzliche Funktionsweise. Dieses Wissen benötigen Sie, um anschließend das Objekt »XMLHttpRequest« richtig zu verwenden und damit Inhalte auf Webseiten dynamisch nachladen zu können.

05:17

Mit der Methode »load« lassen sich Inhalte einer Webseite komfortabel nachladen. Dadurch werden Webseiten nicht nur effizienter, sondern auch lebendiger. Matthias Bruch erklärt Ihnen in diesem Video, wie die load-Methode funktioniert und welche Einschränkungen dabei zu beachten sind.

08:42

Betrachtet man die interne Verarbeitungsweise von jQuery bei der asynchronen Übertragung, stößt man schnell auf »ajax«. Das ist in jQuery die zentrale Methode, um Daten nachzuladen. In diesem Video lernen Sie die Parameter von ajax kennen und wenden diese Methode praktisch an.

11:47

In diesem Video kommt erneut JSON vor, diesmal allerdings verknüpft mit der ajax-Methode. Dabei sollen Daten mit Hilfe von »getJSON« geladen und ausgegeben werden. Eine wichtige Rolle spielt überdies auch hier wieder der Local Storage.

10:21

Mit Templates lassen sich Objekte strukturiert darstellen. Um diesen Prozess zu vereinfachen, gibt es bereits fertige Templating-Engines. In diesem Video lernen Sie eine solche Engine kennen und erhalten Tipps und Verweise auf weitere Bibliotheken, wie zum Beispiel »Freetile«.

12:52

In diesem Video soll per Skript zwischen den geladenen und gespeicherten Elementen der Web-App unterschieden werden. Welche Methoden Sie hierfür benötigen, erklärt Ihnen Matthias Bruch in diesem Video.

11:25

Ihr Trainer zeigt Ihnen in diesem Video, wie Sie den Status einer Checkbox richtig eintragen. Dabei lernen Sie außerdem, wie Sie einen Label-Text ändern und Elemente aus dem Speicher löschen können.

04:15

Wenn Sie die Posts im Local Storage ablegen, können Sie anschließend relativ einfach eine Suche implementieren. Matthias Bruch zeigt Ihnen in diesem Video, wie Sie der Web-App Schritt für Schritt eine Suchfunktion hinzufügen.

07:03

Wenn man mit Ajax asynchron Daten nachlädt, stößt man bei den so genannten »Cross Domain Requests« schnell auf Probleme. Mit der richtigen Vorgehensweise lassen sich aber auch diese Schwierigkeiten umgehen, wie Sie in diesem Video sehen.

Section 9: Kurzer Abstecher zu jQuery UI
00:26

In diesem Video gibt Ihnen Henry Zeitler einen Ausblick auf das Kapitel. Darin geht es um die Bibliothek »jQuery UI«, die Ihnen unter anderem beliebte Widgets und Interactions bereitstellt.

09:21

Mithilfe der Bibliothek »jQuery UI« lassen sich stabile Web-Oberflächen entwickeln und effektvoll in Szene setzen. Henry Zeitler zeigt Ihnen in diesem Video, wie Sie einen Drag-and-drop-Effekt realisieren.

08:19

Über jQuery UI haben Sie Zugriff auf viele bereits fertig programmierte Widgets. In diesem Video stellt Ihnen Ihr Trainer eine Autocomplete- sowie eine Tab-Funktion aus der Sammlung vor.

Section 10: jQuery Mobile kennenlernen
00:12

In diesem Video gibt Ihnen Matthias Bruch einen Ausblick auf das Kapitel. Darin erfahren Sie, wie Sie mit der Bibliothek »jQuery Mobile« Ihre Web-Applikationen auch für Smartphones und Tablets entwickeln.

10:28

Responsive Webdesign ist durch die Vielfalt an mobilen Endgeräten enorm wichtig geworden. Um eine Webseite für die unterschiedlichen Auflösungen fit zu machen, nutzt man am besten Media Queries. Wie Sie diese in CSS definieren, zeigt Ihnen Matthias Bruch in diesem Video.

25:17

In diesem Video soll die Web-App für mobile Geräte angepasst werden. Dabei stehen die abgewandelten Controls für die Touch-Bedienung im Vordergrund. Darüber hinaus stellt Ihnen Ihr Trainer die Möglichkeiten von Themes vor.

05:33

Die Auswahl an Controls in jQuery Mobile ist sehr umfangreich. Matthias Bruch stellt Ihnen in diesem Video einige besonders nützliche Controls vor, darunter verschiedene Listview- und Panel-Controls. Durch die genauen Code-Vorgaben lassen sich diese anschließend sehr einfach implementieren.

Section 11: jQuery-Websites optimieren
00:15

In diesem Video gibt Ihnen Henry Zeitler einen Überblick über das Kapitel. Darin geht es vor allem um effizientes Arbeiten und um performanten Code, damit Ihr Webprojekt stabil und stets auf dem aktuellsten Stand ist.

02:11

Beim Einsatz von jQuery sollten Sie stets die Performance im Blick behalten. Das heißt einerseits, zu hinterfragen, ob jQuery für kleinere Funktionen wirklich notwendig ist. Andererseits sollten Sie darauf achten, dass jQuery auch wirklich optimal eingesetzt und implementiert wird.

03:27

In diesem Video geht Henry Zeitler auf die verschiedenen Aspekte der Performance ein. Dabei erfahren Sie anhand eines Performance-Tests, warum CSS-Animationen ihren jQuery-Pendants in mancherlei Hinsicht überlegen sind.

02:42

Insbesondere bei mobilen Webseiten spielt das asynchrone Laden von Komponenten eine wichtige Rolle. Wenn nur wenig Bandbreite zur Verfügung steht, ist es besser, zuerst nur die Inhalte zu laden, die auch definitiv benötigt werden.

07:40

Barrierefreiheit ist ein Thema, das immer stärker an Bedeutung gewinnt. Hinzu kommt, dass ein Screenreader für sehbehinderte Menschen ähnlich funktioniert wie ein Crawler von Suchmaschinen. In diesem Zusammenhang behandelt Henry Zeitler daher auch die Suchmaschinen-Optimierung mit jQuery.

01:27

Prinzipien wie »Graceful Degradation« und »Progressive Enhancement« gibt es schon lange, doch sie sind immer noch hochaktuell. Was genau sich hinter diesen Begrifen verbirgt, erklärt Ihnen Henry Zeitler in diesem Video.

04:17

Wenn Inhalte mittels Ajax nachgeladen werden, sollte es immer auch noch eine Fallback-Lösung geben, die die wichtigsten Funktionen der Seite erhält. Henry Zeitler erklärt Ihnen, inwiefern dies auch mit der Suchmaschinen-Optimierung einer Webseite zusammenhängt.

Section 12: Weitere Tipps und Tricks
00:13

In diesem Video stellt Ihnen Henry Zeitler die Themen des Kapitels vor. Sie lernen die Möglichkeiten von Plug-ins kennen und erfahren, wie Sie typische jQuery-Probleme vermeiden und die Google-Developer-API nutzen.

07:55

Für jQuery gibt es zahlreiche Plug-ins. Um sich selbst davon zu überzeugen, reicht ein Blick auf »The jQuery Plugin Registry«. Interessant sind in diesem Zusammenhang auch das Bower-Tool und Git. Beides stellt Ihnen Henry Zeitler in diesem Video vor.

03:15

Beim Einsatz von jQuery kann es auch zu Problemen kommen. Einige davon hat Henry Zeitler in diesem Video zusammengestellt und zeigt Ihnen auch gleich immer den besten Lösungsweg.

01:50

In diesem Video erklärt Ihnen Henry Zeitler, wie Sie in der Google APIs Console ein Projekt erstellen. Innerhalb der Beispiel-App werden die Daten von einer öffentlichen Seite des sozialen Netzwerks Google+ geladen. Hierfür ist sowohl der API-Key als auch eine Google-ID notwendig.

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Der Rheinwerk Verlag

Wir sind Deutschlands führender Verlag für Computing, Design und Fotografie. Wir machen Bücher, E-Books und Videokurse für Einsteiger und Experten, für Entwickler, Anwender und Liebhaber, für Kreative, Neugierige und Wissensdurstige, für Ehrgeizige, Pragmatiker und Perfektionisten.

Wir machen Verlagsprodukte – wir publizieren nicht bloß. Wir hören zu, was Kunden wünschen. Wir bringen auf den Weg, wir entwerfen und gestalten, wir schaffen und ermöglichen. Wir machen die Verlagsprodukte, die Sie brauchen.

Ready to start learning?
Take This Course