Unterstützt wurde ich bei meinem ersten IT-Projekt von BCG Platinion. BCG Platinion ist Teil der Boston Consulting Group und ergänzt mit über 700 Digital-, Daten- und Technologieexpert:innen das Leistungsspektrum mit Technologie-Know-how. Bei meinem Projekt werden mir einige dieser Expert:innen mit Rat und Tat zur Seite stehen.
In diesem Artikel teile ich meine Learnings zu folgenden Punkte:
Das erste Projekt
Bevor ich nach Portugal gegangen bin, habe ich immer mal wieder programmiert. Aber meist nur isolierte Aufgaben oder in Online-Kursen, um Konzepte einer Sprache zu verstehen. Die Sprachen zu lernen, ist aber aus meiner Erfahrung gar nicht so schwer. Wenn man die grundlegenden Konzepte verstanden hat, lassen sich diese auf viele Sprachen übertragen.
Trotzdem hatte ich nie das Gefühl, wirklich programmieren zu können. Ich wusste immer noch nicht so richtig, wo ich anfangen sollte. Daher ist es aus meiner Perspektive wichtig, dass Du irgendwann ein Projekt umsetzt. Denn dann verstehst Du die Zusammenhänge und all die Sachen drumherum:
- Wie nutze ich ein Terminal?
- Wie nutze ich Git oder GitHub?
- Was ist ein Package Manager?
- Wie richte ich meine IDE ein, damit ich damit sinnvoll arbeiten kann?
- Wie sieht meine Ordnerstruktur aus?
- Wie arbeite ich mich in ein Framework ein (siehe unten)?
- Wie google ich richtig, um Lösungen für mein Problem zu finden?
- Wie baue ich eine API?
Das sind überwiegend Sachen, die Du nur lernen kannst, wenn Du es selbst machst und wirklich damit arbeitest und Fragestellungen, die für erfahrene Entwickler:innen eine Selbstverständlichkeit sind. Das sind aber auch genau die Themen, die mich bisher immer abgehalten haben, weil mich die Menge abgeschreckt hat. Inzwischen gehe ich auch ganz selbstverständlich damit um, auch wenn ich immer wieder Befehle für das Terminal nachschauen muss.
Ich habe mich für eine Website als erstes Projekt entschieden. Aber warum und würde ich es nochmal machen?
Wichtig ist, dass Dir das erste Projekt Spaß macht, denn das steigert Dein Durchhaltevermögen und senkt die Frustration, wenn mal etwas nicht sofort klappt und das ist wichtig! Gerade wenn Du keine Hilfe von jemandem bekommst, können Bugs total frustrierend sein, weil man einfach nicht weiß, warum sie da sind und wie man sie lösen kann. Wenn Du dann an einem Projekt arbeitest, welches Du voranbringen möchtest, setzt Du Dich eher nochmal dran, als wenn Dir das Projekt gleichgültig ist.
Für mich war das unsere ITgirls Website, weil dies einer unserer wichtigsten Kanäle ist, ITgirls ein Herzensprojekt ist und ich die Learnings der letzten 2 Jahre einfließen lassen konnte.
Häufig wird eine Website auch als erstes Projekt empfohlen, da Du mit HTML, CSS und JavaScript die Grundprinzipien lernen kannst. Außerdem musst Du noch nicht so viel installieren oder Dich mit Frameworks auseinandersetzen.
Für das erste eigene Projekt hat es mir sehr geholfen, dass ich mich mit erfahrenen Personen austauschen konnten, die schon IT Projekte gemacht haben, wie meinen Ansprechpartnern von BCG Platinion. Sie konnten mir Tipps geben, wie ich am besten starte und wie mögliche nächste Schritte aussehen. Zu Beginn haben wir gemeinsam auf Basis der Anforderungen an die ITgirls Website überlegt, wie die Architektur aussehen könnte. Da ich noch wenig Erfahrung mit einem kompletten Projekt hatte, haben wir besprochen, mit welchen Technologien ich starte, z.B. dass ich erst die Struktur der Seite aufbaue, dann die Seite mit TailwindCSS gestalte und abschließend die Funktionen wie Kontaktformular oder das Headless CMS einbaue. Diese Guidance war für mich ein wirklicher Erfolgsfaktor. Die Consultants und IT-Architects von BCG Platinion sind Expert:innen darin, komplexe IT-Architekturen zu entwickeln. Das strategische Sparring, gepaart mit deren tiefem Verständnis für operatives IT-Setup, hat mir bei meinem Projekt sehr geholfen. Das führt mich auch zu meinem nächsten Learning.
Pair Programming
Meine größte Empfehlung: Suche Dir jemanden, mit dem Du gemeinsam programmieren kannst. Das kann jemand sein, der schon Erfahrungen im Programmieren hat oder jemand, der genauso weit ist wie Du.
Ich habe mich regelmäßig mit zwei Ansprechpartnern (IT Architects) von BCG Platinion getroffen und meine Fragen gestellt. Zu Beginn haben wir vor allem mein Vorgehen geplant und jeweils die nächsten Schritte abgestimmt. Als IT Architects sind sie auf Projekten meistens für strategische Fragestellungen verantwortlich. Die Planung von Projekten gehört also zu ihrem Berufsalltag und sie haben einen Überblick über aktuelle Technologien und Architekturen.
Im Laufe meines Projektes wurde es dann immer operativer und technischer. Durch ihre Ausbildung und erste Berufserfahrungen konnten meine Ansprechpartner mich mit ihrer Expertise in Softwareentwicklung bei meinem Projekt unterstützen. Wir haben uns z.B. Bugs angeschaut, bei denen ich nicht weitergekommen bin und haben diese gemeinsam gelöst. Das hat mir sehr geholfen. Gemeinsam zu programmieren motiviert mich und wir konnten Lösungen finden, auf die ich alleine nicht gekommen bin. Das Tolle am “Pair Programming” ist, dass meistens beide davon profitieren. Ihr wiederholt gemeinsam Themen und lernt von dem Vorgehen des jeweils anderen. Es macht zudem einfach Spaß und Du verzweifelst nicht alleine an den Fehlermeldungen.
Framework
Mein größtes Learning ist wahrscheinlich die Einarbeitung in Frameworks. Ich habe für meine Website mit Next.js gearbeitet. Hier hätte ich mir zu Anfang mehr Zeit nehmen sollen, um mich einzuarbeiten. Aber wie arbeite ich mich in ein Framework ein? Das ist auch etwas, was ich nie gelernt habe, also ganz von vorne:
Lerne, wie ein Framework funktioniert, welche Probleme es löst und welche Vorteile es bietet. Du kannst die offizielle Dokumentation des Frameworks besuchen und Tutorials lesen oder anschauen, um ein solides Verständnis für das Framework zu entwickeln.
Ich habe mir z.B. YouTube Videos angeschaut, die Next.js für einen Blog verwenden, also ähnlich zu meinem Projekt. Ich habe mich aber auf jeden Fall zu wenig eingearbeitet und gar nicht verstanden, welche Vorteile mir Next.js eigentlich bringt. Um das zu verstehen, muss man auch schon ein gutes Verständnis vom Programmieren haben. Daher würde ich Dir als Anfänger:in raten, erstmal auf ein Framework zu verzichten. Das kannst Du später noch lernen und nutzen. Auch habe ich mir nicht ausreichend die Struktur eines Next.js Projektes und die Funktionen angeschaut, z.B. gab es eine neue Version, die ein App Directory statt einem Pages Directory verwendet (ich gehe hier nicht näher darauf ein, da es sehr spezifisch ist). Durch meine “Anfängerfehler” und durch viel Ausprobieren war mein Code und mein Projekt irgendwann undurchsichtig für mich. Daher habe ich mich Anfang Mai entschieden, das Projekt nochmal neu aufzusetzen, die Struktur von Next.js ordentlich zu übernehmen und nur den Code zu verwenden, der wirklich funktioniert und verwendet wird. Das ist auch ganz normal am Anfang und mir hat es gezeigt, wie viel ich in den ersten Wochen gelernt habe. Nun ist mein Projekt sauber und ich habe das Framework besser verstanden.
Guter Code
Durch das Aufsetzen des neuen Projektes habe ich auch noch mal an der Qualität meines Codes gearbeitet. Dafür habe ich sogenanntes Refactoring gemacht.
Refactoring ist ein Begriff aus der Softwareentwicklung und bezeichnet den Prozess der Überarbeitung und Umstrukturierung von vorhandenem Code, ohne dabei das externe Verhalten des Programms zu verändern. Das Hauptziel von Refactoring besteht darin, die interne Qualität des Codes zu verbessern, indem man ihn klarer, verständlicher und wartbarer macht. Das führt auch dazu, dass Dein Programm performanter wird.
Beim Refactoring werden verschiedene Techniken angewendet, um den Code zu verbessern. Dazu gehören beispielsweise die Aufteilung von großen Codeblöcken in kleinere Funktionen oder die Entfernung von Duplikationen. Refactoring bezieht sich auch auf die Umbenennung von Variablen, Funktionen oder Klassen, um den Code lesbarer zu machen. Dabei können Dir auch Kommentare helfen.
Je einfacher der Code ist, desto leichter ist er zu verstehen. Einfacher Code ermöglicht es dir und anderen, schneller einzusteigen. Außerdem fallen Fehler in einfachem Code leichter auf. Guter Code ist kurz, übersichtlich und verständlich.
Was ich auch gelernt habe ist, dass ich immer eine Versionsverwaltung verwenden sollte. Sie ermöglicht es, Änderungen am Code zu protokollieren. Wenn etwas schiefgeht, kannst Du zu einem funktionierenden Zustand zurückkehren und den Code wiederherstellen. Selbst wenn Code gelöscht wurde und später doch wieder benötigt wird, ist dies mit Versionierung kein Problem. Die Versionskontrolle erlaubt es, jederzeit zu einem beliebigen Punkt in der Projekthistorie zu springen. Dies hätte mir viel Zeit erspart. Denn wenn man versucht, Bugs zu fixen, versucht man verschiedene Lösungen und ändert häufig viele Stellen am Code. Ich habe dann teilweise den Überblick verloren und eine Versionsverwaltung hätte mir geholfen.
Alleine reisen
Die letzten drei Monate gehören zu den besten Zeiten in meinem Leben. Es ist beeindruckend, wie sich gutes Wetter und Meer auf die Stimmung und die Zufriedenheit auswirken. Was für mich aber auch ein besonders tolles Learning ist, dass wenn man alleine reist, man nur Entscheidungen für sich trifft. Das klingt vielleicht selbstverständlich. Aber ich habe es sehr genossen, dass ich keinerlei Verpflichtungen wie z.B. Veranstaltungen hatte und meine Zeit komplett so gestalten konnte, wie ich wollte. Dadurch lernt man auch noch mal viel über sich selbst und hinterfragt bisherige Verhaltensweisen. Ich werde davon auf jeden Fall etwas in meinen Alltag nehmen.
Workation: Ort
Auch wenn ich eher zufällig in Sesimbra gelandet bin, war es für mich der perfekte Ort. Der Ort liegt ca. 45 Minuten von Lissabon mit dem Auto entfernt inmitten eines Naturschutzgebietes. Die Natur ist wunderschön und das Wasser kristallklar. Es ist außerdem sehr wenig touristisch und hat tolle Strände mit weißem Sand in der Nähe. Zum Surfen bin ich ca. 30 Minuten mit dem Auto gefahren. Auch wenn ich schon ein paar Mal in Portugal war, habe ich noch mal eine neue Ecke kennengelernt. Schwieriger war es hier, neue Menschen kennenzulernen, da es keine fancy Bars oder Cafes gab. Diese findet man eher in Lissabon, dort ist auch deutlich mehr los. Aber darauf lag für mich auch nicht der Fokus. Ich wollte eher neue Kraft tanken, über viele Themen nachdenken und einfach die Zeit genießen.
Für alle, die Menschen kennenlernen wollen, habe ich die Locals hier vor Ort gefragt und mir wurde Costa de Caparica empfohlen. Dort arbeiten viele remote und man kann dort in Cafes oder Co-Working-Spaces arbeiten und trifft viele Gleichgesinnte. Dies probiere ich dann vielleicht mal beim nächsten Mal aus.