Coding, Wordpress

Für WordPress-Buchblogs: Bücher nach Autoren ausgeben

Wenn du einen WordPress-Blog betreibst und dort Bücher rezensierst, hast du vielleicht manchmal den Wunsch, noch weitere Bücher desselben Autors direkt am Beitrag anzuhängen. Ich habe dies für japanliteratur.net umgesetzt und zeige dir, wie du Rezensionen von Büchern desselben Autors miteinander verknüpfen kannst.

Ein Screenshot
So sieht die Umsetzung auf japanliteratur.net aus

1. Autoren vertaggen

Die Voraussetzung ist, dass du deinen Artikeln in WordPress Tags zuordnest. Für den Autor Ryu Murakami sollte überall „Ryu Murakami“ hinterlegt sein:

Tags
Schlagwörter, die für den Beispielartikel vergeben wurden.

2. Benutzerdefinierte Felder in WordPress nutzen

Metadatenfelder in WordPress

Ich nutze in WordPress viele verschiedene benutzerdefinierte Felder, beispielsweise für die bibliografischen Angaben. Für die Verknüpfung der Autoren legst du das Feld „autor_link“ an und gibst hier den Tag-Slug ein – das ist die URL, unter der der Tag erreichbar ist. Beim Tag von Ryu Murakami beispielsweise sind alle vertaggten Bücher unter tag/ryu-murakami/ zu finden, also setze ich in das Feld ryu-murakami ein.

3. Code einbauen

Der Code wird nun auf der content.php eingebaut:


     <?php
        if ( get_post_meta($post->ID, 'autor_link', true) ) {
          echo "<h3>Weitere Bücher vom Autor</h3>";
          $query = new WP_Query( array( 'tag' => get_post_meta($post->ID, 'autor_link', true) ) );

          if ( $query->have_posts() ) {
            while ( $query->have_posts() ) {
              $query->the_post();
              if( $post->ID == $do_not_duplicate ) continue; ?>

                <div class="similar-books">
                  <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_post_thumbnail(); ?></a>
                </div>

                <p>
                  <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
                </p>
            <?php }
          } 

          wp_reset_postdata();
        }
      ?>

Und so funktioniert es im Detail:

