Skip to content

Wie wird man Software-Entwickler?

Die Jungs (und natürlich auch das eine Mädel) von Extra Credits haben zwei sehr gut Webepisoden zum Thema „Wie wird man Software-Entwickler“ veröffentlicht:

Da ich den Inhalt wichtig finde und voll unterschreiben kann (auch wenn ich kein Spiele-Entwickler bin), hier eine kurze Zusammenfassung der wichtigsten Punkte („SW“ ist die Abkürzung für „Software“):

Episode 1:

  • SW-Entwickler sitzen normalerweise nicht in dunklen Kämmerchen ohne Tageslicht und hacken die ganze Zeit auf der Tastatur herum
  • SW-Entwicklung beschäftigt sich hauptsächlich mit Problemlösungen (Problemfindung, Problemanalyse und Erstellen der Lösung)
  • als (neuer) SW-Entwickler bekommt man Probleme gestellt, die noch niemand zuvor (in der Firma) gelöst hat (ansonsten bräuchte man denjenigen nicht)
  • SW-Entwickler benötigen gutes analytisches und abstraktes Denken (gute Fachgebiete hierfür sind Mathematik und andere Logikthemen)
  • weniger wichtig ist das Auswändiglernen von Daten und Fakten
  • sehr gute SW-Entwickler lösen Probleme schnell und elegant
  • Kenne Deine Werkzeuge! (Das gilt wahrscheinlich für alle Berufe.)
  • kontinuiierliche Weiterbildung (und praktische Anwendung) ist überlebenswichtig
  • viele SW-Entwickler erweitern auch freiwillig privat ihr Wissen (Analyse von Fremdcode, Teilnahme in Open-Source-Projekten)
  • Erfahrungen anderer SW-Entwicklern ist wichtig

Episode 2:

  • Kommunikation ist extrem wichtig
  • die meisten SW-Entwickler arbeiten in Teams und nicht alleine für sich
  • fehlende oder falsche Kommunikation führt zu Missverständnissen, Verzögerungen, Fehlern und ggf. zum Scheitern eines Projekts
  • ein offenes Ohr für Kritik ist wichtig; man ist nicht immer auf dem richtigen Weg
  • eine gute Aufwandsabschätzung ist wichtig für Termineinhaltung (hier sollte man aus früheren Fehlabschätzungen lernen)
  • als SW-Entwickler hackt man nicht nur Code, man sollte auch verstehen, was der Kunde eigentlich erreichen will; eine Lösung muss nicht immer perfekt sein
  • Low-Level-Sprachen (C/Assembler) sind oft hilfreich, um die internen Abläufe zu verstehen
  • ebenso sollte man (zumindest grob) verstehen, wie die Hardware funktioniert, auf der man arbeitet

Full Circle Magazine 58 erschienen

Gestern ist die 58. Ausgabe des englischsprachigen Magazins Full Circle Magazine erschienen. Themen dieser Ausgabe sind unter anderem

  • Command and Conquer: Triviallibre
  • Python – Teil 30
  • Libre Office – Teil 12
  • Backup-Strategie – Teil 6: Ubuntu One
  • Desktop per Video aufnehmen
  • Das papierlose Büro
  • Linux Lab: Nützliche Linux-Info-Tools
  • Windows-Äquivalente unter Linux – Teil 5: USB-Geräte formatieren
  • Review: Linux Mint 12
  • Interview: Gema Gomez-Solano
  • Ubuntu Games: Anomaly: Warzone Earth und Dead Cyborg
  • News, Leserbriefe und mehr

Links: Webseite, Forum und Wiki

Ohne Handy kein Leben?

