· 

10 Fehler im Informatikstudium

Einführung

Zu behaupten, dass das Informatikstudium leicht und gut "nebenbei" zu machen sei, ist falsch. Dass ein Informatikstudium nur etwas für Genies sei, ist aber auch falsch. Allerdings sorgen viele Fehler, die Studierende besonders in den ersten Semestern (aber auch später) begehen, dafür, dass das Studium schwieriger wird als es eigentlich sein müsste. 

In diesem Artikel möchte ich dir 10 klassische Fehler vorstellen, die man im Laufe seines Informatikstudiums unbedingt vermeiden sollte. Einige von diesen Tipps sind auch auf andere Studiengänge übertragbar.


1. Nicht in die Vorlesung gehen

Der erste Fehler ist natürlich sehr offensichtlich, doch viele Studierende denken, dass es ausreicht, sich die Vorlesungsfolien im Nachgang anzuschauen oder die Mitschriften eines Kommilitonen zu verwenden. Das kann man mal machen, doch es sollte nicht zur Gewohnheit werden, da man dadurch quasi nur passiver Wissenskonsument ist und keine direkten Fragen stellen kann. Der Spruch "Wieso, weshalb, warum ... wer nicht fragt bleibt dumm" hat einen wahren Kern und Interaktionen sind für den Lernprozess genauso wichtig wie Phasen des intensiven Selbststudiums. Wenn du Präsenz zeigst und kritische Fragen stellst, hast du ggf. sogar Vorteile bei Abnahmen von Abgaben in den Laborpraktika, da den Professoren dein Gesicht bekannt vorkommt und sie damit einen Studenten verbinden, der sich aktiv mit dem Stoff auseinandersetzt. Da ich selbst schon als Dozent tätig war, kann ich sagen, dass man diesen Effekt nicht außer Acht lassen sollte. 

Wenn du - wie ich damals - dualer Student bist, dann erübrigt sich die Frage "Hingehen oder nicht hingehen?" sowieso, da du vertraglich dazu verpflichtet bist, in die Vorlesungen zu gehen. In einigen Bundesländern (so z. B. Brandenburg) gibt es sogar Anwesenheitspflichten. Wenn du an der Hochschule München studierst, wirst du in den AW-Fächern ebenfalls eine Anwesenheitspflicht haben, d. h. du musst eine bestimmte Anzahl an Vorlesungen vor Ort anwesend sein.


2. Klausuren schieben

Klausuren solltest du nach Möglichkeit nicht schieben, da du das Problem nur aufschiebst und nicht wirklich behebst. Im Gegenteil: Wenn du einmal eine Prüfung geschoben hast, dann musst du den Aufwand für ein anderes Semester einkalkulieren und wer weiß, wie deine Situation dann aussieht. Außerdem musst du die Inhalte aus der Vorlesung (und ggf. des Praktikums) immer wieder wiederholen und hast dafür weniger geistige Kapazitäten für andere Fächer. Insbesondere dann, wenn dir ein Fach schwer fällt, solltest du es NICHT schieben, da du dadurch ggf. später in deinem Studium exmatrikuliert wirst. Einer meiner Kommilitonen ist z. B. im 5. Semester exmatrikuliert worden, da er Analysis so lange wie möglich aufgeschoben und dann im Drittversuch nicht bestanden hat. Das ist bitter, doch einen Härtefallantrag konnte er nicht stellen, weil dafür nur noch die Bachelorarbeit und 3 weitere Fächer ausstehen dürfen. Es ist immer gut, sich seine Chancen so früh wie möglich auszurechnen und das geht eben nur, wenn du die Spielregeln der jeweiligen Fächer kennst. 

Auch der Gedanke "Naja, ich mache erstmal den Schein und die Prüfung schreibe ich wann anders" ist toxisch, da du dann von vornherein eine ganz andere Attitüde dem Fach gegenüber an den Tag legst. Irgendwann bist du dann vielleicht sogar an dem Punkt, dass du sagst "Naja, da ich die Prüfung erst im nächsten Semester schreibe, kann ich auch den Schein dann machen". Stelle dich der Prüfung und schaue, was dabei herauskommt. 