<?php
if ( get_post_meta($post->ID, 'autor_link', true) ) {

Zunächst wird abgefragt, ob das Feld autor_link beim jeweiligen Artikel überhaupt gefüllt ist. Wenn es nicht gefüllt ist, erfolgt auch keine Abfrage auf ähnliche Artikel.

$query = new WP_Query( array( 'tag' => get_post_meta($post->ID, 'autor_link', true) ) );

Dann erfolgt ein Query auf alle Artikel, die den Tag haben, der zuvor innerhalb von autor_link definiert wurde. Das ist notwendig, da ein Artikel auch noch viele andere Tags haben kann, die an dieser Stelle natürlich nicht für den Query herangezogen werden sollen.

if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
$query->the_post();
if( $post->ID == $do_not_duplicate ) continue; ?>

Zum Schluss wird die eigentliche Schleife gestartet, die die Posts ausgibt. Hier wird auch ausgeschlossen, dass der aktuelle Artikel im Query enthalten ist.

<div class="similar-books">
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_post_thumbnail(); ?></a>
</div>

<p>
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
</p>

Zum Schluss kannst du in diesem Bereich noch bestimmen, was ausgegeben werden soll. Im Beispiel wird das Artikelbild (the_post_thumbnail()) und ein Link mit dem Titel des Artikels (the_title()) ausgegeben.

Standard
Coding, Web-Entwicklung

Udacity Erfahrungsbericht – Frontend Web Developer

Udacity ist eine von vielen kostenpflichtigen Möglichkeiten, sich online weiterzubilden. Anders als beispielsweise Programme von Universitäten ist die von Ex-Google Mitarbeiter Sebastian Thrun gegründete „Online-Universität“ eng an aktuellen Marktentwicklungen und Trends ausgerichtet und bietet ständig neue Kurse zu aktuellen Themen. Von Februar bis September 2018 habe ich bei Udacity den Front End Web Developer Nanodegree abgeschlossen. Was mir gefallen hat und was nicht, erfahrt ihr in diesem ausführlichen Abschlussbericht.

Update Mai 2019: Der Kurs wie in diesem Bericht beschrieben ist bei Udacity so nicht mehr im Angebot. Die wesentliche Neuerung ist nun, dass man nicht mehr frei lernen kann wie man möchte, sondern der Kursinhalt innerhalb eines viermonatigen strukturieren Programms durchgearbeitet werden muss. Viele Dinge wie Lehrmaterialien und Projektarbeiten sind aber gleich geblieben.

Kursaufbau

Udacitys Websites selbst ist teilweise schon auf Deutsch, der Kursinhalt selbst ist aber auf Englisch (bei einigen Videos gibt es schon deutsche Untertitel) und es wird vorausgesetzt, dass man in dieser Sprache kommuniziert. Eine Hürde sollte dies aber nicht sein, da Ressourcen und wichtige Websites eh auf Englisch sind und ein Entwickler hiermit klarkommen sollte.

Im Kurs werden folgende Inhalte in dieser Reihenfolge vermittelt:

1 : HTML und CSS
2 : Javascript
3 : Front End Applications
4 : React (Update Mai 2019: Dies ist nicht mehr Inhalt des Kurses)

Die einzelnen Teile bauen aufeinander auf. Man kann beispielsweise Teil 2 erst in Angriff nehmen, wenn alle Aufgaben aus Teil 1 abgegeben wurden (diese müssen noch nicht bewertet worden sein, müssen aber im Review sein).

Qualität der Kurse

Die Einleitungen zu den Kursen sind großartig und stark motivierend. Udacity hat sich hier genau überlegt, was sie wie am besten erklären können. Das Zuschauen macht Spaß und Quizze zwischendrin lockern die Struktur etwas auf.

Die Qualität der Video-Kurse ist meiner Ansicht nach sehr hoch. Dennoch gibt es einen Nachteil: Videos können nie so ins Detail gehen wie ein Buch. Deshalb muss man sich darauf einstellen: Das Video erklärt die Grundprinzipien und gibt einen guten Einstieg, vertiefendes Wissen muss man sich dazu aneignen, meistens durch Lesen.

Am Ende gibt es kleine Aufgaben, die immer so gestellt sind, dass man nicht nur das Gelernte anwenden, sondern selbstständig auch Neues erarbeiten kann. Beispiel: Nach dem ersten Lernabschnitt zum Thema HTML und CSS soll nach Vorlage ein Portfolio erstellt werden. Dieses kann modifiziert werden. Wie stark man es modifiziert und welche Styles man unterbringt und dazu neu lernt, bleibt dem User überlassen.

Wer nicht so stark in die Tiefe gehen, sondern nur einen Überblick über das Thema haben will, für den enthalten die Kurse aber alles, was zum Verständnis notwendig ist.

Lernen unterwegs & obil

Es gibt eine Udacity App, in der man sich alle Videokurse ansehen kann. Die App war 2018 noch ein wenig buggy und der kleine Smartphone-Bildschirm eignete sich nicht immer für die Quizze. Lernen war für mich deshalb praktisch nur am Desktop möglich. Damit man auch offline ein wenig lernen kann, stehen die Videos auch zum Download zur Verfügung. Auch Aufgaben können – wenn man nichts nachschlagen muss, was wohl eher unwahrscheinlich ist – offline erledigt werden. Richtig funktioniert das Lernkonzept von Udacity aber immer noch klassisch, mit einer stabilen Internetverbindung und auf einem großen Bildschirm.

Workload

Udacity gibt an, dass man für den Font End Web Developer 4 Monate benötigt, wenn man sich jede Woche 10 Stunden Zeit für diesen Nanodegree nimmt. Wie viel Zeit man tatsächlich investieren muss, hängt wohl individuell vom Vorwissen ab. Den ersten Kursabschnitt von vieren (HTML und CSS) kann man beispielsweise mit Vorkenntnissen in rund 14 Stunden abschließen. A React-Projekt (dieses ist 2019 nicht mehr im Kurs enthalten) saß ich aber beispielsweise insgesamt über 100 Stunden. Hinzu kommt der eigenen Anspruch: Möchte ich wirklich nur das Kursmaterial abreißen oder mich tatsächlich mit den Themen beschäftigen? Dann reichen 10 Stunden meiner Ansicht nach nicht aus.

Schwierigkeitsgrad der Projekte

Abgeschlossene Projekte und ein Code Review ohne Beanstandung sind die Voraussetzung dafür, einen Udacity Nanodegree zu erwerben.

Die Projekte sind inhaltlich sehr praxisnah, machen Spaß und bilden eine schöne Grundlage für ein Portfolio, wenn man sie noch ein wenig modifiziert und eine persönliche Note hinzugibt.

Der gefühlte Schwierigkeitsgrad der Projekte bei Udacity schwankt stark. Im Video sieht alles noch sehr einfach und irgendwie logisch aus, sobald es aber an das eigene Projekt geht, wird es manchmal doch etwas hakelig. Ich habe es so empfunden, dass man von Udacity oft einfach ins kalte Wasser geworfen wird und sich dann selbst einen Plan machen muss, womit man als erstes beginnt.

Hilfe bekommt man im Forum von anderen Teilnehmern oder auf YouTube, wo ehemalige Teilnehmer über ihr Projekt berichten. Da viele Teilnehmer ihr Projekt auch über github einreichen, findet man hier auch einige Lösungen. So kann man sich mit viel Geduld und einer Kombination aus Recherche auch gut selbst helfen. Mit der Zeit aber werden die Projekte komplexer und dann hilft Googeln oft nicht, sondern nur eine Person, die sich das Projekt im Ganzen anschaut. Hierzu gibt es bei Udacity einen Betreuer:

Mentorship & Betreuung

Damit sind wir beim ersten Kritikpunkt angelangt. So gut die Kurse konzipiert sind und so angenehm das Lernen insgesamt ist, das Mentorship-Versprechen konnte Udacity innerhalb der 7 Monate, die ich dort gelernt habe, nicht einlösen.

Anfangs gab es einen Mentor, mit dem ich 1:1 chatten konnte. Nach einer gewissen Inaktivität (ich arbeite nebenbei Vollzeit und musste wegen eines Projektes circa 2 Monate aussetzen) wurde mir ein neuer Mentor zugeteilt. Die Qualität der Mentoren schwankte stark: Manche gaben nur allgemeine Tipps, alle meine Fragen hatte ich mir meist beantwortet, ehe der Mentor sich irgendwann dazu meldete. Dann wurde ohne Vorankündigung das Mentorenprogramm komplett abgeschafft. Ein Mentor war nun allein für ein komplettes Projekt verantwortlich und die Studenten konnten sich gegenseitig Fragen beantworten. Ich war an dieser Stelle sehr frustriert, da ich kurz vor dem Abschluss stand und eine tiefergehende Betreuung benötigte. Zum Glück hat mich an dieser Stelle ein befreundeter Entwickler unterstützt.

Beim aktuellen Nanodegree wirbt Udacity wieder mit einer Betreuung durch den Mentor. Ich kann nicht beurteilen, ob sich die Situation inzwischen verbessert hat. 2018 hatte ich allerdings den Eindruck, dass es mehr Schüler als Mentoren gibt und Udacity hier einfach nicht Schritt halten konnte.

Code Reviews

Zu jedem Projekt gibt es abschließend ein Code Review. Nur wenn dieses gut ausfällt, gilt das Projekt als abgeschlossen.

Das Code-Review ist stark standardisiert, trotzdem wurden mir auch Verbesserungsvorschläge gegeben. Udacity gibt an, innerhalb von 24 Stunden zu antworten. Für das erste, einfache Projekt kam eine Antwort innerhalb von nur 4 Stunden, nach erneuter Einreichung eine Freigabe nach 15 Minuten. Für das zweite, umfangreichere Projekt wurde darauf hingewiesen, dass das Review hier 7 Tage dauern kann. Hier kam das Review an einem Sonntag innerhalb von einer Stunde!

Allerdings: Die Reviews sind manchmal etwas kryptisch und wenn man etwas anders macht, es aber noch nicht richtig ist, wird es einfach wieder abgelehnt. Das ist etwas frustrierend. Die Review-Qualität schwankt aber ganz stark je nach Reviewer. Manche haken einfach nur ab, was erfüllt ist und was nicht, andere geben hilfreiche Tipps bei der Lösung.

Fazit

Auch wenn Udacity und seine Nanodegrees in deutschen Unternehmen keinesfalls einen Stellenwert wie ein Uniabschluss einnehmen, lohnt es sich, bei Udacity für sich selbst zu lernen. Die Qualität der Kurse ist außergewöhnlich hoch. Udacity erwartet dafür von seinen Studenten ein gewisses Maß an Experimentierfreudigkeit, Neugier und Selbständigkeit – alles Qualitäten, die man benötigt, wenn man im Webentwicklungs-Umfeld unterwegs ist.

Standard