<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Anfänger Archive - MetinCelik.de</title>
	<atom:link href="https://www.metincelik.de/tag/anfaenger/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.metincelik.de/tag/anfaenger/</link>
	<description>Tipps, Tutorials, Blog, Webentwicklung, Design, SciFi</description>
	<lastBuildDate>Sun, 15 Mar 2026 04:51:41 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>TypeScript Tutorial fuer Anfaenger 2026 – Von JS zu TS</title>
		<link>https://www.metincelik.de/tutorial/typescript-tutorial-anfaenger/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=typescript-tutorial-anfaenger</link>
		
		<dc:creator><![CDATA[MetinC]]></dc:creator>
		<pubDate>Thu, 05 Mar 2026 09:00:00 +0000</pubDate>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Anfänger]]></category>
		<category><![CDATA[Anleitung]]></category>
		<category><![CDATA[Heimwerken]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Lernen]]></category>
		<category><![CDATA[TypeScript]]></category>
		<category><![CDATA[Werkzeug]]></category>
		<guid isPermaLink="false">https://www.metincelik.de/allgemein/typescript-tutorial-anfaenger/</guid>

					<description><![CDATA[<p>TypeScript Tutorial fuer Anfaenger 2026: Von JavaScript zu TypeScript. Typen, Interfaces, Generics und praktische Beispiele fuer den Einstieg. Einleitung TypeScript ist 2026 der Standard fuer professionelle JavaScript-Entwicklung. Ueber 90% aller neuen React-, Node.js- und Next.js-Projekte nutzen TypeScript. Und das aus gutem Grund: TypeScript findet Fehler bevor dein Code laeuft. In diesem Tutorial lernst du TypeScript [&#8230;]</p>
<p>Der Beitrag <a href="https://www.metincelik.de/tutorial/typescript-tutorial-anfaenger/">TypeScript Tutorial fuer Anfaenger 2026 – Von JS zu TS</a> erschien zuerst auf <a href="https://www.metincelik.de">MetinCelik.de</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="meta-description">TypeScript Tutorial fuer Anfaenger 2026: Von JavaScript zu TypeScript. Typen, Interfaces, Generics und praktische Beispiele fuer den Einstieg.</p>



<h2 class="wp-block-heading">Einleitung</h2>



<p><strong>TypeScript</strong> ist 2026 der Standard fuer professionelle JavaScript-Entwicklung. Ueber 90% aller neuen React-, Node.js- und Next.js-Projekte nutzen TypeScript. Und das aus gutem Grund: TypeScript findet Fehler <strong>bevor</strong> dein Code laeuft.</p>



<p>In diesem Tutorial lernst du TypeScript von Grund auf – mit vielen praktischen Beispielen.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Inhaltsverzeichnis</h2>



<ol class="wp-block-list"><li><a href="#was-ts">Was ist TypeScript?</a></li><li><a href="#setup-ts">Setup &amp; Installation</a></li><li><a href="#grundtypen">Grundtypen</a></li><li><a href="#interfaces">Interfaces &amp; Type Aliases</a></li><li><a href="#funktionen-ts">Funktionen typisieren</a></li><li><a href="#generics">Generics</a></li><li><a href="#union-literal">Union Types &amp; Literal Types</a></li><li><a href="#utility">Utility Types</a></li><li><a href="#react-ts">TypeScript mit React</a></li><li><a href="#tipps-ts">Best Practices</a></li></ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="was-ts">1. Was ist TypeScript?</h2>



<p>Vor allem für den praktischen Einsatz sind diese Informationen wertvoll.</p>



<p>TypeScript ist <strong>JavaScript mit Typen</strong>. Es wird von Microsoft entwickelt und zu normalem JavaScript kompiliert. Die Vorteile:</p>



<ul class="wp-block-list"><li><strong>Fehler frueh erkennen:</strong> Type-Checker findet Bugs beim Schreiben, nicht zur Laufzeit</li><li><strong>Bessere IDE-Unterstuetzung:</strong> Ferner autovervollstaendigung, Refactoring, Go-to-Definition</li><li><strong>Selbstdokumentierend:</strong> Ebenso typen sind lebende Dokumentation</li><li><strong>Sicheres Refactoring:</strong> Aenderungen propagieren sich durch die ganze Codebasis</li><li><strong>Ecosystem:</strong> Alle grossen Libraries haben TypeScript-Typen</li></ul>



<pre class="wp-block-code"><code>// JavaScript – Fehler erst zur Laufzeit
function addiere(a, b) {
  return a + b;
}
addiere("5", 3); // "53" – kein Fehler, aber falsch!

// TypeScript – Fehler SOFORT im Editor
function addiere(a: number, b: number): number {
  return a + b;
}
addiere("5", 3); // &#x274c; Fehler: Argument of type 'string' is not assignable</code></pre>



<p>Weiterhin ist es ratsam, die Ergebnisse immer kritisch zu prüfen.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="setup-ts">2. Setup &amp; Installation</h2>



<p>Folglich profitierst du von einem besseren Verständnis dieser Konzepte.</p>



<pre class="wp-block-code"><code># TypeScript global installieren
npm install -g typescript

# Version pruefen
tsc --version

# Neues Projekt erstellen
mkdir mein-ts-projekt
cd mein-ts-projekt
npm init -y
npm install typescript --save-dev

# tsconfig.json erstellen
npx tsc --init</code></pre>



<p>Natürlich solltest du den generierten Code vor dem Einsatz testen.</p>



<h3 class="wp-block-heading">tsconfig.json (empfohlene Einstellungen)</h3>



<p>Zusammenfassend lässt sich sagen, dass dies ein zentraler Aspekt ist.</p>



<pre class="wp-block-code"><code>{
  "compilerOptions": {
    "target": "ES2022",
    "module": "ESNext",
    "moduleResolution": "bundler",
    "strict": true,
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true,
    "outDir": "./dist",
    "rootDir": "./src",
    "declaration": true
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules", "dist"]
}</code></pre>



<p>Deshalb empfiehlt es sich, den Prompt schrittweise zu verfeinern.</p>



<pre class="wp-block-code"><code># Kompilieren und ausfuehren
npx tsc                    # Kompiliert alle .ts Dateien
node dist/index.js         # Ausfuehren

# Oder mit ts-node (direkt ausfuehren)
npm install -D ts-node
npx ts-node src/index.ts</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="grundtypen">3. Grundtypen</h2>



<p>Deshalb lohnt es sich, dieses Thema genauer zu betrachten.</p>



<pre class="wp-block-code"><code>// Primitive Typen
let name: string = "Metin";
let alter: number = 30;
let istEntwickler: boolean = true;
let nichts: null = null;
let unbestimmt: undefined = undefined;

// Arrays
let sprachen: string[] = ["TypeScript", "Python", "Go"];
let zahlen: number[] = [1, 2, 3];
let gemischt: (string | number)[] = ["text", 42];

// Tuple (feste Laenge und Typen)
let person: [string, number] = ["Metin", 30];

// Enum
enum Rolle {
  Admin = "ADMIN",
  User = "USER",
  Gast = "GAST"
}
let meineRolle: Rolle = Rolle.Admin;

// Any (Vorsicht! Deaktiviert Type-Checking)
let dynamisch: any = "text";
dynamisch = 42;  // Kein Fehler – aber das ist der Sinn von TS verloren

// Unknown (sichere Alternative zu any)
let eingabe: unknown = "text";
if (typeof eingabe === "string") {
  console.log(eingabe.toUpperCase());  // Nur nach Type-Check erlaubt
}</code></pre>



<p>Dementsprechend ist eine manuelle Überprüfung empfehlenswert.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="interfaces">4. Interfaces &amp; Type Aliases</h2>



<p>Natürlich gibt es dabei verschiedene Herangehensweisen.</p>



<pre class="wp-block-code"><code>// Interface – beschreibt die Form eines Objekts
interface User {
  id: number;
  name: string;
  email: string;
  alter?: number;           // Optional (?)
  readonly erstelltAm: Date; // Nur lesbar
}

const user: User = {
  id: 1,
  name: "Metin",
  email: "metin@example.de",
  erstelltAm: new Date()
};

// Type Alias
type ID = string | number;

type Produkt = {
  id: ID;
  name: string;
  preis: number;
  kategorien: string[];
};

// Interface Extension (Vererbung)
interface Admin extends User {
  berechtigungen: string[];
  superAdmin: boolean;
}

const admin: Admin = {
  id: 1,
  name: "Metin",
  email: "metin@example.de",
  erstelltAm: new Date(),
  berechtigungen: ["users.manage", "posts.delete"],
  superAdmin: true
};

// Intersection Types
type MitTimestamp = {
  erstelltAm: Date;
  aktualisiertAm: Date;
};

type Artikel = Produkt &amp; MitTimestamp;</code></pre>



<p>Tatsächlich lässt sich dieser Code direkt in dein Projekt übernehmen.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="funktionen-ts">5. Funktionen typisieren</h2>



<p>Ebenfalls relevant sind die praktischen Anwendungsbeispiele.</p>



<pre class="wp-block-code"><code>// Grundlegende Funktion mit Typen
function addiere(a: number, b: number): number {
  return a + b;
}

// Arrow Function
const multipliziere = (a: number, b: number): number => a * b;

// Optional und Default Parameter
function begruessung(name: string, titel?: string): string {
  return titel ? `${titel} ${name}` : `Hallo ${name}`;
}

function berechneRabatt(preis: number, rabatt: number = 10): number {
  return preis * (1 - rabatt / 100);
}

// Rest Parameter
function summe(...zahlen: number[]): number {
  return zahlen.reduce((acc, z) => acc + z, 0);
}

// Function Overloads
function formatiere(wert: string): string;
function formatiere(wert: number): string;
function formatiere(wert: string | number): string {
  if (typeof wert === "string") return wert.trim();
  return wert.toFixed(2);
}

// Callback-Typen
function fetchDaten(
  url: string,
  callback: (daten: unknown, fehler?: Error) => void
): void {
  // ...
}</code></pre>



<p>Grundsätzlich kannst du diesen Prompt an deine Bedürfnisse anpassen.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="generics">6. Generics</h2>



<p>Weiterhin ist es wichtig, die Grundlagen zu verstehen.</p>



<p>Generics machen deinen Code <strong>wiederverwendbar</strong> und trotzdem <strong>typsicher</strong>:</p>



<pre class="wp-block-code"><code>// Ohne Generics – unflexibel
function erstesElement(arr: number[]): number {
  return arr[0];
}

// Mit Generics – funktioniert mit jedem Typ
function erstesElement&lt;T&gt;(arr: T[]): T | undefined {
  return arr[0];
}

erstesElement([1, 2, 3]);       // Typ: number
erstesElement(["a", "b"]);      // Typ: string

// Generisches Interface
interface ApiResponse&lt;T&gt; {
  data: T;
  status: number;
  message: string;
}

const userResponse: ApiResponse&lt;User&gt; = {
  data: { id: 1, name: "Metin", email: "m@x.de", erstelltAm: new Date() },
  status: 200,
  message: "OK"
};

// Generic Constraints
interface MitId {
  id: number;
}

function findeById&lt;T extends MitId&gt;(items: T[], id: number): T | undefined {
  return items.find(item => item.id === id);
}

// Generic Class
class Speicher&lt;T&gt; {
  private items: T[] = [];

  hinzufuegen(item: T): void { this.items.push(item); }
  alle(): T[] { return [...this.items]; }
  anzahl(): number { return this.items.length; }
}</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="union-literal">7. Union Types &amp; Literal Types</h2>



<p>Außerdem gibt es hilfreiche Tools, die dich dabei unterstützen.</p>



<pre class="wp-block-code"><code>// Union Type
type Ergebnis = string | number | null;
type Status = "aktiv" | "inaktiv" | "geloescht";

// Literal Types – exakte Werte
type HttpMethode = "GET" | "POST" | "PUT" | "DELETE";
type Richtung = "links" | "rechts" | "oben" | "unten";

function httpAnfrage(url: string, methode: HttpMethode): void {
  // methode kann nur GET, POST, PUT oder DELETE sein
}

// Discriminated Unions – maechtig!
interface Kreis {
  art: "kreis";
  radius: number;
}

interface Rechteck {
  art: "rechteck";
  breite: number;
  hoehe: number;
}

type Form = Kreis | Rechteck;

function flaeche(form: Form): number {
  switch (form.art) {
    case "kreis":
      return Math.PI * form.radius ** 2;
    case "rechteck":
      return form.breite * form.hoehe;
  }
}

// Type Narrowing
function verarbeite(wert: string | number): string {
  if (typeof wert === "string") {
    return wert.toUpperCase();  // TS weiss: wert ist string
  }
  return wert.toFixed(2);       // TS weiss: wert ist number
}</code></pre>



<p>Darüber hinaus lässt sich das Beispiel leicht erweitern.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="utility">8. Utility Types</h2>



<p>Allerdings gibt es einige wichtige Unterschiede zu beachten.</p>



<p>TypeScript bietet eingebaute Utility Types die das Leben leichter machen:</p>



<pre class="wp-block-code"><code>interface User {
  id: number;
  name: string;
  email: string;
  passwort: string;
}

// Partial – alle Felder optional
type UserUpdate = Partial&lt;User&gt;;
// { id?: number; name?: string; email?: string; passwort?: string; }

// Required – alle Felder pflicht
type StrikterUser = Required&lt;User&gt;;

// Pick – nur bestimmte Felder
type UserPreview = Pick&lt;User, "id" | "name"&gt;;
// { id: number; name: string; }

// Omit – Felder ausschliessen
type OeffentlicherUser = Omit&lt;User, "passwort"&gt;;
// { id: number; name: string; email: string; }

// Record – Key-Value Map
type UserRollen = Record&lt;string, string[]&gt;;
const rollen: UserRollen = {
  admin: ["alles"],
  editor: ["posts.edit", "posts.create"],
  viewer: ["posts.read"]
};

// Readonly
type UnveraenderlicherUser = Readonly&lt;User&gt;;

// ReturnType
function erstelleUser() {
  return { id: 1, name: "Metin" };
}
type NeuerUser = ReturnType&lt;typeof erstelleUser&gt;;
// { id: number; name: string; }</code></pre>



<p>Somit sparst du Zeit und erhältst qualitativ hochwertigeren Output.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="react-ts">9. TypeScript mit React</h2>



<p>Dabei spielen mehrere Faktoren eine wichtige Rolle.</p>



<pre class="wp-block-code"><code>// Component Props typisieren
interface ButtonProps {
  label: string;
  onClick: () => void;
  variante?: "primary" | "secondary" | "danger";
  disabled?: boolean;
  kinder?: React.ReactNode;
}

const Button: React.FC&lt;ButtonProps&gt; = ({
  label,
  onClick,
  variante = "primary",
  disabled = false
}) => {
  return (
    &lt;button
      className={`btn btn-${variante}`}
      onClick={onClick}
      disabled={disabled}
    &gt;
      {label}
    &lt;/button&gt;
  );
};

// useState mit Typen
const [user, setUser] = useState&lt;User | null&gt;(null);
const [items, setItems] = useState&lt;string[]&gt;([]);
const [count, setCount] = useState&lt;number&gt;(0);

// Event Handler
const handleChange = (e: React.ChangeEvent&lt;HTMLInputElement&gt;) => {
  setName(e.target.value);
};

const handleSubmit = (e: React.FormEvent&lt;HTMLFormElement&gt;) => {
  e.preventDefault();
  // ...
};

// Custom Hook mit Typen
function useFetch&lt;T&gt;(url: string): {
  data: T | null;
  loading: boolean;
  error: Error | null;
} {
  const [data, setData] = useState&lt;T | null&gt;(null);
  const [loading, setLoading] = useState(true);
  const [error, setError] = useState&lt;Error | null&gt;(null);

  useEffect(() => {
    fetch(url)
      .then(res => res.json())
      .then(setData)
      .catch(setError)
      .finally(() => setLoading(false));
  }, [url]);

  return { data, loading, error };
}</code></pre>



<p>Dabei zeigt dieses Beispiel den grundlegenden Ansatz.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="tipps-ts">10. Best Practices</h2>



<p>Im Folgenden findest du alle wichtigen Details dazu.</p>



<ul class="wp-block-list"><li><strong>Strict Mode aktivieren:</strong> <code>"strict": true</code> in tsconfig.json</li><li><strong>Kein <code>any</code>:</strong> Nutze <code>unknown</code> stattdessen</li><li><strong>Interface fuer Objekte:</strong> Zusätzlich type Alias fuer Unions und Primitives</li><li><strong>Generics nutzen:</strong> Ferner fuer wiederverwendbare Funktionen und Klassen</li><li><strong>Utility Types:</strong> Ebenfalls partial, Pick, Omit statt neue Interfaces</li><li><strong>Type Narrowing:</strong> typeof, instanceof, Discriminated Unions</li><li><strong>AI nutzen:</strong> <a href="/kuenstliche-intelligenz/die-besten-ai-coding-tools-2026/">GitHub Copilot</a> generiert TypeScript-Typen automatisch</li></ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Naechste Schritte</h2>



<p>Dennoch solltest du einige Besonderheiten beachten.</p>



<ul class="wp-block-list"><li><strong>Praxiskurs:</strong> Nimm einen <a href="/online-kurse/beste-javascript-kurse-udemy/">TypeScript-Kurs auf Udemy</a></li><li><strong>React + TypeScript:</strong> Ebenso lerne React mit TypeScript im <a href="/online-kurse/beste-react-kurse-udemy/">React-Kurs</a></li><li><strong>AI fuer TypeScript:</strong> Lies unseren Guide zu <a href="/kuenstliche-intelligenz/ai-fuer-typescript/">AI fuer TypeScript-Entwicklung</a></li><li><strong>REST APIs:</strong> Bau typsichere APIs mit unserem <a href="/tutorials/rest-api-tutorial-anfaenger/">REST API Tutorial</a></li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>Tipp:</strong> <strong>GitHub Copilot</strong> ist besonders stark mit TypeScript – es versteht deine Typen und generiert passenden Code. Zusammen mit VS Code hast du die beste TypeScript-Entwicklungsumgebung.</p></blockquote>

<p>Der Beitrag <a href="https://www.metincelik.de/tutorial/typescript-tutorial-anfaenger/">TypeScript Tutorial fuer Anfaenger 2026 – Von JS zu TS</a> erschien zuerst auf <a href="https://www.metincelik.de">MetinCelik.de</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Docker Tutorial fuer Anfaenger 2026 – Container verstehen</title>
		<link>https://www.metincelik.de/tutorial/docker-tutorial-anfaenger/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=docker-tutorial-anfaenger</link>
		
		<dc:creator><![CDATA[MetinC]]></dc:creator>
		<pubDate>Wed, 04 Mar 2026 14:00:00 +0000</pubDate>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Anfänger]]></category>
		<category><![CDATA[Anleitung]]></category>
		<category><![CDATA[Container]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Heimwerken]]></category>
		<category><![CDATA[Lernen]]></category>
		<category><![CDATA[Werkzeug]]></category>
		<guid isPermaLink="false">https://www.metincelik.de/allgemein/docker-tutorial-anfaenger/</guid>

					<description><![CDATA[<p>Docker Tutorial fuer Anfaenger 2026: Container-Grundlagen, Dockerfile schreiben, Docker Compose fuer Multi-Container-Apps. Praktische Beispiele Schritt fuer Schritt. Einleitung Docker hat die Art wie wir Software entwickeln und deployen revolutioniert. Container machen deine App ueberall lauffaehig – egal ob auf deinem Laptop, im CI/CD-System oder in der Cloud. In diesem Tutorial lernst du Docker von Grund [&#8230;]</p>
<p>Der Beitrag <a href="https://www.metincelik.de/tutorial/docker-tutorial-anfaenger/">Docker Tutorial fuer Anfaenger 2026 – Container verstehen</a> erschien zuerst auf <a href="https://www.metincelik.de">MetinCelik.de</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="meta-description">Docker Tutorial fuer Anfaenger 2026: Container-Grundlagen, Dockerfile schreiben, Docker Compose fuer Multi-Container-Apps. Praktische Beispiele Schritt fuer Schritt.</p>



<h2 class="wp-block-heading">Einleitung</h2>



<p><strong>Docker</strong> hat die Art wie wir Software entwickeln und deployen revolutioniert. Container machen deine App ueberall lauffaehig – egal ob auf deinem Laptop, im CI/CD-System oder in der Cloud.</p>



<p>In diesem Tutorial lernst du Docker von Grund auf: <strong>Was sind Container?</strong> Wie schreibst du ein <strong>Dockerfile</strong>? Wie nutzt du <strong>Docker Compose</strong> fuer Multi-Container-Apps? Alles mit praktischen Beispielen.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Inhaltsverzeichnis</h2>



<ol class="wp-block-list"><li><a href="#was-ist-docker">Was ist Docker?</a></li><li><a href="#install-docker">Installation</a></li><li><a href="#erste-container">Erste Container starten</a></li><li><a href="#dockerfile">Dockerfile schreiben</a></li><li><a href="#images">Images bauen und verwalten</a></li><li><a href="#volumes">Volumes &amp; Persistenz</a></li><li><a href="#networking">Docker Networking</a></li><li><a href="#compose">Docker Compose</a></li><li><a href="#best-practices">Best Practices</a></li><li><a href="#naechste">Naechste Schritte</a></li></ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="was-ist-docker">1. Was ist Docker?</h2>



<p>Somit kannst du direkt mit der Umsetzung beginnen.</p>



<p>Docker packt deine Anwendung zusammen mit <strong>allen Abhaengigkeiten</strong> in einen Container. Dieser Container laeuft ueberall identisch – kein &#8222;Works on my machine&#8220; mehr.</p>



<ul class="wp-block-list"><li><strong>Image:</strong> Die Vorlage (Bauplan) fuer einen Container</li><li><strong>Container:</strong> Eine laufende Instanz eines Images</li><li><strong>Dockerfile:</strong> Das Rezept zum Bauen eines Images</li><li><strong>Registry:</strong> Speicherort fuer Images (Docker Hub, GitHub Container Registry)</li></ul>



<h3 class="wp-block-heading">Docker vs. Virtuelle Maschinen</h3>



<p>Folglich profitierst du von einem besseren Verständnis dieser Konzepte.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Eigenschaft</th><th>Docker</th><th>VM</th></tr></thead><tbody><tr><td>Start-Zeit</td><td>Sekunden</td><td>Minuten</td></tr><tr><td>Speicher</td><td>MBs</td><td>GBs</td></tr><tr><td>OS</td><td>Teilt Host-Kernel</td><td>Eigenes OS</td></tr><tr><td>Isolation</td><td>Prozess-Level</td><td>Hardware-Level</td></tr><tr><td>Performance</td><td>Nah an nativ</td><td>Overhead</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="install-docker">2. Docker installieren</h2>



<h3 class="wp-block-heading">Windows &amp; macOS</h3>



<p>Im Grunde vereinfacht dieser Ansatz den gesamten Workflow erheblich.</p>



<p>Installiere <strong>Docker Desktop</strong> von <a href="https://docker.com/products/docker-desktop" target="_blank" rel="nofollow noopener">docker.com</a>. Enthaelt Docker Engine, CLI und Docker Compose.</p>



<h3 class="wp-block-heading">Linux (Ubuntu)</h3>



<p>Tatsächlich ist dieser Bereich besonders wichtig für Entwickler.</p>



<pre class="wp-block-code"><code># Docker installieren
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

# Docker ohne sudo nutzen
sudo usermod -aG docker $USER

# Version pruefen
docker --version
docker compose version</code></pre>



<p>Dementsprechend ist eine manuelle Überprüfung empfehlenswert.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="erste-container">3. Erste Container starten</h2>



<p>Allerdings gibt es einige wichtige Unterschiede zu beachten.</p>



<pre class="wp-block-code"><code># Hello World – teste ob Docker funktioniert
docker run hello-world

# Nginx Webserver starten
docker run -d -p 8080:80 --name mein-nginx nginx
# Oeffne http://localhost:8080 im Browser

# Laufende Container anzeigen
docker ps

# Alle Container anzeigen (auch gestoppte)
docker ps -a

# Container stoppen und entfernen
docker stop mein-nginx
docker rm mein-nginx

# In einen Container "reingehen"
docker run -it ubuntu bash
# Du bist jetzt in einem Ubuntu-Container!
# exit zum Verlassen</code></pre>



<p>Folglich erhältst du mit diesem Ansatz deutlich bessere Resultate.</p>



<h3 class="wp-block-heading">Wichtige Docker-Befehle</h3>



<p>Natürlich gibt es dabei verschiedene Herangehensweisen.</p>



<pre class="wp-block-code"><code># Images auflisten
docker images

# Image herunterladen
docker pull python:3.12

# Container-Logs anzeigen
docker logs mein-nginx

# Container-Details
docker inspect mein-nginx

# Alle gestoppten Container entfernen
docker container prune

# Alle ungenutzten Images entfernen
docker image prune -a</code></pre>



<p>Natürlich solltest du den generierten Code vor dem Einsatz testen.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="dockerfile">4. Dockerfile schreiben</h2>



<p>Grundsätzlich gibt es dabei einige Punkte zu beachten.</p>



<p>Ein Dockerfile definiert wie dein Image gebaut wird. Hier ein Beispiel fuer eine <strong>Python Flask App</strong>:</p>



<pre class="wp-block-code"><code># Dockerfile
FROM python:3.12-slim

# Arbeitsverzeichnis setzen
WORKDIR /app

# Dependencies zuerst kopieren (Docker Layer Caching)
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# App-Code kopieren
COPY . .

# Port freigeben
EXPOSE 5000

# App starten
CMD ["python", "app.py"]</code></pre>



<p>Und fuer eine <strong>Node.js Express App</strong>:</p>



<pre class="wp-block-code"><code># Dockerfile
FROM node:20-alpine

WORKDIR /app

# Package Files zuerst (Caching!)
COPY package*.json ./
RUN npm ci --only=production

COPY . .

EXPOSE 3000

# Non-Root User (Security!)
USER node

CMD ["node", "server.js"]</code></pre>



<p>Grundsätzlich kannst du diesen Prompt an deine Bedürfnisse anpassen.</p>



<h3 class="wp-block-heading">Image bauen und starten</h3>



<p>Dennoch solltest du einige Besonderheiten beachten.</p>



<pre class="wp-block-code"><code># Image bauen
docker build -t meine-app:1.0 .

# Container starten
docker run -d -p 3000:3000 --name app meine-app:1.0

# Image taggen und pushen
docker tag meine-app:1.0 username/meine-app:1.0
docker push username/meine-app:1.0</code></pre>



<p>Außerdem kannst du den Prompt für verschiedene Programmiersprachen anpassen.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="volumes">5. Volumes – Daten persistent speichern</h2>



<p>Darüber hinaus bietet dieser Abschnitt konkrete Beispiele und Tipps.</p>



<p>Container sind <strong>ephemeral</strong> – wenn du sie loeschst, sind die Daten weg. Volumes speichern Daten ausserhalb des Containers:</p>



<pre class="wp-block-code"><code># Named Volume erstellen
docker volume create app-daten

# Container mit Volume starten
docker run -d \
  -v app-daten:/data \
  --name db \
  postgres:16

# Bind Mount (lokaler Ordner)
docker run -d \
  -v $(pwd)/src:/app/src \
  -p 3000:3000 \
  meine-app:1.0

# Volumes auflisten
docker volume ls</code></pre>



<p>Dabei zeigt dieses Beispiel den grundlegenden Ansatz.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="networking">6. Docker Networking</h2>



<p>Weiterhin ist es wichtig, die Grundlagen zu verstehen.</p>



<pre class="wp-block-code"><code># Netzwerk erstellen
docker network create mein-netzwerk

# Container im gleichen Netzwerk
docker run -d --network mein-netzwerk --name api meine-api
docker run -d --network mein-netzwerk --name db postgres:16

# Container "api" kann jetzt "db" per Hostname erreichen:
# postgres://db:5432/mydb</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="compose">7. Docker Compose – Multi-Container-Apps</h2>



<p>Insbesondere für den Einstieg sind die folgenden Informationen hilfreich.</p>



<p>Docker Compose definiert Multi-Container-Apps in einer <strong>YAML-Datei</strong>. Hier ein komplettes Beispiel:</p>



<pre class="wp-block-code"><code># docker-compose.yml
version: '3.8'

services:
  # Frontend (React)
  frontend:
    build: ./frontend
    ports:
      - "3000:3000"
    depends_on:
      - api
    environment:
      - REACT_APP_API_URL=http://localhost:5000

  # Backend API (Python Flask)
  api:
    build: ./backend
    ports:
      - "5000:5000"
    depends_on:
      - db
      - redis
    environment:
      - DATABASE_URL=postgresql://user:pass@db:5432/mydb
      - REDIS_URL=redis://redis:6379
    volumes:
      - ./backend:/app  # Hot Reload fuer Development

  # Datenbank
  db:
    image: postgres:16
    environment:
      - POSTGRES_USER=user
      - POSTGRES_PASSWORD=pass
      - POSTGRES_DB=mydb
    volumes:
      - postgres-data:/var/lib/postgresql/data
    ports:
      - "5432:5432"

  # Cache
  redis:
    image: redis:7-alpine
    ports:
      - "6379:6379"

volumes:
  postgres-data:</code></pre>



<p>Weiterhin ist es ratsam, die Ergebnisse immer kritisch zu prüfen.</p>



<h3 class="wp-block-heading">Docker Compose Befehle</h3>



<p>Ebenfalls relevant sind die praktischen Anwendungsbeispiele.</p>



<pre class="wp-block-code"><code># Alle Services starten
docker compose up -d

# Logs anzeigen
docker compose logs -f

# Status anzeigen
docker compose ps

# Alle Services stoppen
docker compose down

# Stoppen und Volumes loeschen
docker compose down -v

# Nur einen Service neustarten
docker compose restart api

# Images neu bauen
docker compose build</code></pre>



<p>Somit sparst du Zeit und erhältst qualitativ hochwertigeren Output.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="best-practices">8. Docker Best Practices</h2>



<p>Ebenso wichtig ist es, die Best Practices zu kennen.</p>



<ul class="wp-block-list"><li><strong>Kleine Base Images:</strong> Nutze <code>-alpine</code> oder <code>-slim</code> Varianten</li><li><strong>Multi-Stage Builds:</strong> Zusätzlich trenne Build- und Runtime-Umgebung</li><li><strong>Non-Root User:</strong> Ebenfalls fuehre Container nie als Root aus</li><li><strong>Layer Caching:</strong> Besonders cOPY package.json VOR dem App-Code</li><li><strong>.dockerignore:</strong> Schliesse node_modules, .git, .env aus</li><li><strong>Health Checks:</strong> Definiere HEALTHCHECK im Dockerfile</li><li><strong>Keine Secrets im Image:</strong> Nutze Environment Variables oder Docker Secrets</li></ul>



<h3 class="wp-block-heading">Multi-Stage Build Beispiel</h3>



<p>Außerdem gibt es hilfreiche Tools, die dich dabei unterstützen.</p>



<pre class="wp-block-code"><code># Stage 1: Build
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build

# Stage 2: Production
FROM nginx:alpine
COPY --from=builder /app/dist /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]</code></pre>



<p>Deshalb empfiehlt es sich, den Prompt schrittweise zu verfeinern.</p>



<p>Ergebnis: Ein winziges Nginx-Image mit nur den statischen Build-Dateien statt eines grossen Node.js-Images.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="naechste">9. Naechste Schritte</h2>



<p>Deshalb lohnt es sich, dieses Thema genauer zu betrachten.</p>



<ul class="wp-block-list"><li><strong>Kubernetes lernen:</strong> Nimm einen <a href="/online-kurse/beste-docker-kubernetes-kurse-udemy/">Docker/Kubernetes Kurs</a></li><li><strong>CI/CD:</strong> Ebenfalls nutze Docker in <a href="/kuenstliche-intelligenz/ai-fuer-devops-ci-cd/">CI/CD Pipelines</a> mit GitHub Actions</li><li><strong>Cloud Deployment:</strong> Deploye auf AWS ECS, Google Cloud Run oder <a href="/hosting-und-devops/beste-aws-kurse-udemy/">AWS</a></li><li><strong>AI-Tools:</strong> Lass <a href="/kuenstliche-intelligenz/die-besten-ai-coding-tools-2026/">ChatGPT oder GitHub Copilot</a> Dockerfiles fuer dich generieren</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>Profi-Tipp:</strong> Nutze AI-Tools wie ChatGPT Plus um Dockerfiles und docker-compose.yml Dateien zu generieren. Beschreibe einfach deinen Tech-Stack und du bekommst eine optimierte Konfiguration.</p></blockquote>

<p>Der Beitrag <a href="https://www.metincelik.de/tutorial/docker-tutorial-anfaenger/">Docker Tutorial fuer Anfaenger 2026 – Container verstehen</a> erschien zuerst auf <a href="https://www.metincelik.de">MetinCelik.de</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Git Tutorial fuer Anfaenger 2026 – Alle wichtigen Befehle</title>
		<link>https://www.metincelik.de/tutorial/git-tutorial-anfaenger/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=git-tutorial-anfaenger</link>
		
		<dc:creator><![CDATA[MetinC]]></dc:creator>
		<pubDate>Wed, 04 Mar 2026 09:00:00 +0000</pubDate>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Anfänger]]></category>
		<category><![CDATA[Anleitung]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[Heimwerken]]></category>
		<category><![CDATA[Lernen]]></category>
		<category><![CDATA[Versionskontrolle]]></category>
		<category><![CDATA[Werkzeug]]></category>
		<guid isPermaLink="false">https://www.metincelik.de/allgemein/git-tutorial-anfaenger/</guid>

					<description><![CDATA[<p>Git Tutorial fuer Anfaenger 2026: Von der Installation bis zu Branches, Merges und Pull Requests. Alle wichtigen Git-Befehle mit praktischen Beispielen. Einleitung Git ist das wichtigste Werkzeug fuer jeden Entwickler. Egal ob du alleine oder im Team arbeitest – ohne Versionskontrolle geht nichts. In diesem Tutorial lernst du Git von der Installation bis zum professionellen [&#8230;]</p>
<p>Der Beitrag <a href="https://www.metincelik.de/tutorial/git-tutorial-anfaenger/">Git Tutorial fuer Anfaenger 2026 – Alle wichtigen Befehle</a> erschien zuerst auf <a href="https://www.metincelik.de">MetinCelik.de</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="meta-description">Git Tutorial fuer Anfaenger 2026: Von der Installation bis zu Branches, Merges und Pull Requests. Alle wichtigen Git-Befehle mit praktischen Beispielen.</p>



<h2 class="wp-block-heading">Einleitung</h2>



<p><strong>Git</strong> ist das wichtigste Werkzeug fuer jeden Entwickler. Egal ob du alleine oder im Team arbeitest – ohne Versionskontrolle geht nichts. In diesem Tutorial lernst du Git von der Installation bis zum professionellen Workflow mit <strong>Branches</strong>, <strong>Merges</strong> und <strong>Pull Requests</strong>.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Inhaltsverzeichnis</h2>



<ol class="wp-block-list"><li><a href="#was-ist-git">Was ist Git?</a></li><li><a href="#installation-git">Installation</a></li><li><a href="#grundbefehle">Grundbefehle</a></li><li><a href="#branches">Branches</a></li><li><a href="#remote">GitHub &amp; Remote Repos</a></li><li><a href="#workflow">Professioneller Workflow</a></li><li><a href="#konflikte">Merge-Konflikte loesen</a></li><li><a href="#git-tipps">Profi-Tipps</a></li><li><a href="#cheatsheet">Git Cheat Sheet</a></li></ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="was-ist-git">1. Was ist Git?</h2>



<p>Grundsätzlich gibt es dabei einige Punkte zu beachten.</p>



<p>Git ist ein <strong>verteiltes Versionskontrollsystem</strong>. Es speichert jeden Aenderungsstand deines Codes als &#8222;Commit&#8220; – du kannst jederzeit zu einem frueheren Stand zurueckkehren, parallel an Features arbeiten und mit anderen Entwicklern zusammenarbeiten.</p>



<ul class="wp-block-list"><li><strong>Versionskontrolle:</strong> Jede Aenderung wird gespeichert</li><li><strong>Branches:</strong> Darüber hinaus parallel an verschiedenen Features arbeiten</li><li><strong>Zusammenarbeit:</strong> Mit Teams ueber GitHub, GitLab, Bitbucket</li><li><strong>Backup:</strong> Dein Code ist sicher in der Cloud</li><li><strong>Standard:</strong> 95%+ aller Software-Projekte nutzen Git</li></ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="installation-git">2. Installation</h2>



<h3 class="wp-block-heading">Windows</h3>



<p>Vor allem für den praktischen Einsatz sind diese Informationen wertvoll.</p>



<pre class="wp-block-code"><code># Git for Windows herunterladen
# https://git-scm.com/download/win
# Oder mit winget:
winget install Git.Git</code></pre>



<p>Insbesondere die Struktur des Prompts ist dabei entscheidend für gute Ergebnisse.</p>



<h3 class="wp-block-heading">macOS</h3>



<p>Dementsprechend solltest du die folgenden Aspekte kennen.</p>



<pre class="wp-block-code"><code>brew install git</code></pre>



<p>Außerdem kannst du den Prompt für verschiedene Programmiersprachen anpassen.</p>



<h3 class="wp-block-heading">Linux</h3>



<p>Weiterhin ist es wichtig, die Grundlagen zu verstehen.</p>



<pre class="wp-block-code"><code>sudo apt install git</code></pre>



<p>Weiterhin ist es ratsam, die Ergebnisse immer kritisch zu prüfen.</p>



<h3 class="wp-block-heading">Konfiguration</h3>



<p>Insbesondere für den Einstieg sind die folgenden Informationen hilfreich.</p>



<pre class="wp-block-code"><code># Name und E-Mail setzen (wird in Commits angezeigt)
git config --global user.name "Dein Name"
git config --global user.email "deine@email.de"

# Default Branch auf "main" setzen
git config --global init.defaultBranch main

# Konfiguration pruefen
git config --list</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="grundbefehle">3. Grundbefehle</h2>



<h3 class="wp-block-heading">Repository erstellen</h3>



<p>Natürlich gibt es dabei verschiedene Herangehensweisen.</p>



<pre class="wp-block-code"><code># Neues Git-Repository erstellen
mkdir mein-projekt
cd mein-projekt
git init

# Oder bestehendes Repository klonen
git clone https://github.com/user/repo.git</code></pre>



<p>Dementsprechend ist eine manuelle Überprüfung empfehlenswert.</p>



<h3 class="wp-block-heading">Dateien tracken und committen</h3>



<p>Dabei spielen mehrere Faktoren eine wichtige Rolle.</p>



<pre class="wp-block-code"><code># Status anzeigen
git status

# Datei zum Staging hinzufuegen
git add index.html
git add .              # Alle Dateien hinzufuegen

# Commit erstellen
git commit -m "Erste Version der Webseite"

# Commit-History anzeigen
git log
git log --oneline      # Kompakte Ansicht
git log --graph        # Mit Branch-Grafik</code></pre>



<p>Folglich erhältst du mit diesem Ansatz deutlich bessere Resultate.</p>



<h3 class="wp-block-heading">Aenderungen rueckgaengig machen</h3>



<p>Folglich profitierst du von einem besseren Verständnis dieser Konzepte.</p>



<pre class="wp-block-code"><code># Unstaged Aenderungen verwerfen
git checkout -- datei.txt
git restore datei.txt          # Neue Syntax

# Staging rueckgaengig (Datei bleibt geaendert)
git reset HEAD datei.txt
git restore --staged datei.txt # Neue Syntax

# Letzten Commit aendern
git commit --amend -m "Korrigierte Nachricht"

# Commit rueckgaengig (neuer Revert-Commit)
git revert abc1234</code></pre>



<p>Natürlich solltest du den generierten Code vor dem Einsatz testen.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="branches">4. Branches – Parallel arbeiten</h2>



<p>Im Grunde vereinfacht dieser Ansatz den gesamten Workflow erheblich.</p>



<p>Branches sind das maechtigste Feature von Git. Damit arbeitest du an Features, ohne den Hauptcode zu beruehren:</p>



<pre class="wp-block-code"><code># Alle Branches anzeigen
git branch

# Neuen Branch erstellen und wechseln
git checkout -b feature/login
# Oder neue Syntax:
git switch -c feature/login

# Zwischen Branches wechseln
git switch main
git switch feature/login

# Branch mergen
git switch main
git merge feature/login

# Branch loeschen
git branch -d feature/login</code></pre>



<h3 class="wp-block-heading">Branch-Namenskonventionen</h3>



<p>Im Folgenden findest du alle wichtigen Details dazu.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Prefix</th><th>Zweck</th><th>Beispiel</th></tr></thead><tbody><tr><td>feature/</td><td>Neue Features</td><td>feature/user-login</td></tr><tr><td>bugfix/</td><td>Bugfixes</td><td>bugfix/login-crash</td></tr><tr><td>hotfix/</td><td>Dringende Fixes</td><td>hotfix/security-patch</td></tr><tr><td>release/</td><td>Release-Vorbereitung</td><td>release/v2.0</td></tr><tr><td>chore/</td><td>Aufgaben, Cleanup</td><td>chore/update-deps</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="remote">5. GitHub &amp; Remote Repositories</h2>



<p>Ebenfalls relevant sind die praktischen Anwendungsbeispiele.</p>



<pre class="wp-block-code"><code># Remote hinzufuegen
git remote add origin https://github.com/user/repo.git

# Zum Remote pushen
git push -u origin main        # Erster Push
git push                        # Danach reicht das

# Aenderungen vom Remote holen
git pull                        # Fetch + Merge
git fetch                       # Nur holen, nicht mergen

# Remote Branches anzeigen
git branch -r</code></pre>



<p>Somit sparst du Zeit und erhältst qualitativ hochwertigeren Output.</p>



<h3 class="wp-block-heading">SSH-Key einrichten (empfohlen)</h3>



<p>Allerdings gibt es einige wichtige Unterschiede zu beachten.</p>



<pre class="wp-block-code"><code># SSH-Key generieren
ssh-keygen -t ed25519 -C "deine@email.de"

# Public Key anzeigen und auf GitHub einfuegen
cat ~/.ssh/id_ed25519.pub
# -> GitHub Settings -> SSH and GPG Keys -> New SSH Key</code></pre>



<p>Dabei zeigt dieses Beispiel den grundlegenden Ansatz.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="workflow">6. Professioneller Git-Workflow</h2>



<p>Darüber hinaus bietet dieser Abschnitt konkrete Beispiele und Tipps.</p>



<p>So arbeiten professionelle Teams mit Git:</p>



<ol class="wp-block-list"><li><strong>Branch erstellen:</strong> <code>git switch -c feature/neues-feature</code></li><li><strong>Code schreiben:</strong> Aenderungen machen und testen</li><li><strong>Commits machen:</strong> Kleine, logische Commits mit guten Messages</li><li><strong>Pushen:</strong> <code>git push -u origin feature/neues-feature</code></li><li><strong>Pull Request erstellen:</strong> Auf GitHub/GitLab einen PR oeffnen</li><li><strong>Code Review:</strong> Team-Mitglieder pruefen den Code</li><li><strong>Merge:</strong> Nach Approval wird der PR gemerged</li><li><strong>Branch loeschen:</strong> Feature-Branch aufraenmen</li></ol>



<h3 class="wp-block-heading">Gute Commit-Messages</h3>



<p>Ebenso wichtig ist es, die Best Practices zu kennen.</p>



<pre class="wp-block-code"><code># SCHLECHT &#x274c;
git commit -m "fix"
git commit -m "update"
git commit -m "stuff"

# GUT &#x2705;
git commit -m "feat: Login-Formular mit Validierung hinzugefuegt"
git commit -m "fix: Passwort-Reset Email wird jetzt korrekt gesendet"
git commit -m "docs: README mit Setup-Anleitung aktualisiert"
git commit -m "refactor: User-Service in eigenes Modul ausgelagert"</code></pre>



<p>Grundsätzlich kannst du diesen Prompt an deine Bedürfnisse anpassen.</p>



<p>Folge der <strong>Conventional Commits</strong> Konvention: <code>type: beschreibung</code></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="konflikte">7. Merge-Konflikte loesen</h2>



<p>Somit kannst du direkt mit der Umsetzung beginnen.</p>



<p>Merge-Konflikte entstehen wenn zwei Branches die gleiche Stelle aendern:</p>



<pre class="wp-block-code"><code># Konflikt sieht so aus:
&lt;&lt;&lt;&lt;&lt;&lt;&lt; HEAD
const titel = "Alt";
=======
const titel = "Neu";
&gt;&gt;&gt;&gt;&gt;&gt;&gt; feature/neuer-titel

# Loesung:
# 1. Datei oeffnen
# 2. Konflikt-Markierungen entfernen
# 3. Gewuenschten Code behalten
# 4. Datei speichern
# 5. git add und git commit

const titel = "Neu";  # Entscheidung treffen

git add datei.js
git commit -m "fix: Merge-Konflikt in titel geloest"</code></pre>



<p><strong>Tipp:</strong> Nutze <a href="/kuenstliche-intelligenz/die-besten-ai-coding-tools-2026/">AI-Tools</a> um Merge-Konflikte zu verstehen und zu loesen. <strong>GitHub Copilot</strong> kann Konflikte direkt in VS Code analysieren.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="git-tipps">8. Profi-Tipps</h2>



<h3 class="wp-block-heading">.gitignore einrichten</h3>



<p>Tatsächlich ist dieser Bereich besonders wichtig für Entwickler.</p>



<pre class="wp-block-code"><code># .gitignore
node_modules/
.env
*.log
dist/
.DS_Store
__pycache__/
.vscode/settings.json</code></pre>



<p>Vor allem die detaillierten Anweisungen sorgen für präzisere Ergebnisse.</p>



<h3 class="wp-block-heading">Git Stash – Aenderungen zwischenspeichern</h3>



<p>Deshalb lohnt es sich, dieses Thema genauer zu betrachten.</p>



<pre class="wp-block-code"><code># Aenderungen zwischenspeichern
git stash

# Zwischengespeichertes wiederherstellen
git stash pop

# Stash-Liste anzeigen
git stash list</code></pre>



<p>Tatsächlich lässt sich dieser Code direkt in dein Projekt übernehmen.</p>



<h3 class="wp-block-heading">Git Aliases</h3>



<p>Dennoch solltest du einige Besonderheiten beachten.</p>



<pre class="wp-block-code"><code>git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.st status
git config --global alias.lg "log --oneline --graph --all"

# Jetzt: git st statt git status</code></pre>



<p>Darüber hinaus lässt sich das Beispiel leicht erweitern.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="cheatsheet">9. Git Cheat Sheet</h2>



<p>Zusammenfassend lässt sich sagen, dass dies ein zentraler Aspekt ist.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Befehl</th><th>Beschreibung</th></tr></thead><tbody><tr><td><code>git init</code></td><td>Neues Repository erstellen</td></tr><tr><td><code>git clone URL</code></td><td>Repository klonen</td></tr><tr><td><code>git status</code></td><td>Status anzeigen</td></tr><tr><td><code>git add .</code></td><td>Alle Dateien stagen</td></tr><tr><td><code>git commit -m "msg"</code></td><td>Commit erstellen</td></tr><tr><td><code>git push</code></td><td>Zum Remote pushen</td></tr><tr><td><code>git pull</code></td><td>Vom Remote pullen</td></tr><tr><td><code>git switch -c name</code></td><td>Neuen Branch erstellen</td></tr><tr><td><code>git merge branch</code></td><td>Branch mergen</td></tr><tr><td><code>git log --oneline</code></td><td>Commit-History</td></tr><tr><td><code>git stash</code></td><td>Aenderungen zwischenspeichern</td></tr><tr><td><code>git diff</code></td><td>Aenderungen anzeigen</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Naechste Schritte</h2>



<p>Außerdem gibt es hilfreiche Tools, die dich dabei unterstützen.</p>



<ul class="wp-block-list"><li><strong>Git-Workflow vertiefen:</strong> Lies unseren Artikel <a href="/kuenstliche-intelligenz/git-workflow-mit-ai/">Git Workflow mit AI</a></li><li><strong>GitHub Actions:</strong> Insbesondere automatisiere Tests und Deployments mit <a href="/kuenstliche-intelligenz/ai-fuer-devops-ci-cd/">CI/CD und AI</a></li><li><strong>AI-Tools:</strong> Nutze <a href="/kuenstliche-intelligenz/die-besten-ai-coding-tools-2026/">GitHub Copilot</a> fuer bessere Commit-Messages und Branch-Management</li></ul>

<p>Der Beitrag <a href="https://www.metincelik.de/tutorial/git-tutorial-anfaenger/">Git Tutorial fuer Anfaenger 2026 – Alle wichtigen Befehle</a> erschien zuerst auf <a href="https://www.metincelik.de">MetinCelik.de</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Python Tutorial fuer Anfaenger 2026 – Schritt fuer Schritt</title>
		<link>https://www.metincelik.de/tutorial/python-tutorial-anfaenger/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=python-tutorial-anfaenger</link>
		
		<dc:creator><![CDATA[MetinC]]></dc:creator>
		<pubDate>Tue, 03 Mar 2026 14:00:00 +0000</pubDate>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Anfänger]]></category>
		<category><![CDATA[Anleitung]]></category>
		<category><![CDATA[Heimwerken]]></category>
		<category><![CDATA[Lernen]]></category>
		<category><![CDATA[Programmieren lernen]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Werkzeug]]></category>
		<guid isPermaLink="false">https://www.metincelik.de/allgemein/python-tutorial-anfaenger/</guid>

					<description><![CDATA[<p>Python fuer Anfaenger 2026: Komplettes Tutorial von der Installation bis zum ersten Projekt. Variablen, Funktionen, OOP und praktische Beispiele. Einleitung Du willst Python lernen? Gute Entscheidung! Python ist die vielseitigste und einsteigerfreundlichste Programmiersprache 2026. In diesem Tutorial lernst du Python von der Installation bis zum ersten eigenen Projekt – Schritt fuer Schritt. Dieses Tutorial richtet [&#8230;]</p>
<p>Der Beitrag <a href="https://www.metincelik.de/tutorial/python-tutorial-anfaenger/">Python Tutorial fuer Anfaenger 2026 – Schritt fuer Schritt</a> erschien zuerst auf <a href="https://www.metincelik.de">MetinCelik.de</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="meta-description">Python fuer Anfaenger 2026: Komplettes Tutorial von der Installation bis zum ersten Projekt. Variablen, Funktionen, OOP und praktische Beispiele.</p>



<h2 class="wp-block-heading">Einleitung</h2>



<p>Du willst <strong>Python lernen</strong>? Gute Entscheidung! Python ist die vielseitigste und einsteigerfreundlichste Programmiersprache 2026. In diesem Tutorial lernst du Python von der Installation bis zum ersten eigenen Projekt – Schritt fuer Schritt.</p>



<p>Dieses Tutorial richtet sich an <strong>absolute Anfaenger</strong>. Du brauchst keinerlei Programmiererfahrung.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Inhaltsverzeichnis</h2>



<ol class="wp-block-list"><li><a href="#installation">Python installieren</a></li><li><a href="#erste-schritte">Erste Schritte &amp; Hello World</a></li><li><a href="#variablen">Variablen und Datentypen</a></li><li><a href="#kontrollstrukturen">If-Else und Schleifen</a></li><li><a href="#funktionen">Funktionen</a></li><li><a href="#listen">Listen, Dictionaries &amp; Tuples</a></li><li><a href="#oop">Objektorientierte Programmierung</a></li><li><a href="#dateien">Dateien lesen und schreiben</a></li><li><a href="#pakete">Pakete und pip</a></li><li><a href="#projekt">Dein erstes Projekt</a></li><li><a href="#naechste-schritte">Naechste Schritte</a></li></ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="installation">1. Python installieren</h2>



<h3 class="wp-block-heading">Windows</h3>



<p>Vor allem für den praktischen Einsatz sind diese Informationen wertvoll.</p>



<ol class="wp-block-list"><li>Gehe zu <a href="https://python.org/downloads" target="_blank" rel="nofollow noopener">python.org/downloads</a></li><li>Lade die neueste Version herunter (Python 3.12+)</li><li><strong>Wichtig:</strong> Setze den Haken bei &#8222;Add Python to PATH&#8220;</li><li>Klicke &#8222;Install Now&#8220;</li></ol>



<h3 class="wp-block-heading">macOS</h3>



<p>Insbesondere für den Einstieg sind die folgenden Informationen hilfreich.</p>



<pre class="wp-block-code"><code># Mit Homebrew (empfohlen)
brew install python

# Version pruefen
python3 --version</code></pre>



<p>Vor allem die detaillierten Anweisungen sorgen für präzisere Ergebnisse.</p>



<h3 class="wp-block-heading">Linux (Ubuntu/Debian)</h3>



<p>Dabei spielen mehrere Faktoren eine wichtige Rolle.</p>



<pre class="wp-block-code"><code>sudo apt update
sudo apt install python3 python3-pip python3-venv</code></pre>



<p>Dabei zeigt dieses Beispiel den grundlegenden Ansatz.</p>



<h3 class="wp-block-heading">Editor einrichten</h3>



<p>Folglich profitierst du von einem besseren Verständnis dieser Konzepte.</p>



<p>Installiere <strong>Visual Studio Code</strong> als Editor:</p>



<ol class="wp-block-list"><li>Lade <a href="https://code.visualstudio.com" target="_blank" rel="nofollow noopener">VS Code</a> herunter</li><li>Installiere die <strong>Python Extension</strong> (von Microsoft)</li><li>Optional: <strong>GitHub Copilot</strong> fuer AI-Unterstuetzung beim Coden</li></ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="erste-schritte">2. Erste Schritte: Hello World</h2>



<p>Im Folgenden findest du alle wichtigen Details dazu.</p>



<p>Erstelle eine neue Datei <code>hello.py</code> und schreibe:</p>



<pre class="wp-block-code"><code># Dein erstes Python-Programm
print("Hallo Welt!")
print("Ich lerne Python &#x1f40d;")

# Einfache Berechnung
ergebnis = 42 + 8
print(f"42 + 8 = {ergebnis}")</code></pre>



<p>Somit sparst du Zeit und erhältst qualitativ hochwertigeren Output.</p>



<p>Fuehre es aus mit:</p>



<pre class="wp-block-code"><code>python hello.py</code></pre>



<p><strong>Ausgabe:</strong></p>



<pre class="wp-block-code"><code>Hallo Welt!
Ich lerne Python &#x1f40d;
42 + 8 = 50</code></pre>



<p>Grundsätzlich kannst du diesen Prompt an deine Bedürfnisse anpassen.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="variablen">3. Variablen und Datentypen</h2>



<p>Dennoch solltest du einige Besonderheiten beachten.</p>



<p>Python erkennt den Datentyp automatisch – du musst ihn nicht angeben:</p>



<pre class="wp-block-code"><code># Strings (Text)
name = "Metin"
beruf = 'Entwickler'

# Zahlen
alter = 30           # Integer (Ganzzahl)
gehalt = 75000.50    # Float (Kommazahl)

# Boolean (Wahr/Falsch)
ist_entwickler = True
hat_erfahrung = False

# None (kein Wert)
projekt = None

# Typ pruefen
print(type(name))      # &lt;class 'str'&gt;
print(type(alter))     # &lt;class 'int'&gt;
print(type(gehalt))    # &lt;class 'float'&gt;
print(type(ist_entwickler))  # &lt;class 'bool'&gt;</code></pre>



<p>Dementsprechend ist eine manuelle Überprüfung empfehlenswert.</p>



<h3 class="wp-block-heading">String-Operationen</h3>



<p>Zusammenfassend lässt sich sagen, dass dies ein zentraler Aspekt ist.</p>



<pre class="wp-block-code"><code># f-Strings (Python 3.6+)
print(f"Hallo, ich bin {name} und {alter} Jahre alt.")

# String-Methoden
text = "Python ist toll"
print(text.upper())        # PYTHON IST TOLL
print(text.lower())        # python ist toll
print(text.replace("toll", "super"))  # Python ist super
print(len(text))           # 15
print(text.split(" "))     # ['Python', 'ist', 'toll']</code></pre>



<p>Im Grunde funktioniert dieser Ansatz mit allen gängigen AI-Tools.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="kontrollstrukturen">4. If-Else und Schleifen</h2>



<h3 class="wp-block-heading">If-Else Bedingungen</h3>



<p>Grundsätzlich gibt es dabei einige Punkte zu beachten.</p>



<pre class="wp-block-code"><code>alter = 25

if alter &lt; 18:
    print("Minderjaehrig")
elif alter &lt; 65:
    print("Erwachsen")
else:
    print("Rentner")

# Kurzform
status = "Senior" if alter &gt;= 60 else "Junior"</code></pre>



<h3 class="wp-block-heading">For-Schleife</h3>



<p>Tatsächlich ist dieser Bereich besonders wichtig für Entwickler.</p>



<pre class="wp-block-code"><code># Ueber Liste iterieren
sprachen = ["Python", "JavaScript", "TypeScript"]
for sprache in sprachen:
    print(f"Ich lerne {sprache}")

# Mit Index
for i, sprache in enumerate(sprachen):
    print(f"{i+1}. {sprache}")

# Range
for i in range(5):
    print(i)  # 0, 1, 2, 3, 4

for i in range(1, 11):
    print(f"{i} x 7 = {i * 7}")</code></pre>



<p>Darüber hinaus lässt sich das Beispiel leicht erweitern.</p>



<h3 class="wp-block-heading">While-Schleife</h3>



<p>Ebenso wichtig ist es, die Best Practices zu kennen.</p>



<pre class="wp-block-code"><code>zaehler = 0
while zaehler &lt; 5:
    print(f"Durchlauf {zaehler}")
    zaehler += 1</code></pre>



<p>Insbesondere die Struktur des Prompts ist dabei entscheidend für gute Ergebnisse.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="funktionen">5. Funktionen</h2>



<p>Somit kannst du direkt mit der Umsetzung beginnen.</p>



<pre class="wp-block-code"><code># Einfache Funktion
def begruessung(name):
    return f"Hallo {name}!"

print(begruessung("Metin"))  # Hallo Metin!

# Funktion mit Default-Parameter
def berechne_rabatt(preis, rabatt=10):
    return preis * (1 - rabatt / 100)

print(berechne_rabatt(100))       # 90.0
print(berechne_rabatt(100, 25))   # 75.0

# Mehrere Rueckgabewerte
def statistiken(zahlen):
    return min(zahlen), max(zahlen), sum(zahlen) / len(zahlen)

minimum, maximum, durchschnitt = statistiken([10, 20, 30, 40])
print(f"Min: {minimum}, Max: {maximum}, Avg: {durchschnitt}")

# Lambda-Funktionen
quadrat = lambda x: x ** 2
print(quadrat(5))  # 25</code></pre>



<p>Folglich erhältst du mit diesem Ansatz deutlich bessere Resultate.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="listen">6. Listen, Dictionaries &amp; Tuples</h2>



<h3 class="wp-block-heading">Listen</h3>



<p>Im Grunde vereinfacht dieser Ansatz den gesamten Workflow erheblich.</p>



<pre class="wp-block-code"><code># Listen erstellen
tools = ["VS Code", "GitHub Copilot", "Docker", "Git"]

# Zugriff
print(tools[0])     # VS Code
print(tools[-1])    # Git
print(tools[1:3])   # ['GitHub Copilot', 'Docker']

# Aendern
tools.append("Cursor IDE")
tools.insert(0, "PyCharm")
tools.remove("Git")

# List Comprehension
zahlen = [1, 2, 3, 4, 5]
quadrate = [x**2 for x in zahlen]
gerade = [x for x in zahlen if x % 2 == 0]
print(quadrate)  # [1, 4, 9, 16, 25]
print(gerade)    # [2, 4]</code></pre>



<h3 class="wp-block-heading">Dictionaries</h3>



<p>Deshalb lohnt es sich, dieses Thema genauer zu betrachten.</p>



<pre class="wp-block-code"><code># Dictionary erstellen
entwickler = {
    "name": "Metin",
    "sprachen": ["Python", "JavaScript", "TypeScript"],
    "erfahrung_jahre": 5,
    "freelancer": True
}

# Zugriff
print(entwickler["name"])           # Metin
print(entwickler.get("gehalt", 0))  # 0 (Default)

# Aendern und hinzufuegen
entwickler["stadt"] = "Berlin"
entwickler["erfahrung_jahre"] = 6

# Iterieren
for key, value in entwickler.items():
    print(f"{key}: {value}")</code></pre>



<p>Natürlich solltest du den generierten Code vor dem Einsatz testen.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="oop">7. Objektorientierte Programmierung</h2>



<p>Weiterhin ist es wichtig, die Grundlagen zu verstehen.</p>



<pre class="wp-block-code"><code>class Entwickler:
    def __init__(self, name, sprache, erfahrung=0):
        self.name = name
        self.sprache = sprache
        self.erfahrung = erfahrung
        self.projekte = []

    def neues_projekt(self, projekt_name):
        self.projekte.append(projekt_name)
        print(f"{self.name} arbeitet jetzt an: {projekt_name}")

    def profil(self):
        return (f"{self.name} | {self.sprache} | "
                f"{self.erfahrung} Jahre | "
                f"{len(self.projekte)} Projekte")

    def __str__(self):
        return self.profil()


# Vererbung
class FullStackEntwickler(Entwickler):
    def __init__(self, name, frontend, backend, erfahrung=0):
        super().__init__(name, f"{frontend} + {backend}", erfahrung)
        self.frontend = frontend
        self.backend = backend


# Objekte erstellen
dev = Entwickler("Metin", "Python", 5)
dev.neues_projekt("AI Chatbot")
dev.neues_projekt("REST API")
print(dev)

fullstack = FullStackEntwickler("Anna", "React", "Node.js", 3)
print(fullstack)</code></pre>



<p>Tatsächlich lässt sich dieser Code direkt in dein Projekt übernehmen.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="dateien">8. Dateien lesen und schreiben</h2>



<p>Allerdings gibt es einige wichtige Unterschiede zu beachten.</p>



<pre class="wp-block-code"><code># Datei schreiben
with open("notizen.txt", "w") as f:
    f.write("Python Tutorial\n")
    f.write("Heute gelernt: Variablen, Listen, Funktionen\n")

# Datei lesen
with open("notizen.txt", "r") as f:
    inhalt = f.read()
    print(inhalt)

# JSON lesen und schreiben
import json

daten = {
    "name": "Metin",
    "skills": ["Python", "JavaScript"],
    "level": "Fortgeschritten"
}

# JSON schreiben
with open("profil.json", "w") as f:
    json.dump(daten, f, indent=2)

# JSON lesen
with open("profil.json", "r") as f:
    geladen = json.load(f)
    print(geladen["name"])  # Metin</code></pre>



<p>Deshalb empfiehlt es sich, den Prompt schrittweise zu verfeinern.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="pakete">9. Pakete mit pip installieren</h2>



<p>Darüber hinaus bietet dieser Abschnitt konkrete Beispiele und Tipps.</p>



<pre class="wp-block-code"><code># Virtual Environment erstellen (Best Practice!)
python -m venv mein_projekt
source mein_projekt/bin/activate  # Linux/Mac
# mein_projekt\Scripts\activate   # Windows

# Pakete installieren
pip install requests
pip install flask
pip install pandas

# Installierte Pakete anzeigen
pip list

# Requirements speichern
pip freeze > requirements.txt

# Requirements installieren (anderer Rechner)
pip install -r requirements.txt</code></pre>



<p>Die wichtigsten Python-Pakete:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Paket</th><th>Zweck</th></tr></thead><tbody><tr><td>requests</td><td>HTTP-Anfragen (APIs aufrufen)</td></tr><tr><td>flask / fastapi</td><td>Web-Frameworks</td></tr><tr><td>pandas</td><td>Datenanalyse</td></tr><tr><td>numpy</td><td>Numerische Berechnungen</td></tr><tr><td>pytest</td><td>Testing</td></tr><tr><td>black</td><td>Code-Formatierung</td></tr><tr><td>openai</td><td>OpenAI API (ChatGPT)</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="projekt">10. Dein erstes Projekt: Wetter-App</h2>



<p>Außerdem gibt es hilfreiche Tools, die dich dabei unterstützen.</p>



<p>Lass uns eine einfache Wetter-App bauen, die das aktuelle Wetter fuer eine Stadt anzeigt:</p>



<pre class="wp-block-code"><code>import requests
import json

def wetter_abfragen(stadt):
    """Wetter fuer eine Stadt abfragen (OpenWeatherMap API)"""
    api_key = "DEIN_API_KEY"  # kostenlos auf openweathermap.org
    url = f"http://api.openweathermap.org/data/2.5/weather"
    params = {
        "q": stadt,
        "appid": api_key,
        "units": "metric",
        "lang": "de"
    }

    response = requests.get(url, params=params)

    if response.status_code == 200:
        daten = response.json()
        return {
            "stadt": daten["name"],
            "temperatur": daten["main"]["temp"],
            "beschreibung": daten["weather"][0]["description"],
            "luftfeuchtigkeit": daten["main"]["humidity"],
            "wind": daten["wind"]["speed"]
        }
    else:
        return None

def main():
    print("&#x1f324;  Python Wetter-App")
    print("=" * 30)

    stadt = input("Stadt eingeben: ")
    wetter = wetter_abfragen(stadt)

    if wetter:
        print(f"\n&#x1f4cd; {wetter['stadt']}")
        print(f"&#x1f321;  {wetter['temperatur']}°C")
        print(f"&#x2601;  {wetter['beschreibung']}")
        print(f"&#x1f4a7; Luftfeuchtigkeit: {wetter['luftfeuchtigkeit']}%")
        print(f"&#x1f4a8; Wind: {wetter['wind']} m/s")
    else:
        print("Stadt nicht gefunden!")

if __name__ == "__main__":
    main()</code></pre>



<p>Außerdem kannst du den Prompt für verschiedene Programmiersprachen anpassen.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="naechste-schritte">11. Naechste Schritte</h2>



<p>Dementsprechend solltest du die folgenden Aspekte kennen.</p>



<p>Du hast die Python-Grundlagen gelernt! So geht es weiter:</p>



<ul class="wp-block-list"><li><strong>Vertiefung:</strong> Nimm einen <a href="/online-kurse/beste-python-kurse-udemy/">Python-Kurs auf Udemy</a> fuer strukturiertes Lernen</li><li><strong>Web-Development:</strong> Lerne Flask oder FastAPI fuer Backend-Entwicklung</li><li><strong>Data Science:</strong> Lerne Pandas und NumPy fuer Datenanalyse</li><li><strong>Automatisierung:</strong> Automatisiere langweilige Aufgaben mit Python Scripts</li><li><strong>AI-Tools nutzen:</strong> Verwende <a href="/kuenstliche-intelligenz/die-besten-ai-coding-tools-2026/">GitHub Copilot und ChatGPT</a> beim Programmieren</li><li><strong>Projekte:</strong> Bau eigene Projekte – das ist der beste Weg zum Lernen</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>Tipp:</strong> Nutze <strong>GitHub Copilot</strong> in VS Code waehrend du lernst. Der AI-Assistent schlaegt Code vor und erklaert Konzepte. Zusammen mit einem <a href="/online-kurse/beste-python-kurse-udemy/">strukturierten Udemy-Kurs</a> lernst du am schnellsten.</p></blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Zusammenfassung: Python Cheat Sheet</h2>



<p>Ebenfalls relevant sind die praktischen Anwendungsbeispiele.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Konzept</th><th>Beispiel</th></tr></thead><tbody><tr><td>Variable</td><td><code>name = "Metin"</code></td></tr><tr><td>f-String</td><td><code>f"Hallo {name}"</code></td></tr><tr><td>Liste</td><td><code>[1, 2, 3]</code></td></tr><tr><td>Dictionary</td><td><code>{"key": "value"}</code></td></tr><tr><td>If-Else</td><td><code>if x &gt; 0: ... elif ... else:</code></td></tr><tr><td>For-Schleife</td><td><code>for item in liste:</code></td></tr><tr><td>Funktion</td><td><code>def name(param): return ...</code></td></tr><tr><td>Klasse</td><td><code>class Name: def __init__(self):</code></td></tr><tr><td>Import</td><td><code>import json</code></td></tr><tr><td>pip install</td><td><code>pip install requests</code></td></tr></tbody></table></figure>

<p>Der Beitrag <a href="https://www.metincelik.de/tutorial/python-tutorial-anfaenger/">Python Tutorial fuer Anfaenger 2026 – Schritt fuer Schritt</a> erschien zuerst auf <a href="https://www.metincelik.de">MetinCelik.de</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>HTML Tutorial für Anfänger</title>
		<link>https://www.metincelik.de/programmierung/html-tutorial-fur-anfanger/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=html-tutorial-fur-anfanger</link>
					<comments>https://www.metincelik.de/programmierung/html-tutorial-fur-anfanger/#respond</comments>
		
		<dc:creator><![CDATA[MetinC]]></dc:creator>
		<pubDate>Mon, 29 Oct 2012 13:54:07 +0000</pubDate>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Anfänger]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Heimwerken]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[Software Entwicklung]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Werkzeug]]></category>
		<guid isPermaLink="false">http://www.metincelik.de/?p=2125</guid>

					<description><![CDATA[<p>Hallo meine lieben Leser, heute fange ich mit einen &#8222;HTML Tutorial für Anfänger&#8220; zu schreiben. Mit HTML kann man eigene Webseiten erstellen. Diese Tutorial wird einiges über HTML beibringen. HTML ist einfach zu erlernen. In jedem Kapitel werde ich euch einige Beispiele präsentieren, damit ihr selb per Copy&#038;Paste die Codebeispiele kopieren und in eurem HTML [&#8230;]</p>
<p>Der Beitrag <a href="https://www.metincelik.de/programmierung/html-tutorial-fur-anfanger/">HTML Tutorial für Anfänger</a> erschien zuerst auf <a href="https://www.metincelik.de">MetinCelik.de</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Hallo meine lieben Leser, </p>
<p>heute fange ich mit einen &#8222;HTML Tutorial für Anfänger&#8220; zu schreiben. Mit HTML kann man eigene Webseiten erstellen. Diese Tutorial wird einiges über HTML beibringen. HTML ist einfach zu erlernen. In jedem Kapitel werde ich euch einige Beispiele präsentieren, damit ihr selb per Copy&#038;Paste die Codebeispiele kopieren und in eurem HTML Editor testen und bearbeiten könnt.</p>
<pre class="brush: html; gutter: true; first-line: 1; highlight: []; html-script: false">&lt; !DOCTYPE html&gt;
&lt;html&gt;
&lt;body&gt;
&lt;h1&gt;Überschrift&lt;/h1&gt;
&lt;p&gt;Absetz&lt;/p&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>Also viel Spass damit!<br />
<a href="http://www.metincelik.de/programmierung/html-einfuhrung/" title="HTML Einführung">1. HTML Einführung</a></p>
<p>Der Beitrag <a href="https://www.metincelik.de/programmierung/html-tutorial-fur-anfanger/">HTML Tutorial für Anfänger</a> erschien zuerst auf <a href="https://www.metincelik.de">MetinCelik.de</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.metincelik.de/programmierung/html-tutorial-fur-anfanger/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