Die einzigen beiden Fälle, in denen du eine Prüfung meiner Ansicht nach legitim schieben kannst, ist eine länger anhaltende Krankheit oder das Vorziehen einer anderen Prüfung. Alles andere schmälert sehr wahrscheinlich deinen Studienerfolg. 


3. Nur eine Programmiersprache lernen

Speziell für das Informatikstudium solltest du dich mit dem Gedanken anfreunden, nicht nur die in der Vorlesung behandelten Sprachen zu lernen. Es ist nämlich so, dass du im ersten und zweiten Semester mit allen zusammen eine Programmiersprache (z. B. Java) lernst und dir danach selbstständig andere Sprachen erarbeiten musst, die du dann für die Laborpraktika brauchst. Wir haben damals im dritten Semester nämlich gesagt bekommen, dass wir für das Praktikum in Algorithmen und Datenstrukturen C++ können müssen, obwohl wir zwei Semester lang nur Java gelernt haben. Auch in der Vorlesung wurden alle Beispiele dann in C++ gezeigt ohne dass wir die Sprache explizit gelernt haben. Die Professoren gehen davon aus, dass wenn du eine Sprache gelernt hast, du dir auch andere Sprachen in Eigenregie aneignen kannst. Deshalb sind die Aufgaben oft auch sehr abstrakt gehalten, um dich eben dazu zu befähigen, Programmierkonzepte in anderen Sprachen wieder zu erkennen. 

In späteren Semestern wurde dann in einem Seminar zur Programmierungen moderner Web-Anwendungen Django vorausgesetzt, wofür man Python beherrschen musste, was bis dato in noch keiner Vorlesung thematisiert wurde. 

Du siehst schon, dass du mit Java alleine bspw. nicht auskommst. Das ist wieder ein Argument dafür ein duales Studium zu absolvieren, da die Wahrscheinlichkeit sehr hoch ist, dass du bei deinem Kooperationspartner eine neue Sprache lernst, die du noch nicht im Studium behandelt hast und von der du in höheren Semestern profitierst.


4. Nur konventionelle Wege gehen

Wenn du dich nur an den Arbeitsauftrag und an das, was du in der Vorlesung gelernt hast, hältst, dann ist das zwar ein durchaus gangbarer Weg, doch sorgt eben auch dafür, dass du nicht aus der Masse hervorstichst. Traue dich, eigene kreative Wege bei der Lösung eines Problems zu gehen. Wir hatten damals bspw. im Fach Verteilte Systemden Auftrag, eine Anwendung auf mehrere IT-Systeme zu verteilen und dabei das Dining-Philosophers-Problem bei der Belegung von Ressourcen zu lösen. Statt (wie fast jeder) zwei Laborrechner zu nehmen, diese über das Netzwerk zu verbinden und ein paar Konsolenoutputs zu erzeugen, haben mein Laborpartner und ich eine Unity-App programmiert, die wir auf einem Smartphone, einem Tablet und zwei Laborrechnern in einer VM laufen gelassen haben, die das Teleportieren einzelner Tasks, die wir als Philosophen dargestellt haben, von einem Gerät auf ein anderes Gerät graphisch visualisiert hat. Statt mühsam aus den Debug-Logs herauszulesen, was jetzt genau passiert ist, konnte man das mit einer graphischen Lösung weitaus besser zeigen. Die Abnahme war dementsprechend angenehm und wir haben nebenbei gelernt, wie man in Unity eine Android-App baut. Dadurch brennt man sich ins Gedächtnis der Professoren ein und hat dadurch später bei der Wahl eines Betreuers für die Bachelor-Arbeit leichtes Spiel.


5. Nur die Laborrechner verwenden

