Skillbyte Podcast #48: Grundkenntnisse und Skills für ALLE IT-Fachkräfte
Willkommen zum Skillbyte-Podcast! Skillbyte ist Ihr Partner für digitale Exzellenz.
In diesem Podcast geht es um das Thema: Grundkenntnisse und Skills für ALLE IT-Fachkräfte
// Inhalt //
01:29 - Was euch die Hochschule NICHT beibringt...
02:59 - Themenkomplex: Datenhaltung und -verwaltung
03:34 - SQL - Structured Query Language bei relationalen Datenbanken
05:53 - NoSQL - Not only SQL bei schemafreien Datenbanken
07:02 - Hashtabelle / HashMap
08:23 - häufige Datenvormate: JSON, YAML, CSV
10:37 - Zusammenfassung: Datenhaltung und -verwaltung
10:49 - Themenkomplex: Netze und Protokolle
11:13 - IP Adressen und -netze, Ports, NAT, Router, Gateway, TCP/UDP, Routing, Datenpakete, Firewalls
14:20 - HTTP Protokoll inkl. Status Codes und Zertifikaten für HTTPS
15:19 - REST APIs
16:13 - Themenkomplex: Systeme und Plattformen
16:25 - Linux, Kommandozeile / CLI (Bash), vi, nano, SSH, scp
18:46 - Docker, virtuelle Maschinen
19:35 - Cloud computing, Dienste und Orchestrierung dieser
21:06 - Cloud Native Software Development
23:00 - Themenkomplex: Arbeit mit Sourcode
23:09 - Code Versioning: GIT (branching, merging, rebasing), github.com, gitlab.com
25:17 - Integration von CI/CD Pipelines, GitHub Actions, Gitlab CI/CD (gitlab-ci-yml)
26:14 - Themenkomplex: Debugging
26:19 - Logdateien lesen
27:48 - Debugger konfigurieren und einsetzen
30:06 - Themenkomplex: Produktivität & Zielorientierung
32:45 - Zusammenfassung aller Themengebiete
34:21 - Podcastempfehlungen zur Vertiefung
// Weiterführende Episoden je nach Schwerpunkt //
Podcast #9: Bull's Eye Software Development - Einfach und fokussiert auf Unternehmensziele
https://soundcloud.com/skillbyte/podcast-9-bulls-eye-software-development-einfach-und-fokussiert-auf-
unternehmensziele
Podcast #8: Must-have Skills, Technologien und Weiterbildung für DevOps
https://soundcloud.com/skillbyte/podcast-8-must-have-skills-technologien-und-weiterbildung-fur-devops
Podcast #7: Must-have Skills, Technologien und Weiterbildung für Data Engineers und Data Scientists
https://soundcloud.com/skillbyte/skillbyte-podcast-7-must-have-skills-technologien-und-weiterbildung-
3fur-data-engineers-und-data-scientists
Podcast #6: Must-have Skills, Technologien und Weiterbildung für Full-Stack Entwickler
https://soundcloud.com/skillbyte/skillbyte-podcast-6-must-have-skills-technologien-und-weiterbildung-
fur-full-stack-entwickler
Podcast #29: Die Zwölf Faktoren des Cloud Native Development (Teil 1)
https://soundcloud.com/skillbyte/podcast-29-die-zwolf-faktoren-des-cloud-native-development-teil-1
Podcast #30: Die Zwölf Faktoren des Cloud Native Development (Teil 2)
https://soundcloud.com/skillbyte/podcast-30-die-zwolf-faktoren-des-cloud-native-development-teil-2
// Weiterführende Blogposts mit mehr Informationen //
Tutorial: IT-Basiswissen für DevOps, Big Data, Developer
https://www.skillbyte.de/tutorial-it-basiswissen-fuer-devops-big-data-developer/
Onboarding neuer IT-Mitarbeiter (DevOps, Big Data, Developer)
https://www.skillbyte.de/onboarding-neuer-it-mitarbeiter-devops-big-data-developer/
Must-have Ressourcen, Skills und Techniken für Data Engineers und Data Scientists
https://www.skillbyte.de/must-have-ressourcen-skills-und-techniken-fuer-data-engineers-und-data-scientists/
Abonnieren Sie diesen Podcast und besuchen Sie uns auf https://www.skillbyte.de
Feedback und Fragen gerne an podcast@skillbyte.de
AUTOMATISCH ERZEUGTES TRANSKRIPT
Okay, ich habe jetzt meine Hochschule oder meine Ausbildung abgeschlossen. Was wird denn jetzt tatsächlich von Firmen im Alltag gefordert? Diese Skills werden oft an den Unis vernachlässigt, sind aber ganz relevant für den Berufsalltag, für die Berufspraxis. Wenn ihr mit Kollegen zusammenarbeitet.
Herzlich Willkommen zur Gewalt Podcast Episode Nr. Achtundvierzig Grundkenntnisse und Skills für alle IT-Fachkräfte Abonniert unseren Podcast für mehr spannende Themen aus dem Technologie Umfeld, wenn er IT Entscheider oder die Fachkraft seid. Wenn ihr eine Frage habt, sendet uns gerne eine E-Mail an Podcast Amtsgewalt D Wir freuen uns immer über Bewertungen und ganz besonders an Weiterempfehlung dieses Podcasts, an Freunde und Kollegen, die sich ebenfalls für diese Themen interessieren. Das ist uns ganz wichtig.
Und heute möchte ich darüber sprechen, welche Grundkenntnisse und Grundfähigkeiten denn für alle IT-Fachkräfte wichtig sind. Gerade wenn ihr vor dem Berufseinstieg steht und euch fragt Okay, ich habe jetzt meine Hochschule oder meine Ausbildung abgeschlossen, was wird denn jetzt tatsächlich von Firmen im Alltag gefordert? Und hier ist mir ganz wichtig, dass ich Themen anspreche, diese Wohlfühl Softwareentwickler, Admins, DevOps, Data Engineers von Belang sind und die für alle diese Berufsgruppen wichtig sind. Diese Skills werden oft an den Unis vernachlässigt, sind aber ganz relevant für den Berufsalltag, für die Berufspraxis.
Wenn ihr mit Kollegen zusammenarbeitet und häufig ist es so, dass das so Grundfähigkeiten sind, die euch dann auch niemand mehr so richtig erklären möchte, weil das einfach so ein Brot und Butter Geschäft ist, dass ihr das am besten dann zuhause nachliest oder die Kollegen schon mit den Augenrollen, wenn so eine Frage gestellt wird. Davor möchte ich euch bewahren und einfach ein paar Denkanstöße geben, paar Themen geben, die ja durcharbeiten könnt, wo ihr euch mit beschäftigen könnt und dann voll in den Berufseinstieg glänzen könnt und dadurch starten könnt.
Was befähigt mich dazu? Ich bin seit über 16 Jahren Softwareentwickler und seit über acht Jahren in der IT Beratung tätig, habe also schon viele Unternehmen gesehen und viele Projekte durchgeführt und habe dadurch einen breiten Erfahrungsschatz aufgebaut und sehe dann immer das neue Ankömmlinge Junior Entwickler Junior Dev Orbs Junior Atmens oft die gleichen Fragen haben, die mit einer Woche oder zwei Wochen Vorbereitung zu klären wären und wo man dann einen viel besseren Einstieg ins Berufsleben finden würde. Also vielleicht wenn ihr Einsteiger seid, sendet ihr euren Kommilitonen auch diese Podcast Episode und macht es euch sehr viel einfacher direkt erfolgreich ins Berufsleben einzusteigen.
Ich freue mich auf jeden Fall und wenn ihr Fragen habt. Wie eingangs erwähnt, schick mir gerne eine E-Mail, wenn ich ein Thema vergessen habe. Eurer Meinung nach sendet meine E-Mail an Podcast beide Punkte. Das erste Thema, wobei ich heute sprechen möchte, beschäftigt sich mit der Datenhaltung und Verwaltung. Ihr könnt euch ein Computersystem so vorstellen, dass es sich im Grunde um einen Datentyp handelt oder um mehrere Daten Zöpfe, um die drumherum Code gebaut wird. Also Decode nimmt die Daten, die in einer Eingangs Struktur vorliegen.
Das kann ein Bild sein und konvertiert diese Daten in ein anderes Format, ein Video, ein Bilder, Album usw.. Also im Grunde ist es immer so ihr habt Daten und der Computer Code macht etwas mit diesen Daten, transformiert diese Daten und gerade wenn es um das Thema Datenhaltung geht auch heute noch spielen relationale Datenbanken. Das sind Datenbanken wie Maria DB, My, SQL PostgreSQL, auch Oracle oder MS SQL eine große Rolle. Und alle diese Datenbanken werden über die STANDARD Abfrage Sprache SQL abgefragt.
Und egal in welchen Projekten, dieser SQL STANDARD wird euch immer wieder über den Weg laufen. Das ist auf jeden Fall eine Fähigkeit, die ihr brauchen werdet. In eurem Berufsalltag und die an der mannigfaltigen Stellen einsetzbar ist, ist es sogar so, dass neue Technologien, die hinzukommen z.B. wenn man an die Haddock Daten Platform denkt, die es jetzt auch gar nicht mehr so neu. Dann werden Werkzeuge extra so konzipiert, dass sie auf den vorhandenen SQL Standards aufsetzen können.
Also dass man mit der SQL Sprache, die sehr viele Entwickler bereits können, dann eben auch neue Anwendungsfälle abdecken kann. Also SQL absolut wichtig, um ein paar Beispiele zu geben. Ein paar Select Abfragen auf Tabellen Jeunes sind ganz wichtig. B. Jeune ich Daten zwischen zwei Tabellen Was ist eine Relation? Relation ist im Grunde genommen eine Tabelle. Was ist ein Primärschlüssel? Wie setze ich in die CS? Was für Vorteile haben in die CS? Welche Nachteile haben sie?
Schaut euch mal ihr Diagramme an. Also Entity Relationship Diagramme. Die habt ihr wahrscheinlich im Studium schon gesehen. Die werden auch in der Praxis eingesetzt und letztlich bilden die einfach nur Datenbank Schemas ab. Also an der Stelle nochmal wichtig die SQL Abfrage Sprache ist super wichtig. Schaut euch das an. Macht einfache Kluth abfragen also create read update Lettner fügt was ein, selektiert Ergebnisse, löscht meine Zeile. Update Meine Zeile so als Fingerübung. Da seid ihr auf jeden Fall schon mal gut gewappnet, weil SQL wird ihn mit an Sicherheit grenzender Wahrscheinlichkeit in eurem Berufsleben wieder auftreten.
Hier noch als Erweiterung. Die optionales Wenn ihr das Thema vertiefen wollt, könnt ihr euch auch Objekt relationale Mapper anschauen, sogenannte Ockhams. Hier geht es darum. Programmiersprachen sind häufig objektorientierte und ihr arbeitet mit Objekten. Daten werden aber immer, wenn sie in relationalen Datenbanken liegen, auf Tabellen abgebildet. Das heißt, es sind im Grunde zwei Welten und diese Object relationalen Mapper verbinden diese beiden Welten ist nicht unbedingt Voraussetzung, aber als Erweiterung. Wenn euch das Thema interessiert, würde ich das empfehlen, mal anzuschauen.
Kommt auch sehr häufig vor. Wir befinden uns immer noch in dem Blog Datenhaltung und Verwaltung. Und das zweite Thema, was sehr wichtig ist und was euch im Berufsleben auf jeden Fall über den Weg laufen wird, sind die sogenannten No ASCII Datenbanken wie beispielsweise Mongo DB, No SQL steht hier aber nicht für kein SQL, sondern für Not only SQL und es handelt sich um so genannte Schema freie Datenbanken. Was bedeutet das? Bei den relationalen Datenbanken haben wir schon festgestellt Es gibt Tabellen.
Diese Tabellen haben ein festes Format und alle Daten müssen in diese Tabellen hineinpassen. Bei den Schema freien Datenbanken ist das nicht der Fall. Da könnt euch vorstellen einen Such Index wird häufig mit Schema freien Datenbanken abgebildet und mit Dokumenten, die sich nach und nach erweitern. Also wenn man z.B. ein Dokument hat, das nennt sich Person, dann hat die Person vielleicht Vorname Nachname. Irgendwann kommt ein Führerschein hinzu, irgendwann kommt ein Schulabschluss hinzu, irgendwann heiratet die Person vielleicht und es kommt mir ein Link zu einer anderen Person hinzu.
Und das weiß man vorher alles nicht. Deshalb können die Dokumente in der Datenbank Personen nach und nach erweitert werden. Ohne Schema. Also SQL haben wir, No SQL haben wir, da gehen wir gleich noch genauer drauf ein. Ein weiterer Punkt zur Datenhaltung und Verwaltung, der euch auf jeden Fall begegnen wird, ist die sogenannte Hascht Tabelle oder auf Englisch Hash Map. Schaut euch bitte an, wie funktioniert eine Hash Map? Was für Vorteile habe ich bei der Hash Map?
Was? Eine Hash Map ist einfach eine Datenstruktur, die einen Schlüssel zu einem Wert abbildet. Im Grunde genommen könnt ihr euch vorstellen, ein Schlüssel muss eineindeutig sein wie eine Telefonnummer und der Wert könnte z.B. die Person sein, die hinter der Telefonnummer steckt. Wenn ich jetzt einen neuen Wert mit der gleichen Telefonnummer einfüge in diese Hash Tabelle, dann fällt der alte Wert raus und die neue Referenz. Also sagen wir mal die gleiche Telefonnummer gehört jetzt einer neuen Person, wird dann dort gespeichert.
Der Vorteil von einer hascht Tabelle ist, dass ein sehr schneller Zugriff ermöglicht werden kann, wenn man den Key errät. Wenn man die Telefonnummer weiß, kann man sofort den Namen der Person nachgucken in der O Notation, während er die Zugriffs Zeit würde sich als O von 1 darstellen, was der beste Fall ist und die Hash Tabelle läuft euch sehr sehr häufig über den Weg. Diese Datenstruktur beim Thema Caching, wenn ihr schnellen Zugriff auf Elemente benötigt bei Key Value Stores.
Ein unbekanntes Produkt aus diesem Bereich wäre z.B. Readers. Also schaut euch wirklich an, was ist eine Hash Tabelle? Wie funktioniert die? Gibt's in allen Programmiersprachen. Macht euch mit dem Konzept vertraut. Das ist ganz wichtig. Als letzten Punkt bei Datenhaltung und Verwaltung möchte ich auf häufige Datenformate eingehen. Also ein häufiges Datenformat ist z.B. Jason Java Skript, Objekt Notation. Das habt ihr bestimmt schon mal gesehen. Das sind einfach abgerollt. Schlüssel, Werte, Kombinationen. Wenn man so möchte, also sucht nach Jason Fall, dann sieht er sofort, was ich meine.
Dieses Dateiformat kommt sehr sehr häufig vor. Und das wird zum Brot und Butter Geschäft während eurer täglichen Arbeitszeit werden bin ich ganz sicher. Ist auch sehr ähnlich beim Zugriff auf Novell SQL Datenbanken. Werdet die Abfragen an diese Datenbanken stellen. Da kommen dann Jason Dokumente zurück, also Jason Objekte zurück, wenn ihr auf irgendwelche Rest APIs zugreift. Da kommen wir gleich noch zu. Wird ebenfalls wie mit Jason Objekten gearbeitet und also an Datenformat. Jason kommt da nicht vorbei.
Wenn ihr nicht wisst was das ist. Schaut es euch an. Macht euch damit vertraut und es ist sehr, sehr wichtig. Ein zweites Datenformat, insbesondere für Konfigurationsdateien ist das sogenannte Jamel Dateiformate.
Jamel und Jason sind austauschbar. Also man kann Jason Datei als Jamil Datei schreiben und eine Jamel Datei als Jason Datei ist ein bisschen der Geschmacksfrage. Jason Dateien werden häufig zur Verwendung von Daten zum Austausch von Daten Objekten verwendet. Jamil Dateien sind oft Konfigurationsdateien, also Latin oder Markup. Länge ist die geschriebene Abkürzung und die neuen Technologien nutzen alle diese Sprache zur Konfiguration. Ein drittes sehr häufig anzutreffen das Dateiformat ist das sogenannte CSV Dateiformat. Häufig liegen Daten Exporte in dem CSV &comma.
Seppl rated beliefs vor. Das könnt euch so vorstellen, dass im Grunde einfach eine Tabelle abgerollt wird und alle Daten mit Kommas getrennt hintereinander geschrieben werden. Und das ermöglicht es auch Systemen, die keine Kenntnis voneinander haben, mit diesen Daten zu arbeiten. Also irgendein System, was mal erstellt wurde, kann Daten in CSV exportieren, z.B. eine Telefonrechnungen und ein anderes System. Was? Einige Jahre später erst danach erzeugt wurde, kann man diese Daten eben wieder einladen. Weil sich beide sind CSV STANDARD halten.
Das wären meine 4 Tipps zum Thema Datenhaltung und Verwaltung. Ich fasse nochmal zusammen SQL Abfrage Sprache superwichtig Der Umgang mit No SQL Datenbanken ist sehr wichtig. Die Funktionsweise einer hascht Tabelle sollte dir kennen und die geläufigsten Datenformate. Mit denen sollte dir auch was anfangen können. Okay, nach Datenhaltung UN-Verwaltung kommen wir jetzt zu dem Block Netze und Protokolle. Das wird einige von euch langweilen, andere von euch, wenn ihr großen Nachholbedarf haben. Das stelle ich immer wieder fest.
Und zwar geht es um nichts weniger als das Verständnis, wie das Internet funktioniert oder spezieller wie TCP IP Netzwerke funktionieren. Was ist eine IP-Adresse? Also ganz genau. Was ist das? Was ist eine IP V4 Adresse? Was ist eine IP V6 Adresse? Warum ist diese Adresse wichtig? Was bezeichnet diese Adresse? Ist diese Adresse änderbar? Wer teilt diese Adressen zu? Wer verwaltet diese Adressen? DHCP In diesem Kontext ist auch wichtig. Alles Stichworte, die er nachgucken könnt und die wichtig sind Ports.
Was ist ein Port? Von einem Service, der auf meinem Rechner läuft. Wie viele Ports gibt es? Welche Ports sind bereits belegt? Gibt Welche Konventionen existieren zu Ports? Hier insbesondere Ports unterhalb der Nummer 1024 dürfen eigentlich nur von Services verwendet werden. Die erhöhte Rechte haben und so weiter und so fort. Das sollte durch angucken gerne auch Wikipedia bietet exzellente Dokumentation zum Thema IP Netze an. Schaut euch das an! Also was sind IP Adressen? Was hat es mit den Ports auf sich?
Was ist ein Router bzw ein Gateway? Ein Router bootet innerhalb von Netzen. Ein Gateway verbindet zwei Netze. Wir sagen zwar im Sprachgebrauch häufig DSL Router, aber streng genommen ist es ein DSL Gateway, denn es verbindet das private Heim Netz mit dem Internet. Was bedeutet Network Address Translation kommt so häufig vor in Kunden Projekten. Bei Network Address Translation geht es einfach darum, dass die IP-Adresse im Internet, die euer Gateway im Internet hat, auf eure lokalen Geräte zuhause beispielsweise abgebildet werden muss.
Das heißt, euer Handy, euer PC, eurer Spielkonsole, euer Fernseher. Die haben alle die gleiche IP V4 Adresse im Internet. Aber trotzdem muss natürlich das Gateway Player DSL Gateway entscheiden. Wo schicke ich denn welche Daten hin und muss die Geräte auseinanderhalten? Wie funktioniert das genau? Ein weiteres Stichwort hier wäre Port vor Wording. Das solltet ihr auch wissen. An das habt ihr aber wahrscheinlich im Studium gelernt. TCP und UDP was ist der Unterschied zwischen TCP Verbindungen und UDP Verbindungen?
Ganz einfach kann man sagen bei TCP Verbindungen fallen Verbindungs Fehler auf und werden behoben. Also verlorene Datenpakete werden an Nacht gesendet. Bei UDP ist das nicht der Fall. Dafür ist UDP schlanker und hat weniger Management Overhead, was die Paket Verwaltung angeht. Das ist manchmal von Vorteil, wenn man einfach möglichst hohe Datenrate erzielen möchte oder wenn verlorene Pakete nicht wichtig sind z.B. bei Skype Verbindung. Wenn da ein Wort fehlt, dann nützt das nichts, das wenige Sekunden nach und später nach zu senden, sondern dann lässt man Safa weg und macht weiter.
Generell Wie funktioniert Routing? Was sind Datenpakete? Wie funktionieren Firewalls? Das ist Grundlagenwissen, aber immer wichtig in Firmen, weil Unternehmen oft sehr komplexe Systeme im Einsatz haben, die eben mit dem Netz verbunden sind. Und oftmals, wenn es Probleme gibt, liegt das an Komponenten in dem Netz, die eben diese Einzelkomponenten verbinden. Und wenn man nicht versteht, wie Alpines zu funktionieren, dann kann man den Fehler nicht entdecken und beheben. Es ist der einfache Grund.
Der zweite Punkt bei Netzen und Protokollen. Neben der Funktionsweise des Internets sein grundlegendes Verständnis des http Protokolls. Also was gibt es für Methoden geth post put die z.B.. Und was gibt es für http status codes? Viele kennen bestimmt den Status Code 404. Das ist wenden eine Ressource eine Webseite in dem Fall nicht gefunden wurde. Gibt auch den Status Quo 200, wenn der Request erfolgreich verarbeitet wurde. Es gibt noch viele, viele weitere Status Codes, die alle eine andere semantische Bedeutung haben.
Da sollte man sich mal die Tabelle anschauen, um einfach einen Überblick zu bekommen, was es alles gibt. Die muss man nicht auswendig können, aber man muss z.B. Klassen von Status Code sollte man wissen. Also die fünf Hunderter Codes bezeichnen Server Fehler als bei vier Hunderter Codes ist häufig eine Ressource einfach nicht gefunden worden. Bei 200 Codes ist der Request erfolgreich durchgeführt worden. Aber es gibt halt verschiedene Rückmeldungen, dass man einfach diese Klassen kennt. Das ist sehr wichtig und hochgradig Praxis irrelevant.
Ein dritter Punkt bei Netzen und Protokollen, der sehr wichtig und in den letzten Jahren noch an Wichtigkeit. Sind die sogenannten Rest APIs als Schnittstelle zwischen Microservices oder zwischen zwei Systemen, die miteinander sprechen, meistens über Jason? Geht es darum, System A ruft z.B. bei System B ein Login auf, System B sendet System A zurück. Okay, erfolgreich eingeloggt. Daraufhin kann System A System B sagen wieder ein Request schicken. Ok. Dann bitte möchte ich die und die Daten abrufen.
Dann weiß System B anhand von Informationen, die gesendet werden. System AS autorisiert und kann dann die entsprechenden Informationen zurück liefern. Immer wenn ihr euch irgendwo auf einer Website einloggt, wird im Hintergrund genau dieser Datenaustausch durchgeführt. Also Rest APIs in Verbindung mit dem HTTP Protokoll und der Funktionsweise des Internets. Also es sind absolute Basis Baustein und die braucht ihr mit Sicherheit grenzender Wahrscheinlichkeit auf jeden Fall in meinem Berufsleben. Kommen wir nach der Datenhaltung und Verwaltung über das Thema Netze und Protokolle.
Nun zum dritten Thema Systeme und Plattformen. Hier ist es wichtig zu wissen, wie das System Linux aufgebaut ist. Linux wird nach wie vor auf den meisten Servern eingesetzt. Auch die ganz Docke isierung und die ganzen Cloud Umgebungen basieren zum größten Teil auf Linux und sehr, sehr häufig. Wenn ihr Software entwickelt, die irgendwo ausgerollt werden soll, passiert das auf Linux Systemen. Und da sollte dir einfach ein grundlegendes Verständnis davon haben, wie das System aufgebaut ist. Da gibt es tolle Youtube-Videos zu, die das in der Kürze erklären.
Also was ist der Kernel, was ist der User Space? Was sind die häufigsten Verzeichnisse bei einer Linux Installation oder auch im Docker Container? Ist es oft so ähnlich? Was sind Konfigurationsdateien also häufig unter Slash etc., die wichtig sind, wo ich dein Haus eintragen kann oder irgendwelche anderen Systemeinstellungen verändern kann? Das lohnt sich immer. Also generell Linux System Aufbau verstehen und die häufigsten Verzeichnisse kennen. Das führt mich direkt zum nächsten Punkt dem Umgang mit der Linux Kommandozeile.
Ob das jetzt das Basch Terminal ist oder TCS h WGT, da Entwickler durch seine eigene Vorliebe. Es ist aber wichtig hier, dass ihr euch für einen Terminal entscheidet, dass ihr das so konfiguriert, dass er damit auch umgehen könnt und euch dann eben auf der Kommandozeile wegen könnt. Ob das jetzt Linux ist oder MacOS, das ist erst mal nicht so wichtig, aber dass ihr in Verzeichnissen navigieren könnt. Also mit CD in ein Verzeichnis reinspringen oder wieder rausspringen, das Sie mit lässt euch das Verzeichnis Inhalt anzeigen lassen können, dass ihr Dateien editieren könnt entweder mit den Editoren wie ein Nano oder euer Lieblings Editor, dass ihr per 6h auf einen Server zugreifen könnt.
CH Leerzeichen Server Namen entspringt er auf den Host, dass ihr z.B. mit SCP Daten zwischen Servern hin und her kopieren könnt oder von einem Server auf eurem Rechner kopieren könnt. Das wird häufig benutzt bei Log Dateien. Wenn man da etwas nachschauen möchte, das man erstmal vom Server auf den eigenen Rechner kopiert, dass man Dienste stoppen kann und neustarten kann und dass man sich einfach sicher auf der Kommandozeile bewegt. Das ist sehr, sehr sehr wichtig und das ist absolutes Grundlagenwissen.
Hab ich häufiger schon in meinem berufst Kontext gesehen, dass das nicht beherrscht wurde. Und dann entsteht im Team sehr, sehr oft Frustration, weil das eine Grundkenntnisse ist, die vorausgesetzt wird. Also wer mit dem System Ausbau von Linux besprochen und die Navigation auf Linux Kommandozeile auch die Verwendung von Docker und virtuellen Maschinen wie VirtualBox sind sehr, sehr wichtig zu wissen, wie man damit umgeht, weil die Entwicklung doch mehr und mehr in Docker Containern vollzogen wird oder auch in virtuellen Maschinen statt auf der eigenen lokalen Hardware.
Das hat einfach den Vorteil, dass man, wenn man einen Docker Container baut oder Diplomat, dass er sich überall gleich verhält und man nicht mehr das Problem hat, dass eine Software auf dem lokalen Rechner anders funktioniert als dann später in der Produktion auf dem Server, weil man das vermeiden möchte. Also schaut euch an, wie Docker funktioniert, wie man Docker Container runterlädt, wie das langjÃhrigen der Falz Systeme der Docker Images funktioniert und wie der Docker Dienst generell funktioniert auf der Linux Infrastruktur.
Ich denke ah es ist sehr interessant und b ist es auch hochgradig Praxis relevant. Ein weiterer Punkt bei System und Plattform ist natürlich, dass in den letzten Jahren immer stärker in den Vordergrund tretende Cloud-Computing auf der einen Seite versus der On Priamos Rechenzentren, die auf der anderen Seite noch laufen bei vielen Unternehmen und ich denke, es wird dahin gehen, dass bis auf sehr, sehr wenige Ausnahmen fast alle Anwendungen in der Cloud betrieben werden. Heute sind wir in einem Zwischenzustand, dass noch viele alte Anwendungen, die seit Jahren bestehen, im eigenen Rechenzentrum laufen und nicht in die Cloud wandern.
Aber Anwendungen, die neu entwickelt werden eben schon auf der Cloud Infrastruktur angelegt werden. Und da muss man sich dann einfach auskennen. Also auch mit der Terminologie Wie heißt eine virtuelle Maschine in der Amazon Cloud oder in der Cloud oder in der Google Cloud, je nachdem, welchen Cloud Provider man da verwendet?
Da ist es auch wieder wichtig. Ich die Netze und Protokolle zu verstehen. Wie können die Maschinen untereinander kommunizieren? Welche Cloud Tools gibt es? Wie heißt jetzt zum Beispiel DNS namens Auflösung jetzt bei dem Cloud Provider und so weiter und so fort. Also hier am besten wie kommt ihr da rein? Die meisten Club Weida bieten ja so ein Free Plan an, dass man sich da einfach anmelden kann und dann eine einfache Website auf diesem Cloud Host installieren. Ich glaube, da kann man sehr schnell Erfolge erzielen und sich sehr schnell in diese Infrastruktur als Dienst oder Infrastruktur as a Service Umgebungen einarbeiten.
Oft ist es auch so, dass Unternehmen schon eine Cloud Infrastruktur hab und wir die nicht von Null aufbauen müssen, sondern eben erweitert. Aber da muss man sich dann auch auskennen, welche Werkzeuge es da alles gibt. Wenn man schon bei Cloud Computing ist, muss man auch meiner Ansicht nach das Cloud Native Software Bell abmahnt ansprechen. Da haben wir bei Skill BYD 2 Podcast Episoden zu gemacht, die Episode Nummer neun und zwanzig und dreißig. Denn Anwendungs Software, die für Cloud Umgebungen entwickelt wird, die wird etwas anders entwickelt als man das vielleicht bei Legacy Anwendungen früher gemacht hat, wo alles auf einem Server ausgeführt wurde.
Heute ist es so, dass das Thema State zentral gehalten wird, dann Cloud Datenbanken oder Cloud Now, SQL Datenbanken und die Microservices drumherum. Diese Daten transformieren sehr schön. Da sind wir wieder bei dem Bild, was ich eingangs gezeichnet habe, dass man im Grunde sich einen Computer Computersystem als Datentyp vorstellen kann mit Code drumherum. Genauso ist es in der Cloud auch. Aber es gibt ja ein paar Besonderheiten, auf die man achten sollte bei der Anwendungsentwicklung, die eben unter Cloud Native Development zusammengefasst sind, damit man auch alle Vorteile der Cloud nutzen kann.
Also damit man so super breit skalieren kann, damit man sich Maschinenhaus fahren kann und im Grunde eine Milliarde User App frühstücken kann, muss man die Anwendungen in einer bestimmten Art und Weise entwickeln. Und das ist das Cloud Native Development, würd ich auch sagen. Schaut euch das mal an, müsste euch nicht so tief anschauen, aber ist auf jeden Fall wichtig. Und in dem Zuge Cloud Entwicklung macht euch mit so Schlagwörtern vertraut wie CDN konnte Delivery Network Was bedeutet AWS?
Was bedeutet CCP? Was bedeutet esgab? Wie gehe ich mit der neuen Infrastruktur aus der Cloud um statt echter Hardware im Server? Vielleicht steigt er auch direkt auf Cloud Services ein und kennt gar nicht mehr echte Server. Das ist auch okay, aber der Umgang mit den Cloud Diensten, das halte ich für sehr, sehr wichtig und hochgradig Praxisräume und auf jeden Fall. Und auch die meisten Cloud-Anbieter bieten Kommandozeile Tools. Als wenn man sich auf der Kommandozeile bewegen kann, kann man auch die Tools der Cloud-Anbieter verwenden.
Nach System und Plattform wäre der vierte Punkt von mir nun das Arbeiten mit Source Code. Wie geht man damit um? Und hier ist ein ganz, ganz grundlegendes System, was man auf jeden Fall beherrschen sollte und sich anschauen sollte. Das Git Code Version im System von Linus Torvalds himself, gegründet vor einem Jahr. Was heißt ersetz? Installiert euch Git schaut an, wie man einen Branch macht, wie man Branches wieder merkt, wie Rhee Basinger funktioniert, welche Vorgehensweise es gibt, Feature Entwicklung auf sogenannten Branches durchzuführen.
Dann, wenn das Feature entwickelt ist, muss der Branche wieder in den Master Branch zurückgemeldet werden. Da gibt es verschiedene Vorgehensweisen. Also ich sage nicht, dass man sich das alles anschauen muss, aber man muss Git so benutzen können, dass man Code einchecken kann, Code Versionierung kann, die geläufigsten Kommandos kennt, also mit blame schaut wer hat diese Code Datei geschrieben und wen kann ich da fragen z.b. Und wo kommt diese Änderung her, dass man einen Branch ziehen kann, dass man ein Branch wieder marjan kann?
Das ist super wichtig und habt ihr vielleicht schon im Studium benutzt. Wenn nicht, schaut euch bei Jude Ami oder bei YouTube an Git Kurs an, der euch die Basics vermittelt und wirklich die Basics Bronchien Marching Rebalancing. Damit seid ihr schon gut aufgestellt. Da gibt es noch sehr fortgeschrittene Themen, die wenn euer Unternehmen das einsetzt, werden sie euch das zeigen. Aber zumindest die Basis Sachen solltet ihr kennen, um damit umzugehen, dass es immer wieder ein Knackpunkt.
Und da solltet ihr zumindest Grunderfahrungen haben, um da nicht direkt anzuecken bei eurer neuen Stelle. Wenn ihr wollt, macht euch ein Account bei GitHub und komm oder Güttler Punkt kommen. Erstellt euch dort euer eigenes Repository zum Ladet mal Dateien hoch, ladet das runter. Fragt einen Freund, die Dateien zu ändern und die wieder hochzuladen, sodass er euch einfach. Ja, vielleicht nutzt er im Studium schon vor eurer Abschlussarbeit oder irgendein Text. Könnt ihr mal Git benutzen, um gemeinsam an einem Werk zu arbeiten und dann kriegt er schon Erfahrung, was für Probleme es gibt und was auch Git leistet.
Und das ist sehr sehr wichtig. Es gibt noch andere Wirsching Systeme außer Git z.B. SVR oder CVS, aber Git hat im Grunde genommen alle verdrängt. Und wenn ihr Git verstanden habt, dann könnt ihr auch mit allen anderen umgehen. Deshalb halte ich es für das Allerwichtigste. Ein weiterer Punkt Wenn ihr das Codewort Oenning mit Git beherrscht, ist die Integration von Kaikki. Die Pipeline, also Continuous Integration Continuous Delivery haben nämlich meistens in Unternehmen hört man ja nicht auf, wenn man denkt Sourcecode eingecheckt hat, sondern jetzt muss der Source Code ja in ein Programm überführt werden oder in einen Container überführt werden.
Und dieser Container wird dann ausgerollt auf dem Testsystem, auf dem Produktionssystem, je nachdem, was man gerade macht. Da gibt es bei GitHub die sogenannten GitHub Actions, die es machen können. Bei Gelabt gibt es die Key ICD Pipeline über die Gitter i-Punkt Jamel Datei lässt sich das steuern. Also schaut euch die Integration dieser Sie als Hedy Pipelines an ist ein etwas fortgeschrittenes Thema, wird aber auch hochgradig Praxis relevant. Hab ich in jedem Projekt bisher gehabt. Was man da zumindest verstehen muss.
Was da vor sich geht und gegebenenfalls auch Anpassungen durchführen können muss, würde ich empfehlen, sich auf jeden Fall da mal ein Youtube-Video zu anzugucken. Okay. Soviel zur Arbeit mit Sourcecode. Mein fünfter Punkt, der absolut wichtig ist, heißt Debugging. Womit die Bar gegen meine ich erstmal, dass ihr Log falls lesen könnt Dienste Linux Dienste System Dienste auch Windows System Dienste schreiben Ereignisse in Log Dateien Diese Log Dateien sind die erste Anlaufstelle, wenn es zu Fehlern kommt, wenn es zu Problemen kommt, wenn man irgendwie schauen muss, wie verhält sich der Dienst.
Und das ist tägliches Brot und Butter Geschäft, das man in Lokführers schauen kann. Also entweder springt man auf der Kommandozeile per Asha direkt auf die Maschine oder in den Docker Container und betrachtet dann eben die Lock falls mit den gebräuchlichen Editoren wie wie nano less more. Dies sind keine Editoren, aber Betrachter um dann die Log Dateien anzeigen zu können. Ihr könnt jeden Editor benutzen, der für euch passt. Wichtig ist, dass ihr wisst, wo sind Lokführers zu finden unter war oder jeweils an der konfigurierten Stelle im Container und dass ihr dort reinschauen könnt.
Superwichtig gibt auch so Log Aggregation Dienste wie e.K. Zum Beispiel oder Cubaner die Log Falls sammeln gerade in verteilten Umgebungen und die dann an zentraler Stelle aggregieren. Ihr könnt euch vorstellen, wenn ihr 20 Container habt, dann möchtet ihr nicht 20 Container abklappern per Kommandozeile, sondern möchtet die Log falls zentral an einer Stelle einsehen können. Dann habt ihr schon einen Dienst, der euch das abnimmt, die Lock Fields zu sammeln. Aber das Sorgfalt selber betrachten müsst ihr dann immer noch eben auf einer Web Oberfläche und vielleicht nicht in der Kommandozeile.
Aber Log falls lesen will gelernt sein kommt aber auch jeden Tag vor. Ein ganz ganz großes Thema. Was mir am Herzen liegt beim Thema Debugging ist das Richtige die Backen. Ich halte das für extrem wichtig für effektive Arbeit zu machen. Also stellt euch vor. Ihr baut eine Website und jedes Mal, wenn ihr eine Änderung gemacht hat, müsst ihr den Webserver neu starten, um zu gucken, welche Änderungen hat meine Änderungen denn jetzt bewirkt? Wie sieht die Webseite jetzt aus?
Wie sieht die Webseite jetzt aus? Jetzt würdet ihr so ein Plugin verwenden wie z.B. Hoth Reload, was einfach, wenn ihr die Datei speichert, die Webseite neu lädt und ihr sofort seht, was eure Änderung bewirkt hat. Und das ist jetzt nur Webentwicklung. Das kann man für alle möglichen Technologien gibt es einen dieBürger. Ob das im Browser ist, eine JavaScript Code schreibt, ob das auf JVM Sprachen ist wie Java oder Scala, da gibt es die Bagger.
Ob das bei iOS ist? Wenn ihr Apps entwickelt oder bei PHP. Überall gibt es die Braga, welche die Entwicklung und das Bugfixes extrem vereinfachen. Ihr könnt Breakpoint setzen, also an bestimmten Stellen im Programm stehen bleiben. Dann könnt ihr euch angucken, welche Werte alle Variablen haben. Ihr könnt oft auch die variablen Werte an dieser Stelle ändern. Teilweise könnt ihr das Programm zurückspulen, eine Änderung machen und dann nochmal vorwärts über diese Änderungen drüber gehen und gucken, ob eure Änderungen den gewünschten Effekt hat.
Ihr könnt variablen Werte ansehen und editieren. Ihr könnt OT Reload benutzen. Das heißt, dass ihr die geänderte Datei direkt kompilieren und wieder einladen könnt und direkt den geänderten Code testen könnt. Vorwärts rückwärts über eine Stelle gehen und kommt so viel schneller einem Back auf die Schliche. Oder wenn ihr auch Software entwickelt, als wenn ihr immer wieder den Server neu startet oder den Dienst neu startet und euch bis an diese Stelle durchklicken. Also nutzt ein Debugger. Das ist mein Appell.
Das ist auch ein riesen Hebel. Ich bin immer wieder überrascht. Auch fortgeschrittene Entwickler benutzen nicht immer einen Debugger, sondern erarbeiten erst einmal relativ lange ohne, bis sie dann die Bagger abklemmen. Und die Bagger ist für mich eins der Nummer eins Produktivitäts Werkzeuge überhaupt, um Softwareentwicklung zu betreiben oder Bugfix sing. durchzuführen. Also investiert wirklich die Zeit in die Bagger kennenzulernen und einzurichten. Das ist eine etwas größere Hürde. Oftmals muss man ihn konfigurieren und muss erst mal ein paar Settings gerade ziehen, bis man ihn auch nutzen kann.
Das sollte aber auf jeden Fall machen, auch wenn es etwas lästig ist, weil die Zeit holt er hinterher immer wieder raus. Nach dem Thema Diba gegen was ich abschließen möchte, komme ich zu dem sechsten Punkt und der sechste Punkt ist im Grunde genommen keine Werkzeug Empfehlung wie vorhin, sondern eine Empfehlung zu eurer generellen Einstellung. Der sechste Punkt heißt Produktivität und Zielorientierung und das ist ein ganz wesentlicher Punkt. Die Herangehensweise an ein IT bzw. Software Problem ist ganz wesentlich für euern Erfolg und ich sehe es sehr sehr oft, dass das ein Haupt Unterscheidungsmerkmal ist zwischen einem Entwickler, der vielleicht weniger Erfahrung hat und einem Entwickler, der sehr viel Erfahrung hat.
Die Entwickler mit sehr viel Erfahrung, die überlegen erst auf dem Papier, die planen eine Funktion, die schauen sich an, die lesen sehr viel. Was ist denn schon da? Was kann ich wiederverwenden? Gibt es eine Open Source Library, die ich benutzen kann, die mir schon sehr viel Arbeit abnimmt? Was ist denn schon da? Also wie ist genau mein Weg zum Ziel? Und sehr, sehr viel Zeit wird für die Planung aufgewendet, wohingegen eher Junior Entwickler meistens direkt anfangen Code zu tippen.
Ah hier, da weiß ich, da kann ich etwas implementieren und hier machen wir die Suchfunktion und so. Also die springen direkt ins Thema rein, statt erst mal zu planen. Und da ist mein Erbteil an euch. Überlegt erst einmal genau, was erreicht werden muss, was die Anforderungen sind und dann überlegt euch einen minimalen Weg, wie ihr genau diese Anforderungen auch umsetzen könnt. Nicht zu viel implementieren und gerne needed genau gucken. Okay, wie ist ein effektiver Weg von meiner Anforderung hin zur Implementierung?
Viel Zeit in das Verstehen des Problems zu investieren und auch viel Zeit in die gedankliche Entwicklung der Lösung zu investieren und dann erst mit dem Cone anzufangen und die einzelnen Blöcke zusammenzuziehen. Also desto Me im Vorfeld überlegt und plant, desto weniger Code schreibt ihr am Ende. Weniger Code heißt weniger Fehler, teils besseres Programm, bessere Software. Wichtig wäre bei dem Punkt auch noch daran zu appellieren, dass ihr, bevor er eine Änderung durchführt, überlegt Welchen Impact hat diese Änderung denn für das Business?
Und ist das wirklich wichtig? Sehr oft beobachte ich, dass Entwickler dann diese Technologie und jene Technologie und dies noch verwenden wollen. Aber das löst überhaupt nicht das Ziel Problem. Also man muss sich wirklich jeden Morgen deshalb ist das Daily bei Scrum auch so wichtig nochmal zentrieren und sagen Okay, was sind denn die wichtigsten Themen, die ich erledigen muss, damit die Anforderung umgesetzt wird, um nicht vom Weg abzukommen? Eine Podcast Episode, die genau das Thema aufgreift, ist die Episode Nummer 9 Bulls als Software Development.
Da geht es darum, wie man fokussiert auf die Unternehmensziele hin entwickelt und möglichst genau den Kurs hält. Ich fasse nochmal zusammen als der erste Themenblock Datenhaltung und Verwaltung. Da geht es darum, SKL solltet ihr beherrschen no SQL Datenbanken sollte die verwenden können und beherrschen, was eine hascht Tabelle ist Wissen und die häufigsten Datenformate Jason, Jamel und CSV verwenden können. Bei Thema 2 in Netzen und Protokollen sollte die Funktionsweise des Internets verstehen. Was sind IP Adressen usw.. Das HTTP bzw.
https Protokoll verstehen auch. Was hat es mit der Verschlüsselung auf sich und wie werden Zertifikate eingesetzt? Und ihr solltet Rest APIs ansprechen können und verwenden können. Bei Systeme und Plattformen den Linux System Aufbau verstehen, euch auf der Linux Kommandozeile sicher bewegen können. Docker und virtuelle Maschinen einsetzen können. Den Unterschied zwischen Cloud-Computing und Prims Rechenzentrums Anwendungen verstehen vielleicht die Faktoren des Cloud Native Development mal anschauen im Podcast Episode Nr. neun und zwanzig und dreißig und die geläufigsten Cloud Services habe ich mal angeschaut haben.
Also Google, Microsoft und Amazon sind hier zu nennen. Bei der Arbeit mit dem Sourcecode solltet ihr mit Geld umgehen können und die Integration von KI, als sie die Pipelines verstehen. Warum macht man das und wie geht das prinzipiell? Beim Thema Debugging Lock Falls lesen können und den Debugger einrichten. Das ist ganz wichtig, damit ihr produktiv arbeiten könnt und beim Thema Produktivität und Zielorientierung euch immer wieder daran erinnern. Planen. Problem verstehen. Möglichst viel über das Problem wissen und dann erst eine Lösung entwickeln.
Weil desto mehr man über das Problem weiß, desto einfacher ist die Lösung hinterher. Für weitere Podcast Episoden zu den Themen die packe ich euch in die Shownotes. Aber den Podcast Nr. neuen Bullshit Software Development einfach und fokussiert auf Unternehmensziele in entwickeln Must-Have Skills und Technologien für DevOps findet ihr in der Podcast Episode Nr. 8 für Data Ingenieurs und Data Scientists in der Podcast Episode Nr. 7 für Faulstich Entwickler. In der Podcast Episode Nr. 6 und die 12 Faktoren des Cloud Native Development findet ihr in der Episode 29.
und 30.. Nochmal wichtig zu sagen all die angesprochenen Themen haben eine sehr hohe Praxis Relevanz, das kann ich euch sagen aus 16 Jahren IT Erfahrung und über acht Jahren I Beratungs Erfahrung. Wenn ihr Fragen habt oder Feedback zu der Episode, weil ihr glaubt, dass ich ein wichtiges Thema vergessen habt, sendet uns gerne eine E-Mail an Podcasts. Gilbert D. Wenn euch die Podcast Episode gefallen hat, abonniert unseren Podcast und lass deine 5-Sterne Bewertung. Wir freuen uns auch immer über Weiterempfehlung an Freunde und Kollegen, die sich ebenfalls für Technologie Themen interessieren.
Ansonsten freuen wir uns noch, wenn ihr uns Gilbert D. Slash Blog vorbeischaut. Vielen Dank fürs Zuhören und bis zum nächsten Mal.