Mir ist letzte Woche mein Handy abhanden gekommen (und bisher auch nicht wieder aufgetaucht). War der Schock groß, als ich es gemerkt habe? Nein, eigentlich nicht. Wieso? Aus folgenden Gründen:

  • Verlust der Kontakte: Diese speichere ich nicht im Handy, sondern trage sie in der Hosentasche auf einem Stück Papier mit mir herum. Die paar Telefonnummern, die im Handy gespeichert waren, kann ich leicht in das neue Gerät eingeben.
  • Verlust der Musik: Die habe ich alle als gepresste CD im Regal stehen, sodass eine neue Digitalisierung kein Problem ist.
  • Verlust meiner SMS: Einige Dialoge waren sicher ganz nett und erinnerungswürdig, aber nichts, worauf man nicht verzichten könnte.
  • Verlust der SIM-Karte: Eine neue Nummer bekommt man in jedem Discounter. Und die E-Mail an meine Kontakte, dass ich eine neue Nummer habe, ist heutzutage kein Problem.

Mein größter Verlust war ein ganz anderer: Ich hatte plötzlich keinen Wecker mehr! Immerhin konnte ich mit dem PC und „at“ meinen Musikplayer so ansteuern, dass er mich morgens weckt – und dann bin ich doch eine viertel Stunde vorher von alleine aufgewacht.

Insgesamt war der Verlust des Handy keine große Tragödie. Eher eine gute Chance, endlich ein neues Gerät zu kaufen. :) (Wen es interessiert: Es ist ein Samsung S5610 Primo geworden.)

Meine Frage an Euch: Wie wäre es, wenn Ihr Euer Handy oder Smartphone von jetzt auf gleich unwiderruflich verliert? Ist Euer Leben dann im Eimer oder ist es Euch egal?

Buch: Head First Design Patterns

Titel

Head First Design Patterns

Autor

Eric Freeman, Elisabeth Freeman, Kathy Sierry, Bert Bates

Sprache

Englisch

Genre

Sachbuch

Herausgeber

O'Reilly, 2004

Seitenanzahl

638

Müssen Fachbücher denn immer Tausende von Seiten lang sein, auf denen sich ein Buchstabe an den anderen reiht, sodass man nach dem Durchlesen von Seite 638 nicht mehr weiß, was auf Seite 1 stand? Die Erfinder der Head-First-Reihe sind der Meinung, dass nicht nur in Kinderbüchern Bilder gut ankommen und schmücken ihre Werke durch entsprechend viel Bildmaterial. So auch das hier vorliegende „Head First Design Patterns“ von Eric und Elisabeth Freeman.

Ein Bild sagt mehr als tausend Worte

Die Besonderheit des Buches „Head First Design Patterns“ ist sicherlich die grafische Gestaltung von Kathy Sierra und Bert Bates. So begrüßt einen auf der ersten Seite bereits eine junge Dame mit den Gedanken „Wäre es nicht traumhaft, wenn es ein Buch über Entwurfsmuster gäbe, welches beim Lesen mehr Spaß machen würde als ein Besuch beim Zahnarzt und verständlicher wäre als eine Steuererklärung?“ Und in der Tat versuchen die beiden Autoren und die Gestalter dies zu erreichen.

Die Begründung für die Aufmachung findet man in der Einleitung, in der erklärt wird, dass das Gehirn sich Bilder leichter merken kann als reinen Text. Aus dem Grund helfen Illustrationen beim Verständnis komplexer Probleme. Natürlich kommt das Buch nicht ohne Text aus – und es ist nicht wenig Text, der auf den 638 Seiten Platz findet. Dennoch gibt es (fast) keine Seite im Buch ohne Grafik oder Illustration, die entweder nur auflockern sollen oder erklärend wirken.

Der Stil ist demnach auch nicht für jeden Leser geeignet. Entsprechend findet man ebenfalls im Intro einen kurzen Fragenkatalog, für wen das Buch gedacht ist und für wen nicht. In einer Randnotiz findet man dann den Hinweis des Marketing-Teams, dass das Buch für jeden ist, der eine Kreditkarte besitzt. Hieran sieht man auch, dass die Autoren versuchen mit Humor an die Sache zu gehen. Über 600 staubtrockene Seiten würden wohl auch niemanden zum Lernen animieren.

