C++ Best Practices in Design

Masterclass verzorgd door: ir. Jacques de Hooge

Voor wie is deze masterclass bestemd

Je hebt C++ geleerd, bijvoorbeeld tijdens je HBO of universitaire opleiding en kunt in de dagelijkse praktijk goed met deze taal uit de voeten. Je kent het verband tussen pointers, references en arrays, en de geheimen van dynamisch geheugenbeheer. Je maakt effectief gebruik van modules en headers, je kunt classes, multiple inheritance, virtuele functies, polymorphism en templates op een goede manier toepassen, je weet hoe operator overloading werkt en kent je weg in de STL. Dit alles kun je goed inzetten om de gewenste functionaliteit te realiseren. Maar toch...

Je zou wel veel meer ontwerpervaring willen hebben. Hoe zet je de grote hoeveelheid elkaar deels overlappende taalfaciliteiten nu het beste in om te komen tot een goed ontwerp: betrouwbaar, begrijpelijk, flexibel en efficiënt. Je hebt sterke belangstelling voor deze vragen en hoewel je al heel wat kilometers hebt gemaakt, merk je dat je elke dag weer leert. Zo kom je er wel, gewoon door eigen ervaring. Maar je kunt dat proces ook enorm versnellen door te profiteren van mijn ervaring. Er is geen substituut voor zelf nadenken, echter door mijn 30+ jaar programmeerervaring in te zetten laat ik je een breedte en een diepte zien die je op nieuwe ideeën brengt.

Wat leer je

Hoe zit de masterclass C++ in elkaar

De masterclass C++ volg je in een groep van maximaal 10 personen en beslaat 8 lessen. De kosten per les van 2 uur bedragen €60,-. Je ontvangt een factuur die je eventueel aan je werkgever kunt overleggen.

Het gestelde bij "Voor wie is deze masterclass bestemd" wordt serieus genomen: er wordt uitgegaan van het beschreven voorkennisniveau. Mocht je hier niet nog niet aan voldoen, dan is het volgen van een fundamental class, gecombineerd met de nodige zelfwerkzaamheid een optie om dit alsnog te realiseren.

In een startgesprek wordt vastgesteld of je over voldoende kennis beschikt om de masterclass C++ te volgen. Dat startgesprek werkt twee kanten op: zelf ben je in de gelegenheid om vast te stellen of ik over voldoende kennis en ervaring beschikt om jou werkelijk verder te helpen. Pas na een succesvol startgesprek wordt een leerovereenkomst aangegaan.

Succesvolle afronding van de masterclass resulteert in een door mij ondertekend certificaat en mijn bereidheid je bij sollicitaties aan te bevelen aan de hand van een realistische schets van je capaciteiten.

Praktische zaken

Indien je na het startgesprek de masterclass wenst te volgen, sluit je de leerovereenkomst rechtstreeks met mij. Het lesgeld dient na het startgesprek, maar voorafgaand aan elke les te worden voldaan. Omdat op individueel niveau wordt lesgegeven, worden ook start- en einddatum individueel afgesproken. De cursisten bevinden zich dus in verschillende 'fasen'.

Je bent zelf verantwoordelijk voor het meebrengen van een eigen laptop met daarop geïnstalleerd een goede C++ compiler, bijvoorbeeld Microsoft, GCC of CLANG. Het is van belang dat dit alles goed werkt voor je met de masterclass begint. De ervaring is dat je anders heel veel kostbare tijd verliest. Je werkt in de lessen maar ook thuis aan je software. Fabrikant-specifieke uitbreidingen en door wizzards gegenereerde code worden tijdens de masterclass buiten beschouwing gelaten.

Wat daarnaast nodig is, is een goede code editor, bijvoorbeeld Notepad++ of GEdit. Hoewel source level debuggers en IDE's hun nut kunnen hebben en je ze zonder meer kunt gebruiken, wordt hieraan in de lessen geen eisen gesteld of aandacht besteed. Een goed mentaal model van je code en een command line compiler is alles wat je nodig hebt.

De cursuslocatie hang af van het aantal deelnemers. Gestreefd wordt naar een locatie binnen een straal van 5 km van het centrum van Rotterdam.

Tot slot

C++, een superset van C, is de taal voor 'high performance computing'. Of het nu is voor medische beeldverwerking, seismisch onderzoek, weersvoorspelling, consumenten electronica, state of the art games, flight simulators, real time besturingen, vervaardiging van database management systemen, office software, operating systems, compilers of scripttaal interpreters, wie uit is op "rough speed", efficiënt geheugengebruik en/of volledige controle over de hardware op een veelheid aan platforms, komt uit bij C++.

Daar waar vrijwel iedereen zich stort op low hanging (Internet) fruit, is het heel moeilijk om aan werkelijk goede C++ onwikkelaars te komen. De kracht en mogelijkheiden van de taal zijn ongeëvenaard, maar het vergt veel kennis en ervaring om die mogelijkheden goed in te zetten. Wil je je verder specialiseren in dit solide fundament van de informatie-technologie? Dan is hier je kans!