Diplomarbeiten bei D.I.E.
In unserer Münchner Niederlassung sind schon eine ganze Reihe an Diplomarbeiten verfasst worden - es müssten so 4 oder 5 Stück in den letzten paar Jahren gewesen sein. Dementsprechend bekommen wir hier auch häufiger mal Anfragen von Diplomanden, die ebenfalls gern ihre Diplomarbeit hier absolvieren möchten. Das ist im großen und ganzen kein Problem, und macht allen Beteiligten auch im Normalfall großen Spass: Allerdings - ein paar Vorraussetzungen muss man schon mitbringen.
D.I.E. ist nun einmal eine Firma die Software für Bauingenieure herstellt - und so sollten Sie für eine Diplomarbeit auf jeden Fall schon mal entweder Bauingenieur sein, oder eine Studienrichtung belegt haben, bei der eine 'Programmieraufgabe' als Diplomarbeit zulässig ist.
Dann müssen Sie natürlich auch programmieren können - und damit meine ich nicht, das Sie im dritten Semester mal ein Semester lang ein bisschen was über Fortran gehört haben.
Beim ersten Gespräch passiert im Normfall das folgende - und darauf sollten Sie vorbereitet sein. Das geht nur dann, wenn Sie sich mit C, C++ oder C# vernünftig auskennen. (Es geht natürlich nur im Prinzip um solche Aufgaben - konkret können das natürlich auch andere sein...)
1.) Sie werden vor einen Rechner gesetzt und müssen als erstes das folgende Programm schreiben: Das Programm ist ein Windows-Konsolen Programm und bekommt auf der Kommandozeile den Pfad zu einer Textdatei übergeben. Diese Datei soll gelesen und Zeilenweise ausgegeben werden. Vor jeder Zeile soll dabei eine Zeilennummer mit ausgegeben werden. Das kann in C, C++ oder in C# passieren.
Nicht lachen, denn auch wenn das trivial klingt: An dieser Aufgabe scheitern bereits eine ganze Menge Kandidaten.
2.) Sie müssen den Unterschied zwischen Managed Code und nativem Code kennen und erläutern können.
3.) Sie müssen eine einfache Datenstruktur wie zum Beispiel eine verkettete Liste implementieren. Das kann entweder funktionsorientiert mit C, oder objektorientiert mit (nativem) C++ oder C# passieren. Im Fall von C# müssten Sie erklären können wo der Vorteil (oder der Nachteil) der Implementierung gegenüber den anderen Sprachen liegt.
4.) Sie sollten erklären können, warum Sie Ihre Funktionen/Klassen/Variablen so genannt haben, wie Sie sie genannt haben.
5.) Sie sollten wissen was der Unterschied zwischen einer Klasse und einer Struktur in managed und in nativem Code ist.
... und so weiter und so fort:
Das ganze dauert so ungefähr eine Stunde: Ein bisschen Zeit muss also sein.
Im Wesentlichen ist es dabei eigentlich nicht wichtig, das die Aufgaben 'richtig' implementiert werden, oder das auch 'funktionierender' Code herauskommt. Was vielmehr interessiert ist, wie Sie an das Problem herangehen, wie Sie auf Compiler- und Laufzeitfehler reagieren und ob Sie die Compilerfehler richtig interpretieren und verstehen. Achso: Was auf jeden Fall zumindest sehr hilfreich ist: Sie sollten in der Lage sein, die größtenteil englischsprachigen Dokumentation lesen und verstehen zu können.
Wer sich in seiner Freizeit oder auch an der Uni ambitioniert mit dem programmieren auseinandergesetzt hat, für den ist dieses Gespräch und auch die Aufgaben ein Kinderspiel: Und dann sind Sie bei uns auch mit Sicherheit gut aufgehoben. :-)