Linux Programmierung ist nicht nur aufgrund der Open Source Thematik sehr interessant, sondern in der Fachbranche auch sehr gefragt. Um sowohl Einsteigern als auch Fortgeschrittenen einen Lernerfolg auf hohem Niveau zu ermöglichen, haben wir ein spezielles, aus kleinen Modulen bestehendes Schulungskonzept entwickelt.

Linux Programmierausbildung

Bei diesem Modularen Konzept bauen alle Aufbaukurse auch immer auf dem selben Grundlagenkurs auf, anstatt auf einer langen, aufeinander aufbauenden Kursreihe, welche notwendiger Weise auch genau in der selben Reihenfolge absolviert werden muss. Durch dieses einzigartige Design entfallen nicht nur unnötige Schulungskosten für nicht benötigte Themen, sondern auch die lästigen Wartezeiten auf die exakt notwendigen Folgetermine.


Linux System Basics für Programmierer

Der Kurs richtet sich an alle Programmierer, die Linux besser kennen lernen wollen. Die Zusammenhänge und die Grundpfeiler des Systems werden erklärt, sodass man am Ende einen großen Überblick hat und sich selbst orientieren und zurechtfinden kann.

Linux Netzwerk Programmierung

Netzwerkprogrammierung unter Linux (und UNIX) fügt sich hervorragend in das Grundprinzip "Everything is a File" ein. Das Socket-Interface stellt ein leicht zu benutzendes Programmierparadigma dar, das nicht auf TCP/IP beschränkt ist, sondern auf eine Vielzahl anderer Netzwerkprotokolle anwendbar ist. Dieser Kurs vermittelt die Grundlagen der Netzwerkprogrammierung.

Linux Multithreading Programmierung

Parallele Programmierung war schon immer schwer und es ist unverständlich, warum Multithreading von modernen Programmiersprachen und Frameworks ungeachtet der Gefahren als einzige Möglichkeit, effiziente Programme zu schreiben, propagiert wird. Parallele Programmierung ist auch unter Linux schwer Der Kurs gibt einen soliden Überblick über Multithreading unter Linux (in C) und die Mechanismen, die dort zur Synchronisation und Kommunikation zur Verfügung stehen. Vor allem werden die Gefahren beleuchtet, die unbedachtes Handeln in einer parallelen Welt mit sich bringt.

Linux System Advanced Programmierung

Will man in die Tiefen des Systems einsteigen, die dem Alltagsprogrammierer verborgen bleiben, ist dieser Kurs genau der Richtige. Linux und UNIX bieten an der Basis eine Vielzahl von Schnittstellen, die es ermöglichen, hochperformante Anwendungen zu schreiben. Hier wird ein Überblick gegeben.

Embedded Linux Programmierung

Linux hat sich in den letzten Jahren zu einer erst zu nehmenden Alternative von herkömmlichen Embedded Betriebssystemen entwickelt. Einerseits sind die Anforderungen an Embedded Plattformen gestiegen (USB, TCP/IP), sodass es  logisch erscheint, die gleiche Codebasis, die auf Desktop-PCs und Servern schon lange Einsatz findet, auch in kleineren Geräten einzusetzen. Andererseits entspricht Linux mittlerweile auch Anforderungen, die speziell aus dem Embedded-Bereich kommen, wie z.B. Echtzeitfähigkeit. Ziel des Kurses ist es, ein Verständnis des Aufbaus eines Linux-Systems zu vermitteln, und den Teilnehmern die Möglichkeit zu geben, aus Alternativen, deren es unter Linux viele gibt, zu wählen.

Versionskontrolle mit Subversion

Versionskontrolle ist bei allen Projekten unumgänglich notwendig, da man Releasemanagement und parallele Entwicklung  ohne nicht betreiben kann. Subversion hat sich mittlerweile als hervorragende Alternative zu kommerziellen Systemen wie Clearcase oder Perforce etabliert und das auf Open Source basierende CVS schon lange abgelöst. Dieser Kurs vermittelt den Einsatz von Subversion.

GNU-Make und Makefiles

Die Mutter aller Build-Tools unter Linux und Unix ist Make - unter Linux in seiner extrem mächtigen Variante "GNU Make" verfügbar. Steht man vor der Aufgabe, ein C- oder C++-basiertes Projekt zu bauen, kommt man an Make nicht vorbei (selbst dann nicht, wenn man Tools wie CMake oder Automake verwendet). Dieser Kurs wendet sich an alle Programmierer, die nicht nur am Programmieren an sich interessiert sind, sondern auch verstehen wollen, wie größere Projekte gebaut und die mitunter sehr komplizierten Abhängigkeitsbeziehungen in den Griff zu bekommen sind.

 


+++ Generelle Programmierausbildungen für Windows und Linux +++


 

C Grundlagen

Unter allen heute verwendeten Programmiersprachen ist C immer noch der "Klassiker" und aus der systemnahen Programmierung nicht mehr wegzudenken. Alle, die sich mit Kernel-Programmierung, Device-Drivern und ähnlichen Themen beschäftigen, benötigen C als unumgängliches Handwerkszeug. Durch das sehr schlanke Konzept ist C einerseits für die Schönheit der schlichten Ausdrucksstärke beliebt, andererseits aber als unerschöpfliche Fehlerquelle durch unvorsichtige Pointer-Verwendung gefürchtet. Dieser Kurs bietet einen Einstieg in die Programmierung mit C und damit eine grundlegende Diskussion aller in der Sprache enthaltenen Konstrukte mit entsprechenden Hinweisen auf ihre richtige Anwendung und  auf versteckte Stolpersteine.

C Seminar Hands-On

Die Syntax der Programmiersprache C zu beherrschen ist eine Sache, C sauber in der Entwicklung einzusetzen eine ganz andere. Typisch, nicht nur für Einsteiger in die Softwareentwicklung in C, ist eine zu Projektbeginn herrschende Begeisterung für einfache Konstruktionen, die bei fortschreitender Projektdauer der Ernüchterung über "seltsames Verhalten" der Software weicht. Nur allzu oft führt dies  zur "Suche nach Gespenstern", die durch einen korrupten Heap entstehen und ihren Ursprung in Pointerfehlern haben. Auch Memory-Leaks sind unangenehme Zeitgenossen in der Entwicklung, die alle C-Entwickler nur zu gut kennen - ganz zu schweigen von Performance-Problemen, die nur sehr schwer in den Griff zu bekommen sind.

C++ Grundlagen

Von größeren systemnahen Projekten bis hin zur End-User Applikationsentwicklung ist C++ immer noch eine der am weitesten verbreiteten objektorientierten Programmiersprachen. Einerseits hat C++ einen großen Teil der Schlichtheit von seinem Urvater C geerbt, andererseits steht durch die Objektorientierung ein modernes Entwicklungsmodell zur Verfügung, das Entwickler gerade bei der Implementierung großer und komplexer Software entscheidend unterstützt. Der Kurs bietet einen vollständigen Einstieg in die Programmiersprache C++ mit allen Facetten der Sprache bis hin zur Template-Programmierung.

C++ Seminar Hands-On

Durch seine Systemnähe und seinen gleichzeitig reichen Sprachumfang bietet C++ wie kaum eine andere Sprache eine große Sammlung an Stolpersteinen, die erfahrene Entwickler instinktiv und elegant umgehen. Dieser Instinkt muss bei Junior-Entwicklern in C++ erst geschärft werden, wollen sie sich nicht "von einem Loch ins nächste" vorarbeiten und dabei in alle Fallen tappen, die C++ ihnen in den Weg legt.