Übung macht den Meister

Das Lernen steht daher im Vordergrund des Buches. Es ist definitiv kein Nachschlagewerk oder Kompendium, um schnell ein Entwurfsmuster zu verstehen. Die Autoren wollen, dass man die einzelnen Muster tatsächlich versteht und danach auch anwenden kann. Hierfür gibt es in jedem Kapitel, in denen in der Regel immer ein bestimmtes Entwurfsmuster behandelt wird, realistische Beispiele. Mag die Entensimulation am Anfang vielleicht noch etwas weit hergeholt sein, ist die Verwaltung und Auslieferung von Pizzen sicherlich etwas näher an der Realität und die Fernwartung von Automaten trifft dann erst recht den Stand der Zeit.

Um die Muster verstehen zu können, reicht es aber nicht aus, nur den Text durchzulesen und die Bilder anzuschauen. Die Autoren fordern ausdrücklich dazu auf, dass man die Beispiele eigenständig nachprogrammiert, um die Entwurfsmuster zu verinnerlichen. Dazu soll man bei gestellten Fragen und Übungen (die am Ende eines Kapitels meist auch aufgelöst werden) über die Lösung nachdenken und nicht einfach zum nächsten Absatz übergehen.

Der Inhalt macht's

Elisabeth und Eric Freeman schaffen es dann tatsächlich auch, auf den 638 Seiten zahlreiche Entwurfsmuster zu behandeln. Sie haben sich dabei an den bekannten Entwurfsmustern der Gang of Four orientiert, erheben aber keinen Anspruch auf Vollständigkeit.

Inhaltlich werden unter anderem folgende Entwurfsmuster behandelt (mit englischen Bezeichnungen): Strategy, Observer, Decorator, Factory, Singleton, Command, Adapter, Facade, Template Method, Composite, Iterator, State und Proxy.

Dies sind bei weitem nicht alle Entwurfsmuster, die es in der Welt der objektorientierten Programmierung gibt, aber sie stellen doch die meist genutzten dar. Am Ende des Buches finden sich in einer kleinen Übersicht noch weitere Entwurfsmuster, deren Namen man zumindest einmal gehört haben sollte.

Neben den eigentlichen Entwurfsmustern werden das ganze Buch über auch verschiedene Designprinzipien vorgestellt. Am Ende eines Kapitels werden diese wiederholt und aufgelistet, um das zuvor gelernte Wissen zu festigen.

Fazit

Wie die Einleitung des Buches selbst schreibt, ist „Head First Design Patterns“ nicht für jeden Leser geeignet. Wer ein Referenzbuch sucht oder bei einem Monthy-Python-Film keine Miene verzieht, wird mit dem Buch sicherlich nicht glücklich werden. Was schade wäre, denn didaktisch ist es hervorragend aufgebaut.

Wenn man sich die Mühe macht und die Übungen durcharbeitet, hat man am Ende viel Wissen gesammelt, was man dann leicht auf das eigene Projekt übertragen kann. Sicherlich werden nicht alle Fragen im Buch beantwortet und man benötigt für manche Details gegebenenfalls noch weitere Literatur, im Großen und Ganzen ist das Buch aber vor allem für Entwurfsmuster-Neulinge sehr zu empfehlen.

Ein Nachteil des Buches ist seine Java-Lastigkeit. Viele der Beispiele können glücklicherweise leicht auf C# oder C++ abstrahiert werden, und Dank der vielen (Pseudo-)UML-Diagramme ist auch eine Umsetzung in anderen objektorientierten Sprachen möglich. Spätestens im Kapitel über das „Proxy-Pattern“ wird man als Nicht-Java-Programmierer aber aussteigen müssen, da explizit auf Java-eigene Bibliotheken eingegangen wird, die es in anderen Sprachen (wahrscheinlich) nicht gibt. Glücklicherweise ist der so starke Java-Bezug in dem Kapitel eine Ausnahme.

