adesso SE · Praktikum
◀ Kapitel 2 von 2 ▶

🔬 Informatik Grundlagen

Rechnerarchitektur, Internet-Protokolle und die Welt der Programmiersprachen.

1
Rechnerarchitektur
Wie ein Computer von innen wirklich funktioniert – sehr grob!

Das Von-Neumann-Prinzip

Fast alle modernen Computer basieren auf einem Konzept, das John von Neumann 1945 beschrieben hat. Das Revolutionäre: Programme werden im Speicher abgelegt – genau wie Daten. Vorher musste man Computer physisch umverkabeln, um sie neu zu programmieren.

📚 Analogie: Buch und Leser
Stell dir vor, du liest ein Kochrezept (= Programm im Speicher) und führst jeden Schritt aus (= CPU). Du liest eine Anweisung, führst sie durch, liest die nächste – genau so arbeitet die CPU im Von-Neumann-Modell: Fetch → Decode → Execute.

🔍 Von-Neumann-Architektur

SYSTEM-BUS (Datenautobahn) 🧠 CPU Control Unit (Steuerwerk) ALU (Rechenwerk) Register (Schnellspeicher) 📋 Hauptspeicher (RAM) Programm-Anweisungen Daten (Variablen, etc.) Temporär · Flüchtig 🔌 Ein-/Ausgabe (I/O) Tastatur, Maus Bildschirm, Drucker Festplatte, Netzwerk FETCH → DECODE → EXECUTE (Der Instruktions-Zyklus) ① FETCH CPU holt nächste Anweisung aus RAM ② DECODE Control Unit entschlüsselt den Befehl ③ EXECUTE ALU führt den Befehl aus (Rechnung, Speichern, …)

Das Binärsystem – Nullen und Einsen

Computer kennen nur zwei Zustände: Strom an (1) und Strom aus (0). Mit diesen zwei Zuständen lässt sich trotzdem alles darstellen – Zahlen, Buchstaben, Bilder, Videos.

Ein einzelnes 0 oder 1 heißt Bit. 8 Bits zusammen ergeben 1 Byte – und ein Byte kann 256 verschiedene Werte darstellen (2⁸ = 256).

🔍 Ein Byte = 8 Bits – Beispiel: Buchstabe "A" = 01000001

0Bit 7
1Bit 6
0Bit 5
0Bit 4
0Bit 3
0Bit 2
0Bit 1
1Bit 0

0×128 + 1×64 + 0×32 + 0×16 + 0×8 + 0×4 + 0×2 + 1×1 = 65 → ASCII-Code für „A"

🔍 Datengrößen im Überblick

1 Bit
kleinste Einheit 0 oder 1
1 Byte
8 Bits 1 Zeichen, z. B. „A"
1 KB
1.024 Bytes eine kurze E-Mail
1 MB
1.024 KB ein Foto (~1 MB), ein Lied (~4 MB)
1 GB
1.024 MB ~250 Fotos, ein Film in SD
1 TB
1.024 GB typische Laptop-Festplatte
2
Wie funktioniert das Internet?
IP-Adressen, DNS, HTTP und der Weg einer Webseite zu dir

Was ist das Internet überhaupt?

Das Internet ist ein weltweites Netzwerk von Netzwerken – Milliarden von Geräten, die über Kabel, Glasfaser und Funk miteinander verbunden sind. Jedes Gerät hat eine eindeutige Adresse: die IP-Adresse.

🏙️ Analogie: Internet = Postsystem
Jedes Haus hat eine Adresse (= IP-Adresse). Briefe werden in kleine Pakete aufgeteilt, einzeln verschickt und am Zielort wieder zusammengesetzt (= TCP/IP). Das Postamt leitet weiter (= Router). Das Telefonbuch kennt alle Adressen (= DNS).

🔍 IP-Adressen & Netzwerk-Topologie

☁️ Internet Milliarden Pakete 🔀 Router 🔀 Router 💻 Laptop 192.168.1.10 📱 Smartphone 192.168.1.11 🖧 Web-Server 185.120.60.45 🗄️ Datenbank 10.0.0.5 (intern) CLIENT-SEITE SERVER-SEITE

HTTP & HTTPS – Die Sprache des Webs

HTTP (HyperText Transfer Protocol) ist das Regelwerk, nach dem Browser und Server miteinander sprechen. Jede Anfrage folgt einem festen Format: Methode, Adresse, Header, Body.

