Meet the Geek

Folge 12: Der C++-Entwickler. Zwei Plus für Fortgeschrittene.

gepostet von am

Tobias ist Programmiersprachen-Fanboy und als Informatiker und Mathematiker im Entwickler-Alltag begeistert bei Theorie und Praxis am Start. Schon als Knirps kam er mit der Programmierung in Berührung und fand über Studium, Uni-Job sowie einen Umweg über die Web-Entwicklung zu seiner Berufung: der Entwicklung der Datenbank der Zukunft.

Alternativtext
Name:
Tobias Gödderz
Alter:
34 Jahre
Beruf:
C++-Entwickler
Unternehmen:
ArangoDB
wichtigste Tools:
hat “3 Fenster immer offen”: tmux, CLion IDE, Firefox – den aber nur aus Faulheit
andere Programmiersprachen:
Haskell, PHP, Java, Perl, C, JavaScript

Über „Meet the Geek“

Tobias, in deinem spannenden Vortrag konnte man deine Begeisterung für Programmierung und Softwareentwicklung erleben. Wie wurde diese geweckt?

Meinen ersten Kontakt mit Programmierung hatte ich etwa mit 6 Jahren. Mein Vater hatte einen Apple II. Darauf lief ein LOGO-Lernprogramm mit einem programmierbaren Igel. Ich wollte, dass der Igel das macht, was ich will. Das waren meine ersten vorsichtigen Gehversuche. Als Jugendlicher hatte ich dann die ersten “richtigen” Erfahrungen mit Programmiersprachen. Ich habe Websites mit PHP gebaut und kam dann nach und nach mit JavaScript, Perl, Java und C in Kontakt.

Du fühlst dich ja offensichtlich in einer Menge Programmiersprachen zu Hause und berichtest mit Leidenschaft davon. Hast du eine Lieblingsprogrammiersprache – neben C++ natürlich?

Programmiersprachen sind tatsächlich so etwas wie ein Hobby für mich, zumindest auf einem abstrakten Level. Was eine “Lieblingssprache” angeht, bin ich ein großer Fan von Haskell. Mich fasziniert die reine Ausrichtung auf Funktionalität. Ich könnte mir auch vorstellen, damit in Zukunft mal Projekte anzugehen. Die Sprache hatte auf jeden Fall eine Menge Einfluss auf meine Arbeit mit C++ bei ArangoDB, da es hier größtenteils um abstrakte mathematische Fragestellungen geht.

Und wie hast du aus dieser Berufung dann einen Beruf gemacht?

Ich habe in Bonn ganz klassisch Mathematik und Informatik studiert. Mathe mit Schwerpunkt auf diskrete Mathematik. Hier bin ich auch mit weiteren Programmiersprachen in Berührung gekommen, wie eben Haskell. Ich habe dann einen Job an der Uni bekommen, wo ich an der Entwicklung von Tools für die Chip-Entwicklung beteiligt war. Da konnte ich mein Studienwissen gut einbringen, denn dabei geht es viel um diskrete Optimierung. Als dann der Professor Projekt und Uni verlassen hat, habe ich ein Jahr in der klassischen Webentwicklung gearbeitet, mich da aber nicht so wohl gefühlt. Dann kam eine Anfrage von next level für ArangoDB und das passte dann wie die Faust aufs Auge. Ich hatte vor meinem Start bei ArangoDB aber etwa vier Jahre nicht mehr in C++ programmiert und musste mich erst wieder reinfinden.

”C++” ist das Stichwort: Die Sprache ist dein täglich Brot – was zeichnet Sie in deinen Augen aus?