Du musst dir offiziell zwar keinen eigenen Rechner für das Studium zulegen, da du (in der Theorie) alles auf den Laborrechnern machen kannst, doch es ist maximal zu empfehlen! Bedenke, dass die Hochschule nur eine bestimmte Zeit geöffnet hat und du vielleicht nahtlos zu Hause weiterarbeiten möchtest. Zudem haben nicht alle Laborrechner dieselbe Ausstattung und ggf. müssen Tools nachinstalliert werden, was bei fehlenden Administratorrechten schwierig wird. Kurzum: Du bist Informatiker, schaffe dir bitte einen eigenen Rechner an. Im Optimalfall einen Laptop, den du überall mit hinnehmen kannst. Zur Entscheidung, ob es ein MacBook oder ein Windows-Rechner sein soll, schreibe ich noch einen anderen Artikel. Ich persönlich habe mit einem Windows-Rechner mein Studium gemeistert und immer nur im Labor gearbeitet, wenn es nötig war, da du dir den Raum unter Umständen auch mit Studierenden teilen musst, die eine sehr eigene Interpretation der üblichen Verhaltens-Etikette besitzen. 


6. Nur ein Betriebssystem verwenden

Gehe nicht davon aus, dass Windows oder MacOS ausreicht, um sein Studium erfolgreich abzuschließen. Spätestens im Fach Betriebssysteme wirst du vermutlich mit einer Linux-Distribution arbeiten, d. h. es bietet sich an, schon im Vorfeld mal mit einem unixoiden System gearbeitet zu haben. Wenn du im IT-Sicherheitsumfeld unterwegs bist, dann wirst du höchstwahrscheinlich auch mit Windows alleine nicht glücklich. Üblicherweise verwendet man Kali Linux oder man setzt sich eine eigene Pentesting-Machine auf, was allerdings nur sinnvoll machbar ist, wenn du dich von dem Gedanken löst, dass deine einfachen Anwender-Kenntnisse in Betriebssystemen ausreichen, um alle Laborpraktika zu schaffen.

Die Mac-User haben da sogar noch einen kleinen Vorteil, weil einige Programme, die man im Studium nutzt, nicht ohne erheblichen Mehraufwand auf dem Mac laufen (wie z. B. der MMIX-Assembler, den man an der Hochschule München im Fach IT-Systeme verwendet). Auch Linux bietet nicht immer eine Out-of-the-Box-Lösung an. Dadurch lernt man aber wiederum seine eigene Maschine aufzusetzen und versteht mehr über das Betriebssystem, mit dem man gerade arbeitet. 

In den Praktika zur Netzwerktechnik oder Embedded Computing war bspw. Ubuntu Pflicht. Aber keine Sorge: Du kannst mit VirtualBox verschiedene Betriebssysteme auf einem Rechner verwenden und die virtualisierten Images sogar überall mit hinnehmen. Es ist aber auch möglich, ein Multi-Boot-System aufzusetzen.


7. Unvorbereitet in die Praktika gehen

Für die Praktika gilt wie für die Vorlesung: Du solltest nicht ohne Vorbereitung in ein Praktikum kommen und nicht auf eine Nachbereitung verzichten. Die Professoren merken, wenn du nichts vorbereitet hast und dementsprechend unangenehm können Abnahmen werden. Wenn du weißt, dass eine Abnahme ansteht, dann solltest du dir mindestens noch einmal deinen Code anschauen und dir ggf. im Vorfeld ein paar Rückfragen überlegen. Du könntest natürlich auch gezielt bestimmte Unstimmigkeiten einbauen und so Rückfragen in einem ganz speziellen Bereich provozieren, auf die du dich dann sehr gut vorbereitest. Gleiches gilt auch für mündliche Prüfungen, die du mit ein wenig Übung gezielt in eine bestimmte Richtung lenken kannst. 


8. Nur alleine arbeiten

In so vielen meiner Artikel habe ich diesen Satz bereits zitiert und ich mache es immer wieder gerne: "Im Informatikstudium werden keine autistischen Einzelkämpfer, sondern Teamplayer gebraucht." Informatik ist ein Teamsport und genauso, wie du in deinem späteren Berufsleben nicht um die Arbeit mit anderen herumkommst, wird auch dein Studium nicht nur aus dir und deinem Computer bestehen. Alleine alle Module und damit verbundene Praktika bestreiten zu wollen, führt in vielen Fällen zu einem vorzeitigen Studienende. Wenn du in einer Gruppe oder einem Zweierteam arbeitest, kannst du Aufgabenteilung machen, dir bestimmte Themen noch einmal studentenfreundlich von einem Studenten erklären lassen und anderen etwas erklären, wodurch du den Stoff vielleicht auch noch einmal besser verstehst und überprüfen kannst, ob du ihn tatsächlich verstanden hast (Feynman-Methode).


