Endlich mal wieder ein neuer Beitrag…. Leider war ich die letzten zwei Wochen mit meiner kleinen Tochter im Krankenhaus und hatte keinen Kopf für neue Beiträge. Und nun musste ich auch noch richtig viel nachholen für mein Bootcamp.
Deshalb auch mal wieder ein Beitrag dazu. Mittlerweile ist das Bootcamp schon relativ weit fortgeschritten und wir haben die ganzen Basics hinter uns gelassen und sind schon tief drin im Bereich Machine Learning. Aber bis ich dazu kam musste ich mir einiges an Grundlagen draufpacken. Wie bereits im ersten Post zu dem Bootcamp erwähnt habe ich keinerlei Vorkenntnisse im Bereich Programmierung und alles was dazu gehört. Und damit sind wir auch schon direkt beim ersten Teil des Bootcamps.
Die ersten Wochen – Muss ich das sicher nicht vorher wissen?

Der Anbieter wirbt ausdrücklich damit dass man auch in dieses Bootcamp starten kann ohne Vorkenntnisse im Coding. Bei der Aufnahmeprüfung wurde dazu tatsächlich auch nichts gefragt und sämtliche Kurse beginnen bei 0. Worauf hier der Fokus eher liegt, bzw. worin man eher Vorkenntnisse haben sollte, sind in Mathematik. Die Grundlage aller Algorithmen ist höhere Mathematik und man muss zwar nicht alles verstehen um es anwenden zu können, aber Wissen jenseits der Kollegstufe hilft einem hier ungemein weiter die Verwirrung geringer zu halten. Insbesondere dadurch dass sämtliche Kurse auf Englisch sind, sind allein schon die Begriffe schwerer zu verstehen (ich für meinen Teil musste ziemlich viel googeln), wenn dann noch der Großteil der Mechanismen dahinter ein Buch mit sieben Siegeln ist, wirds richtig sportlich. Insbesondere bei dem Anbieter bei dem ich den Kurs mache gibt es das Problem dass alle Kurse ursprünglich auf Französisch waren, ebenso wie die Examen, was häufig dazu führt dass noch französische Wörter oder Sätze in den Skripten und Examen sind. Zudem leidet bei der Übersetzung zuweilen die Verständlichkeit, so dass es häufiger das Problem gibt dass man länger für das Verstehen der Aufgabe braucht als dafür sie zu bearbeiten. Auch die Coaches der Masterclasses, der einzigen Live-Veranstaltungen, sind zum großen Teil aus Frankreich und ich finde das Englisch häufig schwer verständlich und auch über einen längeren Zeitraum sehr anstrengend.
Da man aber ohnehin 95 % des Stoffs im Selbststudium pauken muss, ist das eigentlich schon fast egal. Man startet das Ganze mit einem relativ ausführlichen Kurs in Python der die ersten zwei Wochen nahezu komplett in Beschlag nimmt.
Python – braucht man eigentlich für alles

In der Welt der Technologie und Innovation spielt Python eine unverzichtbare Rolle, insbesondere im aufstrebenden Bereich des Machine Learning und der Künstlichen Intelligenz (KI). Python hat sich als die bevorzugte Programmiersprache für Data Science, Machine Learning und KI-Anwendungen etabliert, und das aus mehreren Gründen:
Erstens ist Python bekannt für seine Einfachheit und Lesbarkeit. Die klare und intuitive Syntax von Python macht es für Entwickler leicht, komplexe Algorithmen und Modelle zu implementieren und zu verstehen. Diese Eigenschaften sind besonders wichtig in den Bereichen Machine Learning und KI, wo Entwickler komplexe mathematische Konzepte umsetzen müssen. Aktuell ist für mich noch nicht alles so logisch und nachvollziehbar wie immer behauptet wird, aber ich arbeite damit auch erst seit zwei Monaten. Für mich eine riesige Hilfe, wenn ich etwas nicht verstehe, ist ChatGPT. Wenn man die Codezeile eingibt mit der Bitte um eine Erklärung, teilt es den Code in seine Bestandteile auf und erklärt jeden Teil für sich sehr verständlich. Das hilft einem wirklich extrem weiter.
Zweitens bietet Python eine umfangreiche Sammlung von Bibliotheken und Frameworks, die speziell für Data Science und Machine Learning entwickelt wurden. Zu den bekanntesten Bibliotheken gehören NumPy, Pandas, Scikit-learn, TensorFlow und PyTorch. Diese Bibliotheken bieten vorgefertigte Funktionen und Module für die Datenverarbeitung, Modellbildung, Visualisierung und Evaluierung, was die Entwicklung von Machine Learning-Modellen erheblich beschleunigt. Das ist wirklich ein riesiger Vorteil, sämtliche Bibliotheken und Frameworks gratis herunter laden und es gibt unzählige Seiten die die Syntax der jeweiligen Befehle verständlich, ausführlich und mit Beispielen erklären. Das resultiert auch aus dem nächsten Vorteil.
Ein weiterer entscheidender Vorteil von Python ist seine starke Community-Unterstützung. Es gibt Tausende von Entwicklern und Forschern auf der ganzen Welt, die aktiv an der Weiterentwicklung von Python und seinen Machine Learning-Bibliotheken arbeiten. Dies bedeutet, dass Entwickler Zugang zu einer Fülle von Ressourcen haben, darunter Tutorials, Foren, Bibliotheken von Drittanbietern und vieles mehr. Darüber hinaus ist Python eine plattformübergreifende Sprache, was bedeutet, dass sie auf verschiedenen Betriebssystemen wie Windows, macOS und Linux ausgeführt werden kann. Dies erleichtert die Zusammenarbeit zwischen Entwicklern und ermöglicht es Unternehmen, Machine Learning-Modelle auf verschiedenen Plattformen bereitzustellen.
Nahezu alle folgenden Module bauen auf den Python-Kenntnissen auf, es ist das einzige Modul dessen Prüfung bestanden werden muss. Alles andere würde auch keinen Sinn machen, bis auf einige wenige theoretische Module und bspw. Linux und Bash, ist es für absolut jedes Modul obsolet wenigstens die Grundlagen zu beherrschen.
Die weiteren Module der ersten Wochen bezogen sich hauptsächlich auf Statistik, Datenvisualisierung mittels unterschiedlicher Python-Module und eine Einführung in Linux und Bash. Die Visualisierung besteht in erster Linie aus unterschiedlichen Graphen und die Möglichkeit diese in verschiedensten Colorationen etc. darzustellen. Erst da wurde mir klar wie viel Mathematik dahinter steckt, nämlich eigentlich ausschließlich. Die zwei wichtigsten bzw. gebräuchlichsten Bibliotheken zur Visualisierung in Python sind Matplotlib und Seaborne.
Matplotlib