Zunächst mal: die Sprache ist alt und sehr verbreitet – sie ist gewissermaßen “too big to die”. Und C++ ist ganz schön kompliziert geworden. Besonders seit dem letzten Major-Update zur Version 11. Ich musste mir tagelang neue Standards durchlesen. Da sind viele neue Features hinzugekommen und man muss sich erstmal eindenken. Insgesamt war das aber ein großer Fortschritt in Sachen Funktionalität und Modernität. Komplex war die Sprache natürlich schon immer. Sie sieht erstmal aus, wie eine Hochsprache, hat aber komplett andere, komplizierte Mechanismen. C++ ist zwar keine Systemsprache, aber dennoch deutlich abstrakter und maschinen-näher als andere Sprachen.

Was sind für dich die großen Vorteile von C++ im Vergleich zu anderen Sprachen?

Der höhere Abstraktionsgrad ist natürlich ein Vorteil. Zudem ist die Sprache ideal für Programme, die trotz Abstraktion schnell und zuverlässig reagieren müssen. Dabei hilft vor allem das manuelle Speichermanagement. Da kann man zwar viele Fehler machen, aber es lohnt, sich damit auseinanderzusetzen, vor allem wenn die Performance im Vordergrund steht.

Tobias Gödderz bringt uns die Vorteile von C++ und seine tägliche Arbeit an einer ganz besonderen Datenbank weiter.
Für uns ein wirklich lohnenswerter Nachmittag: Tobias (links) bringt uns die Vorteile von C++ und seine tägliche Arbeit an einer ganz besonderen Datenbank weiter.

Und wie sieht deine tägliche Arbeit bei ArangoDB aus? Ihr entwickelt ja eine Datenbank, die Ihr “multi-modell database” nennt.

Genau. Auf der einen Seite ist unser System nicht-relational, auf der anderen enthält unsere DB-Sprache AQL viele Ähnlichkeiten zu SQL. Vor allem ist ArangoDB unter anderem auch eine Graphendatenbank, wobei meine Erfahrungen mit diskreter Mathematik, und damit Graphentheorie, wieder zum Tragen kommt. Vom zeitlichen Aufwand her macht der für mich besonders interessante Teil der mathematischen Konzeption aber nur etwa 5 % aus, 95 % sind Programmierarbeit. Dabei lese ich vermutlich mehr Code von Kollegen, als ich selbst schreibe. Für das Testing kommt dann auch eine Menge JavaScript zum Einsatz.

Wo wir die Arbeit als Programmierer schon angesprochen haben – was macht für dich einen guten C++-Dev aus?

Ich glaube, um in C++ einzusteigen, benötigt man vor allem Lernwille. Zudem halte ich es für ratsam, in der Programmierung sein Augenmerk auf mehr als eine Sprache oder ein Framework zu legen. Wer grundlegend programmieren kann, kommt schnell in neue Sprachen rein und je mehr Programmiersprachen man beherrscht, desto schneller lernt man neue. Für C++ braucht man neben dem Lernwillen noch Geduld und eine methodische Herangehensweise, weil die Sprache so abstrakt und komplex ist. Man sollte auch schon Erfahrung mit ähnlichen Sprachen haben, etwa Java, C# oder dem Speichermanagement von C. C++ ist aber keine gute Lernsprache. Man sollte als Neuling schon Erfahrung mit anderen Sprachen haben.

Geht deine Begeisterung für Technologie in deiner Freizeit weiter? Wie sieht es beispielsweise mit Computerspielen aus?

Ich zocke schon gerne. Früher habe ich am liebsten Starcraft gespielt, heute ist es eher Factorio. Außerdem beschäftige ich mich zu Hause mit VR. Die Hardware will ja gefordert werden.

Zum Abschluss würden wir noch gerne von dir wissen, was du wohl geworden wärst, wenn du keinen technischen Weg eingeschlagen hättest?

Dann wäre ich Waldführer geworden, oder etwas Ähnliches. Ganz sicher. Schließlich bin ich leidenschaftlicher Pfadfinder!

Du nimmst es also auch mit echten Bugs problemlos auf. ;-) Vielen Dank für das Gespräch, Tobias!

Anmerkung der Redaktion: Wer selbst mal ein Tierchen mit Logo rumscheuchen möchte, kann dies hier tun.