icancode.de

C++

Einführung in C++ – Ein Interview mit Torsten Will

Veröffentlicht am .

Einführung in C++ – Ein Interview mit Torsten Will

Einleitung

Neben Familie und Job ein Buch zu schreiben, das ist gar nicht so einfach. Ich habe mich mit Torsten Will darüber unterhalten, wie es ist, Programmierbücher zu schreiben, wie er dazu gekommen ist und wie das mit dem Zeitmanagement funktioniert.

Torsten, wir kennen uns ja schon vom Ingress spielen, stell dich doch mal kurz vor, damit die Leser auch wissen wer du bist und was du machst.
Ich bin Torsten Will. Ich bin seit Ewigkeiten hier in Bielefeld — und das gern. Von der Ausbildung her bin ich Diplom-Informatiker. War, wie du ja auch, an der Uni Bielefeld.

Wie bist du zum Schreiben gekommen?
Ich habe schon während der Schulzeit angefangen kleine Sachen zu schreiben – das ist dann immer mehr gewachsen. Zuerst waren es also Fanzines, dann ein lokales Magazin. Aber ich war immer fasziniert davon, wie man z.B. einen Artikel in die c’t bekommt. Dann hab ich mir irgendwann ein Herz gefasst und nach einem persönlichen Gespräch einfach mal was eingeschickt. Die waren da ganz angetan von und haben es abgedruckt. Das war irgendwie der Start davon, dass ich angefangen habe technische Texte zu schreiben.

Und dann bist du direkt bei gedruckten Dingen geblieben oder hast du erst einen Blog geschrieben?
Für mich war immer Print das richtige Medium. Ich hab immer nebenbei für kleine Magazine und Hobby-Projekte geschrieben.

Wie bist du jetzt auf die Idee gekommen, ein Programmierbuch zu schreiben?
Ich habe damals mit einem ehemaligen Kollegen rumgesponnen . Wir haben uns zum Mittagessen getroffen und haben überlegt, was richtig cool wäre. Richtig cool wäre es doch, in irgendetwas „Guru“ zu sein. Die Frage war dann nur, wie man das wird. Guru ist man dann, wenn man von allen Leuten gefragt wird, also Expertenwissen hat und der Name bekannt ist – und der erste Schritt dazu war für uns, ein Buch zu schreiben. Das war damals so eine verrückte Idee aber die hat mich dann nicht mehr losgelassen. Zum Buch kam es dann indirekt wieder mittels der c’t. Als die neue Version von C++ drohte zu erscheinen, habe ich dort angefragt, ob die ihren Lesen nicht mal erklären wollen, was es für neue Features geben wird – und es sollte eine Menge neue Features geben. Ich habe eine Menge recherchiert. Es hat wirklich sehr lange gedauert und es gab auch Frust und Zweifel. Als wir [Torsten und sein Redakteur] den Artikel dann fertig hatten gab es aber die Belohnung: Ein Extralob vom Chefredakteur. Da fiel mir die Sache mit dem Buch wieder ein. Also habe ich mal auf der Seite eines, von mir hoch angesehenen, Verlags geguckt und festgestellt, dass die Autoren suchen. Dann hab ich noch ein bisschen gezögert, mich gefragt, ob ich mich das traue und schlussendlich eine Mail hingeschrieben. Die haben sich dann auch prompt zurückgemeldet.

Wie ging es dann weiter? Wie fängt man so ein Buch an?
Die wollten dann direkt ein Inhaltsverzeichnis von mir haben. Das ist wohl die übliche Praxis.

Du hast dann also das Inhaltsverzeichnis gemacht und dann stellt sich mir automatisch die Frage: „Womit schreibe ich das Buch?“. Womit hast du es geschrieben?
(lacht) Die Frage stellte sich mir gar nicht. Für mich ist von Anfang an klar gewesen, dass ich es nicht mit Word mache. In der Regel ist es bei Verlagen so, dass der Autor nur für den Inhalt zuständig ist. Ich gebe also txt Dateien ab und den Rest macht der Verlag. Das hätte mir aber keinen Spaß gemacht. Ich bin ja ein Fan von semantischer Auszeichnung. Also Begriffe werden anders ausgezeichnet als Querverweise, obwohl sie beide kursiv formatiert werden. Es war also von Anfang an klar, ich werde es mit eigenen Auszeichnungen versehen, damit ich es nachher nochmal ändern kann oder einfach einen anderen Style drüber legen kann. Ich habe mir dann damals selber einen MarkDown Dialekt gebaut und habe mir daraus dann mein LaTeX generiert. Aus dem rohen LaTeX und einer vom Verlag gestellten Dokumentenklasse habe ich dann das Layout gemacht. Ich habe dann also den Verlag gefragt, ob ich das alleine machen darf – natürlich mit deren Anleitung – und sie haben zugestimmt.

Wie generierst du den LaTeX Code aus deinem MarkDown?
Dafür habe ich mir ein Python Script geschrieben. Das Standardpaket markdown.py habe ich im Prinzip durch ein selbstgeschriebenes Ausgabemodul erweitert.

Noch ein Programmierbuch? Wie stehst du selber als Autor zu einer neuen, nennen wir es mal Totholzquelle für Programmierer?
Ich habe immer versucht, mich von der Masse abzuheben. Ich wollte also tatsächlich nicht einfach ein neues Buch über das Programmieren schreiben. Ich hatte mich da auf zwei Punkte eingeschossen:

  1. Es gab noch kein Buch, das die Sachen, die in C++11 neu dazugekommen sind, einem deutschen Leser beibringt. Dementsprechend ist es in der Hinsicht keine Totholzquelle.
  2. Ich wollte den Leuten eine neue Art und Weise zeigen, C++ zu programmieren. Weg von dem alten, sehr C-lastigen C++, hin zu einem neuen, schöneren und modernen C++ – eben mit der Nutzung von den neuen Möglichkeiten von C++11.