Etwas negativer fallen da schon eher diverse Fehler im Buch auf. Die Errata ist nicht gerade kurz, wobei es nicht nur mit kleineren Rechtschreibfehlern getan ist. So fehlen in manchen UML-Diagrammen Assoziationen zwischen Klassen oder sind falsch eingezeichnet. Durch den umliegenden Text erkennt man meist, dass hier etwas vergessen (oder absichtlich ausgelassen) wurde, dennoch fällt vor allem beim State-Pattern auf, dass an Abhängigkeiten gespart wurde, die später bei der Implementierung für einige Probleme sorgen können.

Es gibt von „Head First Design Patterns“ auch eine deutsche Übersetzung namens „Entwurfsmuster von Kopf bis Fuß“. Diese enthält leider noch mehr Fehler als das Original, sodass man hier vorsichtig bei der Anwendung sein sollte.

Davon abgesehen ist „Head First Design Patterns“ vor allem für Entwurfsmuster-Neulinge sehr empfehlenswert.

Humble Bundle Mojam

Wenn alle darüber berichten, will ich natürlich auch.

Im Blog von Mojang (den Machern von Minecraft) wurde zu einer Abstimmung aufgerufen, bei der man noch bis Morgen Abend bestimmen kann, welches Spiel Mojang als Nächstes entwickeln soll. Man kann dabei Genre und Thema auswählen und danach versuchen die Entwickler, etwas daraus zu machen.

Der Clou an der Sache: In einem "Humble Bundle Mojam" wollen die Entwickler 60 Stunden lang in einem Live-Stream ihren Fortschritt übertragen. Das Humble Bundle stellt in der Zeit die Plattform für Spenden zur Verfügung. Das ganze Geld, was in dem Zeitraum eingenommen wird, wird für wohltätige Zwecke (ich nehme an Child Charity und EFF) gespendet. Wer etwas Geld gibt, erhält das Ergebnis der Jam-Session und alles andere, was die Jungs und Mädels in der Zeit auf die Beine stellen.

Ich bin gespannt, was am Montag Abend dann auf dem Tisch liegt ...

Buch: Do Androids Dream of Electric Sheep?

Titel

Do Androids Dream of Electric Sheep?

Autor

Philip K. Dick

Sprache

Englisch

Genre

Sci-Fi

Herausgeber

Gallancz, 2010

Seitenanzahl

193

San Francisco, 1995. Die Erde ist nach einem atomaren Krieg kaum noch lebenswert, weswegen viele Menschen in Kolonien wie dem Mars leben. Um den unwirtlichen Planeten erschließen zu können, wurden Androiden geschaffen, die den Menschen dort dienen sollen. Immer wieder aber brechen Androiden aus dieser Unterdrückung aus, um auf der Erde unterzutauchen. Rick Deckards Job ist es, diese kriminellen Maschinen stillzulegen/zu töten. Als Kopfgeldjäger soll er sechs Androiden der neuesten Generation dingfest machen. Dabei stößt er aber an seine Grenzen und bald weiß er nicht, ob die Maschinen nicht menschlicher sind als er selbst.

Für „Do Androids Dream of Electric Sheep?“ eine passende Einleitung zu schreiben, ist gar nicht so einfach, zu vielschichtig ist das Buch. Man sollte bei Dicks Roman definitiv nicht von einem Sci-Fi-Thriller mit viel Action ausgehen. Viel wichtiger sind dem Autor die Figuren. Natürlich beschäftigt er sich dabei mit dem Thema Menschlichkeit und was einen Menschen zu eben diesen macht.