9. Nur den Vorlesungsstoff lernen

Dieser Fehler geht in dieselbe Richtung wie die Thematik mit den Programmiersprachen: Wenn du nur das lernst, was in der Vorlesung drankommt, dann hast du das Konzept des Lernens wohl noch nicht vollumfänglich verinnerlicht. Die Informatik ist kein Wissenschaftszweig, den man in x-beliebige kleine Lernhäppchen unterteilt, die man sich dann ohne Schneiden und Kauen einverleiben kann. Mit dieser Einstellung wirst du im besten Fall zu einem mittelmäßigen Informatiker ausgebildet, was vermutlich nicht in deinem Interesse ist. Wenn einem etwas liegt, dann ist man oft aus eigenem Antrieb heraus motiviert, so viel wie möglich über das hinauszulernen, was man eigentlich rein formal lernen muss. Jeder Mensch hat einen angeborenen Wissensdurst, den man in einigen Bereichen mehr und in anderen weniger stillen möchte. Wenn du in deinem Studium nach der Vorlesung bereits sitt bist, ist das ein Indikator dafür, dass dich dieses Studium vielleicht doch nicht so ausfüllt, wie du es dir eigentlich wünschen würdest.


10. Code nur aus dem Internet kopieren

Diesen Punkt solltest du bitte nicht falsch verstehen: Natürlich ist es erlaubt, Code aus dem Internet zu nutzen. Was ist man denn für ein Informatiker, wenn man noch nie auf StackOverflow war oder in GitHub-Repositories nach Lösungen für eine bestimmte Teilaufgabe gesucht hat. Man muss das Rad nicht jedesmal neu erfinden und so ist es nichts Ungewöhnliches, wenn man mal ein Code-Snippet kopiert oder eine Bibliothek verwendet. Bei der Bibliothek sieht man diesen Gedanken vielleicht noch mehr ein, doch im Prinzip verwendet man dort auch Code von anderen, den man quasi kopiert. Der Unterschied ist jedoch dabei, dass man durch den Import anzeigt, wo der Code herkommt bzw. wie die Bibliothek heißt, die man verwendet hat. Je nach Komplexität des kopierten Codes muss man auch nicht angeben, wo man ihn her hat. Wenn du bspw. die Implementierung des Bubble-Sort-Algorithmus in Python im Internet suchst, dann wirst du zahlreiche Seiten an Suchergebnissen finden, die alle einen sehr ähnlichen Code verwenden. Das liegt daran, dass es sich hierbei um einen in der Informatiker-Szene hinlänglich bekannten (nicht schwer zu implementierenden) Algorithmus handelt, von dem kein Informatiker behaupten würde, dass er ihn selbst entwickelt hat. Die eigentliche Implementierung ist da nur noch Handwerk.

Worauf ich eigentlich hinaus möchte ist, dass du deine Fähigkeit, Code flüssig zu schreiben, nicht durch Kopieren verlernen solltest. Wie auch bei natürlich gesprochenen Sprachen, ist für das "flüssige" Sprechen einer Programmiersprache eine regelmäßige Wiederholung notwendig. Andernfalls kommst du an vielen Stellen ins Stocken und weißt z. B. nicht mehr, wie man mit Python einen String in Großbuchstaben umwandelt. Natürlich kannst du das einfach in der Dokumentation nachlesen (genauso wie du bestimmte Wörter und grammatikalische Zusammenhänge in anderen Sprachen in dicken Wälzern nachschlagen kannst). Doch wirklich gut ist diese Vorgehensweise nicht und du solltest dir intensiv überlegen, was dir wichtig ist: Quick&Dirty oder Sorgfältig&Nachhaltig