Einführung in C++ ist ja dein zweites Buch. Wieso entscheidet man sich neben Job und Familie dazu, noch ein Buch zu schreiben? Hat man den Stress und den Schmerz vergessen oder macht es einfach so viel Spaß?
(lacht) Beim zweiten Buch muss ich wirklich den Schmerz vergessen haben. Ein Hauptgrund ist wohl, dass mich Programmiersprachen an sich interessieren. In Java könnte ich Annotations bauen und Übersetzer aber das mache ich eben nicht. Da macht mir C++ einfach mehr Spaß. Und ich wollte ja auch am Ball bleiben, also habe ich angefangen das Buch zu schreiben.

Was war dein Ziel, als du angefangen hast das Buch zu schreiben?
Zum einen wollte ich ein Aha-Erlebnis schaffen. Beispiel die „Nuller-Regel“. Alle vorherigen Kapitel zielen quasi darauf ab, dass man diese an einem gewissen Punkt versteht — ich meine wirklich versteht, mit allem drumherum.

Wenn jemand, der mein Buch gelesen hat, jetzt also auf einen anderen C++ Programmierer trifft, kann er oder sie mit diesem auch ordentlich diskutieren. Normalerweise gibt es z.B. eine sog. Dreier-Regel: „Programmiere immer den Copy-Constructor, den Default-Constructor und den Zuweisungsoperator“. Mein Leser weiß jetzt aber, dass dies in C++11 nicht mehr stimmt. Viele meinen, man muss jetzt fünf Operationen ausprogrammieren. Das ist aber nicht unbedingt der Fall. Stattdessen sollte man sich nämlich an die „Nuller-Regel“.

Worauf bist du besonders stolz?
Das Kapiteltelegram: Das ist ein Format, das ich mir erkämpft habe. Im Grunde habe ich aus der Not eine Tugend gemacht. Ich habe nicht die große Erfahrung gehabt im Lehrbücherschreiben. Also habe ich angefangen vorne aufzuschreiben, welche neuen Begriffe in diesem Kapitel auftauchen. Das macht mir das Erklären auch leichter, weil ich nicht mehr so darauf achten muss, dass ich die Begriffe in einer bestimmten Reihenfolge erkläre.

Die Beispiele: Jedes Stückchen Beispielcode aus dem Buch ist kompilierbar. Das ist ein Vorteil meiner eigenen Meta-Sprache. Jedes Stückchen Code wird automatisch extrahiert und in C++ kompiliert. Dadurch sind Tippfehler quasi ausgeschlossen. Es sind auch immer Beispiele, die man in der freien Wildbahn finden würde. Ich habe mich bemüht, möglichst wenig artifiziellen Code zu generieren. Niemand würde mit Zwergen aus Tolkien ein Programm schreiben aber die Idee dahinter sollte klar sein. Ich habe auch alle Konstrukte, die nur in C++11 benutzbar sind, mit einen gepunkteten Unterstreichung gekennzeichnet, damit direkt klar wird, dass es sich hierbei um eine Neuerung handelt.

Zwei Bücher hast du jetzt geschrieben. Alle guten Dinge sind drei – kommt noch eins?
Erstmal nicht. Aber bestimmt kommt noch eins. Meine Motivation ist ja klar, ich will am Ball bleiben. Und ob es nun Java oder C++ wird sich dann zeigen.

Eine fast schon persönliche Frage habe ich noch zum Abschluss. Welche Entwicklungsumgebung benutzt du?
Emacs… Aus Überzeugung… (lacht) Das ist wirklich eine sehr persönliche Frage. Das gesamte Buch ist in Emacs geschrieben. Ohne Emacs hätte ich das nicht gekonnt.

Torsten, ich bedanke mich recht herzlich bei dir.

Gewinnspiel

Durch die freundliche Unterstützung des Rheinwerk Verlags dürfen wir auch eines der Bücher von Torsten verlosen. Die Teilnahmebedingungen sind einfach. Schreibt uns bis zum 27.7.2015 in die Kommentare, warum ihr glaubt, dass das Buch etwas für euch wäre. Um eure Chancen zu vergrößern könnt ihr auch diesen Facebookbeitrag teilen:

Einführung in C++

oder diesen Tweet retweeten:

Der Gewinner wird per privater Nachricht/ Email über seinen Gewinn benachrichtigt.

 

 

Rico Magnucki

Rico Magnucki

http://magnucki.de

21st Century Digital Boy und Blog-Gründer. Studiert naturwissenschaftliche Informatik in Bielefeld. Auf dem Blog ist er der Ansprechpartner für LaTeX, schreibt Tutorials, dreht die Videos für YouTube und durchforstet das Internetz nach spannenden Dingen.

  • CrazzyProFF

    Hey Leute, ich bin Physikstudent im 4 Semester und werde zum nächsten Semester die Vorlesung Programmieren besuchen. Dort wird uns C++ vermittelt. Das Buch „Einführung in C++“ würde mir den Einstieg in diese Sprache erleichtern, vor allem da ich noch keine wirklichen Programmierkenntnisse besitze. ;)

  • Martin

    Moin!
    Bin ein armer Informatik-Student und in unserer Bibliothek gibt es leider immer noch kein Exemplar :(((
    Hatte das Vergnügen, im Laden mal reinzublättern: Ziemlich gut geschrieben :)
    Viele Grüße!

Kommentare anzeigen (2) ...
Navigation