HTTPS = HTTP + Verschlüsselung (TLS). Das Schloss-Symbol im Browser zeigt: Die Verbindung ist sicher, niemand kann mitlesen.

🔍 HTTP Request & Response im Detail

🌐 BROWSER (Client) 🖧 SERVER (adesso.de) GET /index.html HTTP/1.1 ① REQUEST (Anfrage) HTTP/1.1 200 OK + HTML ② RESPONSE (Antwort) sendet: GET /seite Host: adesso.de antwortet: 200 OK <html>…</html>

Die wichtigsten HTTP-Methoden

GET – Daten abrufen

Du rufst eine Webseite auf, suchst bei Google, lädst ein Bild – alles GET. Keine Daten werden verändert, nur gelesen. Die Parameter stehen sichtbar in der URL: ?suche=adesso

POST – Daten senden / erstellen

Du füllst ein Formular aus, loggst dich ein oder schreibst einen Kommentar – das ist POST. Die Daten werden im Body der Anfrage mitgeschickt (nicht in der URL sichtbar).

PUT / PATCH – Daten aktualisieren

Du änderst deinen Benutzernamen oder bearbeitest einen Eintrag. PUT ersetzt den ganzen Eintrag, PATCH ändert nur Teile davon. Wird vor allem in APIs verwendet.

DELETE – Daten löschen

Du löschst deinen Account oder entfernst einen Eintrag. Der Server entfernt die Ressource. Zusammen mit GET, POST und PUT bildet DELETE die Basis von REST-APIs.

🔍 HTTP Status-Codes – Was antwortet der Server?

Code Kategorie Bedeutung Beispiel
200 ✅ Erfolg OK – Alles hat geklappt Seite wurde geladen
201 ✅ Erfolg Created – Ressource wurde erstellt Neuer Account angelegt
301 ↪️ Umleitung Moved Permanently – Neue URL http → https Weiterleitung
400 ❌ Client-Fehler Bad Request – Ungültige Anfrage Formular falsch ausgefüllt
401 ❌ Client-Fehler Unauthorized – Nicht eingeloggt Login erforderlich
403 ❌ Client-Fehler Forbidden – Keine Berechtigung Zugriff verweigert
404 ❌ Client-Fehler Not Found – Seite nicht gefunden Tippfehler in der URL
500 🔥 Server-Fehler Internal Server Error – Serverproblem Bug im Server-Code
🔒

HTTP vs. HTTPS

Bei HTTP werden alle Daten im Klartext übertragen – jeder im gleichen Netzwerk könnte mitlesen. HTTPS verschlüsselt alles mit TLS (Transport Layer Security). Das kleine Schloss-Symbol im Browser bedeutet: diese Verbindung ist sicher. Heute sollte jede Webseite HTTPS nutzen.

3
Sprachen & Frameworks
Was gibt es, wofür wird es verwendet – und was nutzt adesso?

Warum gibt es so viele Sprachen?

Jede Programmiersprache wurde für einen bestimmten Zweck optimiert. Python ist einfach zu lesen und gut für Datenanalyse. JavaScript läuft im Browser. Java ist plattformunabhängig und stabil für große Systeme. Es gibt keine „beste" Sprache – nur die richtige Sprache für den jeweiligen Job.

🔍 Die Software-Entwicklungs-Landschaft

🖥️ FRONTEND (Was der Nutzer sieht) JavaScript / TypeScript Interaktivität im Browser React / Vue / Angular UI-Frameworks (Komponenten) HTML + CSS Struktur + Aussehen Tailwind / Bootstrap CSS-Frameworks ⚙️ BACKEND (Logik & Daten, Server-Seite) Python KI, Daten, Web (Django/Flask) Java / Kotlin Enterprise, Spring Boot ← adesso Node.js JavaScript auf dem Server C# / .NET Microsoft-Welt ← adesso 🗄️ DATENBANK SQL (MySQL, PostgreSQL) Strukturierte Daten NoSQL (MongoDB, Redis) Flexible / schnelle Daten 📱 MOBILE Swift / Kotlin iOS / Android nativ React Native / Flutter Cross-Platform Apps 🔌 EMBEDDED (Hardware-nahe Programmierung) C / C++ Mikrocontroller, Treiber, Echtzeit Rust · Arduino · FreeRTOS

Die wichtigsten Sprachen im Detail

JavaScript / TypeScript

Frontend + Backend

Die einzige Sprache, die nativ im Browser läuft. TypeScript ist JavaScript mit Typen – verhindert viele Bugs. Mit Node.js auch auf dem Server nutzbar. Riesiges Ökosystem.