Die Androiden in Dicks Roman sind fast perfekt. Optisch lassen sie sich nicht von Menschen unterscheiden und auch im Inneren sind sie wie Menschen aufgebaut. Nur eine genauere Zellanalyse lässt erkennen, wer Mensch und wer Maschine ist. Aber noch etwas unterscheidet die Androiden von den Menschen: Sie besitzen keine Empathie. Dies ist auch die Basis, auf der Rick Deckard loszieht und Androiden überführt. Anhand eines bestimmten Tests misst er die emotionale Reaktionsfähigkeit eines Subjekts und erkennt dabei, ob diese echt oder nur vorgetäuscht ist.

Im Laufe von 24 Stunden, die der Leser den Kopfgeldjäger begleitet, durchlebt man all seine Emotionen und Gedanken. Dick versteht es dabei, jede Handlung so zu umschreiben, wie der Protagonist sie gerade erlebt. Wenn dieser sich in einer Sache irrt, erfährt der Leser dies erst dann, wenn auch Deckard es erfährt. Dies zieht einen noch weiter in den Roman hinein.

Um so „gemeiner“ ist es, dass Dick mit den Lesern spielt. Es gibt zahlreiche Plot-Twists, die etwas Hoffnung aufkommen lassen, nur um dann wieder zerstört zu werden. So präsentiert sich „Do Androids Dream of Electric Sheep?“ sehr düster, sehr endgültig, sehr hoffnungslos. Dass es kein Happy End gibt, brauche ich daher nicht extra erwähnen.

Wem der Titel im Übrigen nichts sagt, sollte vielleicht nach dem deutschen Buch Ausschau halten: Blade Runner. Die Verfilmung von Ridley Scott mit Harrison Ford in der Hauptrolle kennen wahrscheinlich die meisten Leute. Ich habe ihn noch nicht gesehen und kann daher keinen Vergleich anstellen. Soweit ich die Beschreibung des Films aber sehe, wurden da zahlreiche Änderungen eingebaut, um den Film mehr actionlastiger und weniger moralisch wirken zu lassen. Schade eigentlich!

Insgesamt ist „Do Androids Dream of Electric Sheep?“ ein sehr guter Roman zum Thema Menschlichkeit. Er erinnert mich dabei sehr stark an die beiden Anime Ghost in the Shell und Armitage III, die ich an der Stelle nur empfehlen kann. Wer solche Themen mag, sollte sich Dicks Buch unbedingt anschauen. Wer unter Sci-Fi nur Weltraumschlachten und Action versteht, lässt es lieber sein.

Rezept: Gefüllte Nudelteigtaschen mit Käse-Sahne-Sauce

Rezept

Gefüllte Nudelteigtaschen mit Käse-Sahne-Sauce (für 3-4 Personen)

Zutaten

Nudelteig:

300 g Mehl

2 Eier

2 EL Öl

etwas Milch

Prise Salz

Füllung:

250 g Hack (gemischt)

50 ml Sahne

gehackte Petersilie

Salz, Pfeffer, Paprikapulver

Sauce:

400 g Mischgemüse

150 ml Sahne

200 g Schmelzkäse

50 ml Weißwein

Zeit

90 min

Das Mehl auf der Arbeitsfläche auftürmen, ein Loch in die Mitte machen und die zwei Eier darin aufschlagen. Salz und Öl zugeben und alles gut durchkneten. Sollte der Teig zu krümelig sein, vorsichtig etwas Milch zugeben und weiter kneten. Den Teig insgesamt mindestens 15 Minuten lang gut durchkneten, dann in Frischhaltefolie einpacken und für 30 Minuten in den Kühlschrank stellen.

Währenddessen in einer Schüssel das Gehackte und die Sahne mit der gehackten Petersilie, Salz, Pfeffer und einem TL Paprikapulver vermischen und kühl stellen.

Den Nudelteig aus dem Kühlschrank nehmen und auf der bemehlten Arbeitsfläche mit einem Nudelholz ausrollen. Der Teig sollte nach dem Ausrollen ca. 1 mm hoch sein, kann aber je nach Geschmack auch dünner gerollt werden. Dann mit einem Messer den Teig in ca. 4x8 cm große Stücke schneiden. Je nach Wunsch kann man aber auch Kreise oder Herzchen ausstechen.

