Udacity’s React-Nanodegree – Ein Selbstversuch

Da wir als Software-Engineers in einer sich extrem schnell wandelnden Branche tätig sind, ist kontinuierliche Weiterbildung eine zwingende Voraussetzung, um in der IT-Welt dauerhaft erfolgreich zu arbeiten. Da ich mich selbst die letzten Jahre eher auf Backend-Entwicklung im JVM-Umfeld konzentriert hatte  - von einem kurzen Ausflug in die Vaadin-Welt abgesehen - sah ich Ende letzten Jahres die Zeit gekommen, meine Kenntnisse bzgl. moderner Frontend-Technologien & - Frameworks aufzufrischen. Ohne gleich einen Flamewar lostreten zu wollen, sind die etabliertesten Vertreter dieser Zunft aktuell wohl Vue.js, React und Angular. Nach einer kurzen Recherche, welche Trainings zu welchen Frameworks existieren, fiel meine Entscheidung wegen des hohen praktischen Anteils auf den React-Nanodegree von Udacity.  

Udacity? Nanodegree?? Was ist das denn überhaupt?

Udacity ist neben Coursera, edX und Udemy einer der bekanntesten Vertreter von MOOCs (Massive Open Online Courses). Im Gegensatz zu den drei anderen legt Udacity allerdings seinen Schwerpunkt auf die Themen Informatik und Digitales. Neben den kostenlosen „einfachen“ Kursen existieren diverse kostenpflichtige Nanodegree-Programme beispielsweise zu Android-Entwicklung, Digital Marketing und eben auch React. Diese umfassen mehrere Einzelkurse, dauern mehrere Wochen und wollen intensiv in ein Themengebiet einführen. Dabei setzen sie auf das Ansehen von Videos, Lesen von Texten und die Bearbeitung von konkreten Projekten inklusive Feedback. Wenn alle Projekte positiv reviewed wurden, erhält man am Ende ein Zertifikat, das den erfolgreichen Abschluss bestätigt. Außerdem wird ein Mentor zur Seite gestellt, der einem Fragen beantworten kann und bei Problemen in der Projekt-Umsetzung unterstützt.

Was brauche ich für den React-Nanodegree?

Grundsätzlich sind alle Videos und Texte der Kurse in englischer Sprache, d.h. damit sollte man natürlich kein Problem haben. Für den React–Nanodegree sind weiterhin Basics in JavaScript (ES2016 im Speziellen) und HTML/CSS Voraussetzung. Ein Rechner mit einem Editor/einer IDE inklusive Internetzugang sind selbstverständlich.

Wie ist dieser React-Nanodegree eigentlich aufgebaut?

Der React-Nanodegree besteht aus vier Blöcken. Der erste Block ist allerdings nur eine kurze Einführung in die Struktur des Nanodegrees selbst - mit React kommt man hier noch nicht in Berührung.

Der zweite Block behandelt „React Fundamentals“ und schließt mit der Abgabe des Projekts „MyReads“ ab. Wie der Name schon sagt, geht es hier um grundlegendes Knowhow zu React wie beispielsweise React‘s Lifecycle Methoden, Server-Zugriffe, Props vs. State, Stateless Functional Components und React-Router. Die Aufgabe im zugehörigen „MyReads“-Projekt ist es, eine bereits existierende Vanilla-HTML/CSS-Seite in eine React-App zu transformieren.

Das Thema im dritten Block mit dem Titel „React & Redux“ ist überraschenderweise Redux und die Möglichkeiten, die sich dadurch im State-Management von React ergeben. Auch hier ist die erfolgreiche Abgabe eines Projekts nötig. Diesmal gibt es keinen vorgefertigten Code worauf man aufbauen könnte: Man startet mit dem Projekt „from scratch“. Man bekommt einzig eine textuelle Beschreibung der Requirements, die umzusetzen sind. Diese Anforderungen sind allerdings sehr weit gefasst, sodass man sich bei der Umsetzung tatsächlich weitestgehend austoben kann.

Im vierten und letzten Block wird dann die Web-Welt verlassen und man taucht ein in die plattform-übergreifende Mobile-Entwicklung mit React Native. Für das Projekt gibt es ebenfalls ausschließlich ein Anforderungs-Dokument: Die Umsetzung einer Flashcards-App für Android und/oder iOS.

Und? Wie war’s denn nun?

Fangen wir mal mit den Dingen an, die bei mir nicht so gut angekommen sind:

  • Die UI von Udacity‘s Web-App - insbesondere die Menu-Führung - finde ich eher unübersichtlich und verwirrend. Von einem Kurs-Anbieter für unter anderem Produkt- und UX-Design erwarte ich hier besseres.
  • Inhaltlich haben mir Informationen zu den Themen „Testing with React“ oder „Code-Quality with React“ komplett gefehlt. Man kann natürlich argumentieren, dass dies eher relevant für Software- bzw. Web-Entwicklung im Allgemeinen sei, ein paar Informationen über den Einsatz von Tools wie ESLint oder Test-Frameworks à la Mocha im Zusammenspiel mit React finde ich aber dennoch angebracht.

Als neutral habe ich das Mentorship bei Udacity empfunden: Da ich beim Umsetzen meiner Projekte nicht auf große Probleme gestoßen bin, hat mich das wöchentliche Nachfragen per Chat nach meinen Fortschritten eher genervt denn mir geholfen, sodass ich das Mentoring nach ein paar Wochen gecancelt habe. Ich kann mir aber schon vorstellen, dass es für den ein oder anderen eine Hilfestellung beim Zeitmanagement sein kann.

Kommen wir nun zu den positiven Aspekten des Udacity Nanodegrees.

  • Zuallererst lernt man React von Anfang an und sehr intensiv kennen. Die insgesamt ca. 25 Stunden Videos, die alle Aspekte von React abdecken, haben eine maximale Länge von fünf Minuten und sind dadurch sehr einfach zu verdauen.
  • Speziell durch die Tatsache, dass man sich durch das Einreichen von Projekten „die Hände dreckig machen“ muss, lernt man natürlich am Meisten. Insgesamt habe ich darauf auch die meiste Zeit verwendet: Circa 75 Stunden für die drei Projekte in Summe. Natürlich kann man hier mehr oder auch weniger Zeit investieren, je nachdem wie ausführlich man die Requirements umsetzt oder auch Zusätzliches einbaut.
  • Vom ausführlichen Feedback der Reviewer war ich positiv überrascht. Ich hatte nicht den Eindruck, dass hier schnell über den Code geflogen wurde, um ein „yeah“ oder „nay“ zu verteilen. Stattdessen wurden meine Einreichungen zwar jedes Mal akzeptiert, ich wurde aber auch auf Dinge hingewiesen, die ich noch hätte verbessern können.

Zusammengefasst kann ich sagen, dass die 499€ gut investiertes Geld waren und ich mich für mein nächstes React-Projekt sehr gut gerüstet finde. Außerdem kann ich den Nanodegree guten Gewissens allen Software-Developern empfehlen, die bereits Basis-Kenntnisse in JavaScript haben und sich tiefer in ein modernes UI-Framework einarbeiten möchten.

Und falls Udacity auch mal Nanodegrees für Vue.js und/oder Angular anbieten sollte, hätten sie in mir auch schon mindestens einen Teilnehmer...