Matplotlib ist eine leistungsstarke Python-Bibliothek zur Visualisierung von Daten. Sie bietet eine Vielzahl von Funktionen zur Erstellung von Diagrammen, Grafiken und Plots für verschiedene Anwendungen in den Bereichen Data Science, Machine Learning, Ingenieurwesen und mehr. Mit Matplotlib können Entwickler hochwertige 2D- und 3D-Diagramme erstellen, die leicht anpassbar und ästhetisch ansprechend sind. Die Bibliothek unterstützt verschiedene Arten von Diagrammen, darunter Linien-, Streuungs-, Balken- und Tortendiagramme, sowie Heatmaps, Konturplots und Oberflächendiagramme. Matplotlib ist flexibel und benutzerfreundlich, wodurch es ideal für die Erstellung von Visualisierungen zur Analyse von Daten und zur Kommunikation von Ergebnissen ist.
Seaborne

Seaborn ist eine Python-Bibliothek, die auf Matplotlib aufbaut und speziell für die Erstellung von statistischen Visualisierungen optimiert ist. Sie bietet eine höhere Ebene der Abstraktion und eine verbesserte Benutzerfreundlichkeit im Vergleich zu Matplotlib. Seaborn enthält Funktionen zur Erstellung von ansprechenden und aussagekräftigen statistischen Grafiken, einschließlich Histogrammen, Kernel Density Estimates (KDE), Boxplots, Violinplots und Regressionsplots. Die Bibliothek bietet auch Unterstützung für farbige Paletten und Themen, die es den Benutzern ermöglichen, schnell professionell aussehende Visualisierungen zu erstellen. Seaborn ist besonders nützlich für die explorative Datenanalyse und die Visualisierung von Beziehungen zwischen verschiedenen Variablen in einem Datensatz.
Das letzte Modul beschäftigte sich mit dem Betriebssystem Linux und Bash, einem Interpreter um Befehle in Linux einzugeben. Zudem gab es noch ein weiteres Modul in dem es um Git und Github ging.
Zu dem Modul über Linux und Bash gibt es nicht so viel zu sagen, meiner Meinung nach hat das eher peripher mit dem Thema zu tun. Außerdem fand ich das ganze Modul mehr als nur frustrierend da die virtuellen Maschinen auf denen dieser Part gehostet wurde (der Rest läuft über Jupyter Notebooks), im 10-Minuten-Takt abgestürzt sind und einen damit wahnsinnig gemacht haben. Also schlechte Erinnerungen an Linux.
Git und Github

Git ist ein weit verbreitetes verteiltes Versionskontrollsystem, das von Linus Torvalds entwickelt wurde und besonders bei der Zusammenarbeit von Softwareentwicklern beliebt ist. Es ermöglicht Entwicklern, Änderungen am Quellcode zu verfolgen, verschiedene Versionen eines Projekts zu verwalten und problemlos zwischen diesen Versionen zu wechseln.
GitHub ist eine webbasierte Plattform, die auf Git aufbaut und es Entwicklern ermöglicht, ihre Git-Repositories zu hosten, zu teilen und zusammenzuarbeiten. Auf GitHub können Entwickler ihre Projekte veröffentlichen, anderen Benutzern Zugriff gewähren, an Open-Source-Projekten teilnehmen und Pull-Anfragen stellen, um Änderungen in die Hauptprojekte einzubringen.
Die Kombination aus Git und GitHub hat die Art und Weise, wie Software entwickelt und verwaltet wird, revolutioniert. Durch die Verwendung von Git können Entwickler sicherstellen, dass Änderungen nachverfolgbar sind, Zusammenstöße minimiert werden und die Integrität des Codes erhalten bleibt. GitHub bietet eine zentrale Plattform für die Zusammenarbeit und den Austausch von Code zwischen Entwicklern auf der ganzen Welt, was die Entwicklung von Softwareprojekten effizienter und zugänglicher macht.