Nudelteigtaschen

Die Hackmischung dann auf den Teigplättchen verteilen, die Ränder der Plättchen mit Wasser einreiben und zusammenfalten. Mit einer Gabel drückt man die Ränder noch einmal zusammen. Gemüsebrühe auf dem Herd zum Kochen bringen und die Nudelteigtaschen für 15 Minuten kochen. (Je nach Topfgröße nacheinander.)

Nudelteigtaschen

Währenddessen in einer Pfanne etwas Öl erhitzen und das Mischgemüse (Brokkoli, Möhren, Blumenkohl, Mais, Paprika, Zucchini, was man will) andünsten. Nach 5 Minuten mit Weißwein ablöschen und etwas von der Gemüsebrühe hinzugeben. Die restliche Sahne einrühren und den Schmelzkäse in der Sauce zum Schmelzen bringen. Am Ende die Sauce andicken und ggf. noch einmal abschmecken.

Nudelteigtaschen

Buch: Spielend C++ lernen

Titel

Spielend C++ lernen

Autor

André Willms

Sprache

Deutsch

Genre

Sachbuch

Herausgeber

Galileo Computing, 2012

Seitenanzahl

388

Es gibt sehr viele Programmiersprachen auf der Welt, sodass sich Programmieranfänger meist nicht so recht entscheiden können, mit welcher Sprache sie anfangen sollen. C++ ist vielleicht nicht die erste Wahl, wenn man den Kreis der erfahrenen Programmierer befragt, doch soll das Buch „Spielend C++ lernen“ von André Willms, wie der Titel sagt, spielend in die Thematik der C++-Programmierung einführen.

Zielgruppe und Inhalt

Das Buch ist zwar laut Titel für Programmieranfänger von 12 bis 99 Jahren ausgelegt, doch bereits am Anfang merkt man, dass Willms eher ein jüngeres Publikum ansprechen will. Dies fällt zum einen bei der direkten Ansprache mit Du auf, an der sich ältere Semester möglicherweise stören könnten, zum anderen ist in manchen Übungsaufgaben von den eigenen Klassenkameraden die Rede, was für einen 30-jährigen Programmieranfänger sicher nicht ganz passend erscheint.

Da man aber eh nur so alt ist, wie man sich fühlt, kann man sich „Spielend C++ lernen“ auch im gesetzteren Alter zu Gemüte führen, wenn man sich nicht an Kindergeschichten stört. Willms will die C++-Programmierung nicht durch die x-te Wiederholung der C++-Syntax herunterbeten, sondern bettet das Lernen didaktisch sinnvoll in ein kleines Spiel samt Vorgeschichte ein. Grob zusammengefasst geht es darum, dass Nedjem und Neferu unerlaubt in eine Pyramide eindringen und damit den Sonnengott Ra erzürnen. Der verwandelt Nedjem in einen Käfer namens Scara. Um zurückverwandelt zu werden, muss Scara durch Labyrinthe laufen, was mittels diverser Programmierparadigmen (Iterationen, Bedingungen, etc.) gelöst werden kann. Neferu darf sich derweil eher kleinen Mathe- und Zeichenspielchen hingeben, während sie auf die Rückkehr ihres Geliebten wartet.

Die Geschichte um Nedjem/Scara und Neferu wird am Anfang eines jeden Kapitels forterzählt und stellt die beiden vor immer neue Aufgaben, deren Lösungen dann im folgenden Text vorbereitet werden. Die Einbettung in das Lernen geschieht dabei so fließend, dass man nicht einmal mitbekommt, dass man etwas lernt. Hilfreich ist es dafür natürlich auch, dass die Kapitel alle nur einen geringen Themenumfang behandeln, sodass auch Programmierneulinge nicht abgehängt werden.

