Kris van Rens (Trainer)
Trotz einer Vielzahl aufstrebender Alternativen ist C++ immer noch eine Macht, mit der man rechnen muss, vor allem in der von Altlasten geplagten High-Tech-Branche. Kris van Rens, ein Enthusiast der Computerprogrammierung, der auf fast 25 Jahre Erfahrung zurückblicken kann, führt in seinem neuen C++ Fundamentals Training am High Tech Institute Programmieranfänger in die Grundlagen der Sprache und die wichtigsten Best Practices ein.
Im Laufe der Jahre wurde eine lange Liste von Programmiersprachen vorgeschlagen, um C++ zu verdrängen. D, Rust, Apples Swift, die jüngste Google-Ergänzung Carbon und weniger bekannte Alternativen wie Nim und Vale, um nur einige zu nennen – sie alle haben ihre Vorzüge und ihre speziellen Anwendungsbereiche. Nichtsdestotrotz ist C++ immer noch sehr lebendig, meint der Computerprogrammier-Enthusiast Kris van Rens.
„Es gibt die weit verbreitete Ansicht, dass man C++ nicht verwenden sollte, weil es veraltet ist“, sagt Van Rens. „Aber eigentlich ist es diese Ansicht, die veraltet ist. Sie basiert auf C++ im alten Stil. Seit der Geburt des modernen C++ im Jahr 2011 ist die Sprache mit der Zeit gegangen. Mit den richtigen Bestimmungen ist sie nicht weniger relevant als aufstrebende Alternativen wie Rust.“
In der neuen 4-tägigen Schulung „C++-Grundlagen“, die das High Tech Institute in den letzten beiden Märzwochen veranstaltet, führt Van Rens die Teilnehmer in die Grundlagen der Sprache und die wichtigsten Best Practices ein. „Ich möchte eine positive Einstellung zu C++ vermitteln. Ich möchte, dass die Teilnehmer mit dem Gefühl nach Hause gehen, dass sie wirklich etwas damit anfangen können und wissen, wie man es richtig einsetzt.“
Brot und Butter
Van Rens ist von der wunderbaren Welt des Programmierens fasziniert, seit er das erste Mal den ZX Spectrum Heimcomputer seines Vaters in die Hand nahm. „Es war ein Gerät aus dem Jahr 1983, dem Jahr, in dem ich geboren wurde. Als ich 7 oder 8 Jahre alt war, fing ich an, mit der Programmiersprache Basic daran herumzubasteln. In der High School brachte mir ein Mitschüler im Rahmen einer außerschulischen Aktivität X86-Echtzeit-Assembler bei, gefolgt von C und dann C++. In den letzten Jahren habe ich mich auch mit Rust beschäftigt.“
Nach einem Bachelor in Mechatronik an der Hochschule Niederrhein in Krefeld, Deutschland, absolvierte Van Rens einen Master in Elektrotechnik an der Technischen Universität Eindhoven (TUE), wo er sich unter der Leitung von Professor Peter de With auf Videocodierung und Architekturen spezialisierte. „An der Universität wurde ich zum Software-Ingenieur und bekam meine ersten Erfahrungen mit dem Unterrichten. Parallel zu meinem Abschlussprojekt, bei dem es um die Konvertierung von MPEG-2 in H.264-Videoströme ging, habe ich ein Tutorial zur Bild- und Videocodierung erstellt – zu meinem eigenen Verständnis, aber auch nur aus Spaß an der Sache und um diesen Spaß an andere weiterzugeben. Meinen Enthusiasmus zu verbreiten, war für mich schon immer ein wichtiger Antrieb.“
Im Jahr 2009 begann Van Rens seine berufliche Laufbahn bei seinem heutigen Arbeitgeber, dem Spezialisten für intelligente Überwachung Vinotion. Damals war dieses TUE-Spinoff noch ein Startup und arbeitete in einem Büro, das zur Forschungsgruppe von De With gehörte. „Von der Codierung von Bildanalysealgorithmen in C++ verlagerte sich mein Schwerpunkt langsam auf die Entwicklungsplattform als Ganzes, einschließlich der Sprache selbst, der Programmierschnittstellen und der Werkzeuge. Das wurde mein tägliches Brot: die Erstellung von robustem, leistungsstarkem und qualitativ hochwertigem Code unter Verwendung einer soliden Softwarearchitektur.“
Van Rens‘ Karriere in der Ausbildung bekam einen Schub, als er gebeten wurde, bei einem der informellen 040coders-Treffen für Computerprogrammierer in der Region Eindhoven zu sprechen. „Das Treffen wurde von Philips Image Guided Therapy veranstaltet und ich führte einen Sketch auf, in dem es darum ging, Kinder in C++ einzuführen. Danach lud mich IGT ein, eine ernsthafte Präsentation vor ihren Ingenieuren zu halten. Also habe ich ein ausführliches C++-Thema ausprobiert. Es hat ihnen so gut gefallen, dass daraus eine vierteljährliche Veranstaltung geworden ist – bisher alles online, dank Covid, bei der ich von meinem Dachboden aus vor bis zu 150 Zuhörern präsentiere.“
Begegnungen mit dem Erbe
Der neue C++-Kurs am High Tech Institute richtet sich an viel kleinere Gruppen von maximal einem Dutzend Softwareingenieuren mit grundlegenden Programmierkenntnissen – jede Sprache ist geeignet. Es ist auch viel praxisorientierter, mit praktischen Übungen, die aus Van Rens‘ mehr als 10-jähriger Industrieerfahrung stammen. „Diese Übungen sind nicht theoretisch und erfunden, wie ich es in so vielen anderen Kursen gesehen habe. Es sind echte industrielle Fälle, inspiriert von den Problemen, denen ich bei meiner täglichen Arbeit begegne.“
Ein Schlüsselkonzept, das Van Rens anspricht, ist das Handwerk der Systemprogrammierung. „Wenn Sie eingebettete Software für ein High-Tech-System schreiben, sind Sie viel näher an der Hardware dran als bei der Entwicklung einer Webanwendung“, erklärt er. „In Javascript zum Beispiel müssen Sie sich in der Regel nicht um Dinge wie die Speicherverwaltung kümmern; das übernimmt der Interpreter für Sie. In einem eingebetteten System müssen Sie sich um die oft begrenzten Ressourcen kümmern und darum, wie Sie diese sinnvoll nutzen. Bei der Systemprogrammierung geht es darum, sich der Feinheiten auf allen Ebenen bewusst zu sein und die Flexibilität zu haben, entsprechend zu handeln. Die Ausbildung liefert die Handgriffe dafür. Dieses Wissen gilt für jede Systemprogrammiersprache.“
''A lot of legacy is written in some older version of C++.''
Die Allgegenwart von Legacy-Code in der High-Tech-Industrie ist ein weiterer Grund, warum C++ und seine Ausbildung so wichtig sind, bemerkt Van Rens. „Ein Großteil dieser Altlasten ist in einer älteren Version von C++ geschrieben. Früher oder später werden Sie auf diesen Code stoßen. Ihn umzuschreiben oder in Rust oder einer anderen Sprache dagegen zu programmieren, ist fast nie eine praktikable Option; Sie müssen damit in C++ umgehen, und mein Training wird Ihnen dabei helfen.“
Um auf Legacy-Code vorbereitet zu sein, müssen die Teilnehmer natürlich ein oder zwei Dinge über C++ im alten Stil wissen, aber der Schwerpunkt liegt auf den sicheren, modernen Aspekten. „Nach der ersten Standardisierung im Jahr 1998 hat sich die Sprache lange Zeit nicht viel verändert. Erst 2011 erfuhr C++ mit der Einführung moderner Konzepte wie Smart Pointer für eine sicherere Speichernutzung eine echte Metamorphose. Seitdem wird die Sprache regelmäßig aktualisiert, und das gilt auch für die besten Praktiken“, erklärt Van Rens. „Ich konzentriere mich in erster Linie auf den aktuellen Stand der Technik. Im weiteren Verlauf der Schulung bereite ich die Teilnehmer auch auf ihre unvermeidlichen Begegnungen mit dem alten C++ vor, indem ich auf die Entwicklung der Sprache eingehe und Übungen anbiete, bei denen Teile des alten Codes mit modernen Konstrukten neu geschrieben werden müssen.“
Aufgeladenes Lernen
Die Grundlagen, die Van Rens in der kommenden Schulung vermittelt, sind mehr als genug für die Teilnehmer, um einen guten Start hinzulegen, aber sie sind nur ein Bruchteil dessen, was es über C++ zu erzählen gibt. „Es ist eine riesige Sprache. Ich verwende das Buch „Beginning C++20″ von Ivor Horton und Peter Van Weert als Referenz während des Kurses. Es ist sehr umfangreich, fast tausend Seiten lang, aber selbst das reicht bei weitem nicht aus, um alles abzudecken, bei weitem nicht. In vier Tagen möchte ich ein solides Fundament legen und den Teilnehmern zeigen, wo es lang geht und wo sie sich hinwenden können, wenn sie tiefer eintauchen wollen.“
''Nothing beats learning by doing.''
Bücher und Online-Tutorials bringen Sie nur bedingt weiter. Es gibt nichts Besseres als das Lernen durch eigenes Tun, meint Van Rens und verweist auf den Mehrwert des Unterrichts im Klassenzimmer. „Da ich seit 1998 mit C++ arbeite, habe ich fast 25 Jahre Erfahrung gesammelt, die ich im Unterricht ausgiebig weitergeben kann. Ich erkläre nicht einfach nur die Sprache, sondern weiß, wo ich den richtigen Schwerpunkt setzen muss, und unterstütze meine Ausführungen mit relevanten Best Practices, Beispielen und Übungen aus der Industrie. Das ist superschnelles Lernen.“
Dieser Artikel wurde von Nieke Roos geschrieben, dem technischen Redakteur von Bits&Chips.
Recommendation by former participants
By the end of the training participants are asked to fill out an evaluation form. To the question: 'Would you recommend this training to others?' they responded with a 9.1 out of 10.