Python

Backend · KI · Data Science

Sehr leserlicher Code, ideal zum Lernen. Marktführer in KI/ML (TensorFlow, PyTorch). Web-Frameworks: Django (groß) und Flask (klein). Wird bei adesso für KI-Projekte eingesetzt.

Java

Enterprise Backend

„Write once, run anywhere" – Java läuft auf jeder Plattform. Sehr verbreitet in Unternehmen. Spring Boot ist das beliebteste Java-Framework. adesso-Kernkompetenz.

C# / .NET

Enterprise · Microsoft

Microsofts Antwort auf Java. Sehr mächtig für Windows-Anwendungen und Web-APIs (ASP.NET). Wird bei adesso in vielen Microsoft-Projekten eingesetzt.

SQL

Datenbanken

Structured Query Language – die Sprache für relationale Datenbanken. Mit SQL liest, schreibt, filtert und verknüpft man Daten. Fast jede Anwendung nutzt irgendwo SQL.

React / Angular / Vue

Frontend Frameworks

Keine Sprachen, sondern Frameworks – Bibliotheken, die das Bauen von Web-UIs strukturieren. React (Meta), Angular (Google) und Vue sind die drei dominanten Optionen.

C / C++ – Die Embedded-Welt

Embedded · Mikrocontroller · Betriebssysteme · Treiber

C und C++ sind die dominanten Sprachen der eingebetteten Systeme – also überall dort, wo Software direkt auf Hardware läuft, ohne ein „richtiges" Betriebssystem darunter: Steuergeräte im Auto, Industrieanlagen, medizinische Geräte, Router, Haushaltsgeräte. Der Code muss extrem schnell, speicherschonend und deterministisch (vorhersehbar in der Ausführungszeit) sein.

Typische Umgebungen: Arduino für Einsteiger, STM32 / ESP32 in der Industrie, FreeRTOS als Echtzeit-Betriebssystem. Rust gewinnt als moderne Alternative zu C++ zunehmend an Bedeutung, da es Speichersicherheit ohne Laufzeit-Overhead bietet. adesso ist z. B. in der Automotive-Branche aktiv, wo Embedded-Entwicklung eine zentrale Rolle spielt.

Hardwarenahe Ebenen
Treiber · Bootloader · RTOS
Typische Sprachen
C · C++ · Rust · Assembler
Besonderheit
Kein Browser, kein OS –
direkt auf dem Chip

Framework vs. Bibliothek – was ist der Unterschied?

📚

Bibliothek (Library)

Du rufst die Bibliothek auf, wenn du sie brauchst. Du hast die Kontrolle. Beispiel: moment.js für Datumsformatierung – du entscheidest, wann und wie du sie nutzt.

🏗️

Framework

Das Framework ruft deinen Code auf. Das Framework hat die Kontrolle (Inversion of Control). Beispiel: Spring Boot – du schreibst die Logik, Spring übernimmt den Rest.

🏢

Was macht adesso? – Der typische Tech-Stack

adesso ist ein IT-Dienstleister und entwickelt Software für Kunden aus vielen Branchen. Typische Technologien: Java + Spring Boot für Backend-APIs, Angular oder React für Frontends, C# / .NET für Microsoft-Projekte, SQL-Datenbanken (Oracle, PostgreSQL, MS SQL), und zunehmend Python + KI-Frameworks für intelligente Anwendungen. In der Praxis: Fast immer ein Mix aus mehreren Technologien.

Empfohlener Lernpfad für Einsteiger

1

HTML & CSS lernen

Erstelle deine erste Webseite. Verstehe Tags, Struktur und Styling. Das geht in einem Wochenende. Gute Ressource: developer.mozilla.org

2

JavaScript Grundlagen

Variablen, Funktionen, Schleifen, DOM-Manipulation. Mach deine Seite interaktiv. Plattform: javascript.info – kostenlos und hervorragend.

3

Ein Framework wählen

React ist aktuell am meisten gefragt. Alternativ: Vue für einen sanfteren Einstieg. Jetzt kannst du echte Web-Apps bauen.

4

Backend & Datenbank

Lerne Node.js oder Python für das Backend, dazu SQL für Datenbanken. Jetzt kannst du vollständige Full-Stack-Anwendungen entwickeln.

5

Git & Teamarbeit

Kein Profi arbeitet ohne Versionskontrolle. Git ermöglicht es Teams, gemeinsam am gleichen Code zu arbeiten. Lerne git commit, push, pull request.