Für Leute, die mit den meist einfachen Aufgaben schnell unterfordert sind, gibt es an manchen Stellen Fortgeschrittenen-Kapitel, in denen speziellere Spezifika der Sprache C++ näher gebracht werden. Zwischendurch gibt es darüber hinaus auch noch Exkurse zu anderen Themen wie der Bedeutung des Wortes Algorithmus, dem Farbraum RGB oder der Erklärung von RAM.

Positiv erwähnen muss man die Nutzung von UML-Aktivitätsdiagrammen, um die Kontrollflüsse einer Aufgabe zu verdeutlichen. Selbst ohne UML-Wissen versteht auch ein Programmieranfänger die Diagramme und kann so leichter begreifen, was zu tun ist. Die durchgehende Benutzung von deutschen Wörtern – auch der Programmcode ist komplett in Deutsch gehalten – erleichtert das Verständnis für Nicht-Fremdsprachler ungemein.

Windowslastig

Das größte Manko des Buches ist leider, dass es sich vollends an Windows-Nutzer richtet. Prinzipiell sind die Erklärungen in den Kapiteln natürlich auch unter Linux nachstellbar; ein Programmieranfänger wird hier aber schon beim Compileraufruf scheitern, da Willms in „Spielend C++ lernen“ direkt auf die Programmierumgebung Visual C++ 2010 Express von Microsoft eingeht. In einer sehr gut bebilderten und umfangreichen Erklärung wird die Installation und Einrichtung des Programms beschrieben, sodass wirklich jeder damit zurecht kommen sollte, der ein Windows-System bedienen kann.

Sicherlich ist Visual C++ eine sehr gute Programmierumgebung für Windows. Dennoch gibt es zum Beispiel mit Eclipse plattformunabhängige Lösungen, sodass auch Linux-Nutzer mit einbezogen werden könnten. So werden diese in der aktuellen Auflage des Buches aber fast völlig ausgeschlossen.

Neben der Windows-Programmierumgebung stellt sich ein noch viel größeres Problem: André Willms liefert eine (wahrscheinlich selbst geschriebene) Bibliothek mit, welche C++ um einige Sprachbefehle erweitert. Auf diese Befehle wird in fast alle Kapiteln Bezug genommen, und ein Großteil der Übungsaufgaben lässt sich nur darüber lösen. So wird über die Bibliothek der Käfer Scara in seinem Labyrinth dargestellt und geprüft, ob er es mit den Anweisungen des Lesers zum Ausgang schafft. Ebenso ist das Zeichenbrett von Neferu damit realisiert und stellt somit eine grafische Umgebung bereit.

Didaktisch ist dieser Ansatz erstklassig, da man zum einen neues Wissen visuell leichter aufnehmen kann, zum anderen erhält der Lernende sofort eine Rückmeldung auf dem Bildschirm, ob es richtig ist, was er macht. Der Nachteil ist aber, dass die Bibliothek nur als vorkompilierte dll (Dynamic Link Library) für Windows vorliegt und der Quellcode leider auch nicht offen ist. Im Klartext: Nicht-Windows-Nutzer können die Aufgaben im Buch gar nicht nachstellen und die meisten Übungen so nicht lösen. Aber selbst Windows-Nutzer werden benachteiligt, da es die dll nur für den Visual C++-Compiler zum Download gibt. Andere Compiler und damit auch andere Entwicklungsumgebungen, die unter Windows lauffähig sind, sind komplett ausgeschlossen.

Mehr Substanz

Da sich „Spielend C++ lernen“ eher an Programmieranfänger richtet, ist es verständlich, dass vor allem die Grundlagen der Sprache ausführlich erklärt werden. Dennoch muss man am Ende des Buches sagen, dass man eher etwas über prozedurale Programmierung mit C++ gelernt hat als über die objektorientierte Programmierung, für die C++ eigentlich eher geeignet ist. Klassen werden nur im letzten Kapitel ganz kurz erklärt, aber dass es zum Beispiel so ein mächtiges Konzept wie Vererbung gibt, wird nicht erwähnt. Insgesamt hat man eher das Gefühl, ein Buch über C zu lesen anstatt über C++.

C++-spezifische Konstrukte werden natürlich auch erwähnt. So gibt es in C++ Namensräume und auch die STL (Standard Template Library), die zum Beispiel Container wie Vektoren oder Queues zur Verfügung stellt, kommt zur Anwendung.

Aber auch bei diesen einfachen Sprachkonstrukten wird nicht der volle Umfang von C++ genutzt. So wird erklärt, dass es ein if … else gibt, aber dass man nach dem else auch direkt wieder ein if folgen lassen kann, wird verschwiegen. Dabei ist dies mitunter wichtig, wenn man mehrere sich ausschließende if-Blöcke untereinander schreiben will. Dass selbst Enumeratoren keine Erwähnung finden, ist so oder so fragwürdig.

Daneben gibt es dann wieder positive Auffälligkeiten, wie zum Beispiel die Erwähnung, dass in einer Bedingung, die mit UND (&&) oder ODER (||) verschachtelt ist, in manchen Fällen nur die erste Bedingung ausgeführt wird und nicht alle. Dies wird vor allem vonAnfängern gerne übersehen und führt zu unnötigen Fehlern.

Auf der anderen Seite ist es dann wieder unverständlich, wieso weder auf Zeiger noch auf Referenzen eingegangen wird. Sicherlich sind Zeiger ein sehr komplexes Mittel, aber zumindest Referenzen hätte der Autor erklären können. So wird bei allen Funktionen mit der Übergabe von Parametern immer eine Kopie der Objekte erstellt, was sich nicht positiv auf die Laufzeit auswirkt. Man kann argumentieren, dass der Programmieranfänger das noch im Laufe seines Lebens lernen wird. Dennoch wird er es somit am Anfang seiner Programmierlaufbahn immer „falsch“ machen.

Fazit

Didaktisch ist „Spielend C++ lernen“ sehr gut gemacht, da eine lustige Geschichte die Aufgaben erklärt und durch die grafische Rückmeldung der Lernende zum Mitmachen animiert wird. Schade dagegen ist, dass sich das Mitmachen allein an Windows-Nutzer richtet und Linux-Nutzer so mit dem Buch nicht viel anfangen können, da ein Großteil des Codes bei ihnen nicht lauffähig ist.

Eher negativ ist auch die geringe Fülle an C++-Konstrukten, die im Buch Erwähnung finden. Sicherlich es ist es nur eine Einführung in C++, dennoch fehlen einige wichtige Elemente der Sprache, die man hätte vorstellen müssen. Vor allem die Objektorientierung kommt zu kurz.

So bleibt ein zwiespältiger Eindruck: Wer mit C++ anfangen will und Windows nutzt, ist mit dem Buch definitiv gut beraten und findet einen guten Einstieg in die Sprache. Linux-Nutzer oder Programmierer, die schon C beherrschen, sollten sich besser nach anderer Literatur umsehen.

Update zum Humble Bundle for Android

Wie gewohnt wurde dem neuesten Humble Bundle ein weiteres Spiel hinzugefügt. Neben World of Goo, Osmos, EDGE und Anomaly gibt es nun auch das Spiel Toki Tori zum Download. Darin übernimmt man die Rolle eines gelben Kükens, was in bekannter Jump'n'Run-Manier über Abgründe springt, Leitern erklimmt, durch die Gegend hüpft, Gegner besiegt und Eier befreit.

Ich habe Toki Tori noch nicht angespielt, es sieht aber wie ein netter Zeitvertreib aus. Insgesamt ist das Bundle dennoch nicht interessant genug für mich. Das andere Käufer auch so denken, sieht man an den aktuellen Verkäufen, da die Einnahmen bisher nicht mit anderen Bundles mithalten können.