Anmeldung Registrierung
Auto Hell Dunkel
Erweiterte Suche

IT-Berufe-Podcast Archiv

214 Episoden
22 Minuten
Law of Demeter (LoD) Um das Law of Demeter (Gesetz von Demeter) in der Softwareentwicklung geht es im achten Wissenshäppchen. TL;DR Mit dem Law of Demeter hältst du deinen Code unabhängig vom inneren Aufbau anderer Objekte, indem du Aufgaben an die zuständigen Objekte weitergibst. An einem Versicherungsbeispiel zeige ich dir, wie dadurch fachliche Logik in die passenden Klassen gelangt und Tests einfacher werden. Zusätzliche Methoden können dabei Boilerplate erzeugen, weshalb du bei weitgehend festen Objektstrukturen abwägen solltest, wie konsequent du die Regel anwendest. Kapitelmarken [00:00:00] Einstieg ins Law of Demeter [00:00:39] Woher der Name Demeter stammt [00:01:18] Definition und Prinzip des geringsten Wissens [00:03:08] Verkettete Zugriffe am Beispiel Person und Adresse [00:05:02] Kapselung und Geheimnisprinzip [00:06:32] Abhängigkeiten bei internen Änderungen [00:08:04] Aufwand für Tests und Stubs [00:09:37] Merkhilfe: Methoden sprechen mit ihren Freunden [00:10:29] Globale Variablen und Singletons [00:11:26] Praxisbeispiel: Gesamtbeitrag einer Versicherungspolice [00:13:09] Fachliche Logik auf die zuständigen Klassen verteilen [00:15:28] Vorteile für verständlichen und testbaren Code [00:16:43] Boilerplate und weitgehend feste Objektstrukturen [00:19:07] Regel im Überblick [00:19:54] Warum Zwischenvariablen die Abhängigkeit erhalten [00:20:31] Buchhinweis und weiterführende Codebeispiele Inhalt Das Law of Demeter sagt aus, dass eine Methode nur Zugriff auf die folgenden Objekte/Methoden haben sollte: Andere Instanzmethoden in ihrer eigenen Klasse Ihre Parameter Methoden in Objekten, die sie selbst erzeugt Globale Variablen Eine einfache andere Definition lautet: Verkette keine Methodenaufrufe ("method chaining"). Oder: Verwende nicht mehr als einen ., wenn du auf etwas zugreifst. Ein anderer Name für das LoD ist "Prinzip des geringsten Wissens" ("principle of least knowledge"). Der Name stammt von Demeter, einer griechischen Göttin. Der "Erfinder" des Prinzips entwickelte in den 80er-Jahren ein System mit diesem Namen. Erklärung Vorweg: Globale Variablen waren in den 80ern hip, heute nicht mehr. Bitte verwende sie am besten gar nicht. Je mehr "Punkte" in einer Aufrufhierarchie auftreten, desto mehr Kenntnis hat eine Komponente vom "Innenleben" der aufgerufenen Komponenten. Je mehr Kenntnis eine Komponente über die von ihr verwendeten Komponenten hat, desto stärker bindet sie sich an diese. Wenn sich die genutzten Komponenten ändern, muss sie sich mit ändern bzw. ist kaputt. Das verletzt das Geheimnisprinzip und die Kapselung, nach der wir eigentlich in der Objektorientierung arbeiten wollen. Je mehr solcher Abhängigkeiten eine Methode hat, desto schwerer ist sie zu verstehen und zu testen. Code, der sich an das LoD hält, gilt auch als "schüchtern", weil er "nur mit seinen Freunden spricht". Beispielcode Um an den Gesamtbeitrag einer Versicherungspolice zu kommen, ist die Kenntnis über die darin enthaltenen versicherten Personen und deren Tarife nötig. Da es sich dabei jeweils um Listen handelt, ist sogar noch ein "Flachklopfen" der Strukturen nötig. Der Code sieht vielleicht cool aus, ist aber stark an die Strukturen gekoppelt. Das heißt, ein Test müsste sehr viel Aufwand betreiben, um die nötigen Strukturen zu schaffen (z.B. mit Mocks). class Tarif def initialize(name) @name = name end def beitrag 123.45 end end class VersichertePerson def initialize(name) @name = name @tarife = [ Tarif.new("KFZ"), Tarif.new("Hausrat") ] end def tarife @tarife end end class Versicherungspolice def initialize @versicherte_personen = [ VersichertePerson.new("Stefan Macke"), VersichertePerson.new("Klaus Meyer") ] end def versicherte_personen @versicherte_personen end end # cool, aber schwer verständlich, anfällig für Anpassungen und auch schwer zu testen puts Versicherungspolice.new .versicherte_personen .flat_map { |vp| vp.tarife } .inject(0){|summe,tarif| summe + tarif.beitrag } Um dies zu vermeiden, können die einzelnen Klassen von ihren inneren Strukturen abstrahieren und stellen simple Zugriffsmethoden für die gewünschten Ergebnisse bereit. Der finale Aufruf sieht nun schon fast langweilig aus. Dafür liegt die fachliche Berechnungslogik da wo sie hingehört: in den jeweiligen Klassen und nicht beim Aufrufer. class Tarif def initialize(name) @name = name end def beitrag 123.45 end end class VersichertePerson def initialize(name) @name = name @tarife = [ Tarif.new("KFZ"), Tarif.new("Hausrat") ] end def beitragssumme @tarife.inject(0){|summe,tarif| summe + tarif.beitrag } end end class Versicherungspolice def initialize @versicherte_personen = [ VersichertePerson.new("Stefan Macke"), VersichertePerson.new("Klaus Meyer") ] end def gesamtbeitrag @versicherte_personen.inject(0){|summe,vp| summe + vp.beitragssumme } end end # langweilig, aber einfach zu verstehen und zu testen puts Versicherungspolice.new.gesamtbeitrag Vorteile Der Code wird verständlicher, weil nicht mehrere Strukturen bekannt sein müssen. Fachliche Logik landet evtl. eher da, wo sie hingehört. Anstatt externen Komponenten Zugriff auf die inneren Daten zu geben, werden Abstraktionen geschaffen. Die Komponenten sind unabhängiger voneinander und lassen sich leichter testen. Große Test-Setups mit vielen Mocks, die weitere Mocks zurückgeben, lassen sich vermeiden. Interne Änderungen an verwendeten Komponenten wirken sich nicht auf deinen Code aus. Du hast also weniger Anpassungsaufwand. Nachteile Wenn du die Regel exakt befolgen möchtest, musst du womöglich recht viel Boilerplate-Code schreiben, z.B. simple Getter, die an Instanzvariablen delegieren. Wenn sich die verwendeten Strukturen selten ändern, ist der zusätzliche Aufwand vermutlich unnötig. Literaturempfehlungen Zu diesem Wissenshäppchen gibt es ein separates Kapitel in einem meiner absoluten Lieblingsbücher zur Softwareentwicklung: The Pragmatic Programmer*. Es ist vor Kurzem in der 20-Jahre-Edition neu aufgelegt worden, aber das Law of Demeter ist immer noch Thema. * Links Permalink zu dieser Podcast-Episode RSS-Feed des Podcasts Gesetz von Demeter – Wikipedia Law Of Demeter Demeter’s Law: Don’t talk to strangers! Zusammenfassung Was das Law of Demeter bedeutet Wenn du als IT-Azubi Methoden schreibst, hilft dir das Law of Demeter, die Abhängigkeiten zu anderen Objekten überschaubar zu halten. Es heißt auch Prinzip des geringsten Wissens beziehungsweise Principle of Least Knowledge. Der Name stammt aus einem Softwareprojekt namens Demeter, das nach der griechischen Göttin benannt wurde. Die Regel kommt aus den 1980er-Jahren. Eine Methode sollte nach der vorgestellten Definition auf Folgendes zugreifen dürfen: Andere Instanzmethoden ihrer eigenen Klasse. Objekte, die sie als Parameter erhält. Methoden von Objekten, die sie selbst erzeugt. Globale Variablen. Den letzten Punkt streiche ich für heutigen Code aus meiner Empfehlung. Globale Variablen können von überall verändert werden, wodurch sich bei der Fehlersuche schwer nachvollziehen lässt, wer ihren Wert geändert hat. Dieselbe Empfehlung gilt hier für Singletons. Als Merkhilfe kannst du dir vorstellen, dass eine Methode nur mit ihren "Freunden" spricht: mit Objekten, die ihr unmittelbar bekannt sind. Was bei verketteten Aufrufen passiert Bei einem Aufruf wie person.getAdresse().getStrasse().getErsterBuchstabe() bewegst du dich durch mehrere Ebenen einer Objektstruktur. Damit du diesen Code schreiben kannst, musst du wissen, wie die Person ihre Adresse enthält und wie du darüber zur Straße gelangst. Die Faustregel "höchstens ein Punkt beim Objektzugriff" macht solche Zugriffe sichtbar. Je nach Programmiersprache steht dafür ein anderer Operator, etwa ein Pfeil. Bei Stream-Operationen wie map, filter oder reduce bleibst du innerhalb einer Stream-Verarbeitung. Für das Law of Demeter sind insbesondere Ketten relevant, bei denen du schrittweise innere Bestandteile anderer Objekte hervorholst. Auch wenn du die Adresse und anschließend die Straße jeweils in einer eigenen Variablen speicherst, bleibt dein Code an dieselbe innere Struktur gebunden. Die Abhängigkeit besteht über mehrere Zeilen hinweg weiter. Warum der innere Aufbau verborgen bleiben sollte Durch Getter, die innere Objekte herausgeben, kann aufrufender Code tief in deren Struktur eingreifen. Damit wird die Kapselung aufgebrochen, die Daten und zugehörige Methoden als Einheit zusammenhalten soll. Brauchst du den ersten Buchstaben der Straße einer Person, kann die Person dafür eine passende Methode anbieten. Sie kümmert sich intern darum, wie sie diesen Wert ermittelt. Für deinen Aufruf reicht die öffentliche Methode. Führt ein:e Entwickler:in später eine zusätzliche Ebene ein oder benennt einen Bestandteil um, müssen alle Aufrufe angepasst werden, die diesen Aufbau kennen. Das Geheimnisprinzip erlaubt es, den inneren Aufbau einer Klasse zu ändern, während ihre öffentliche Schnittstelle bestehen bleibt. Dadurch bleiben aufrufende Komponenten von solchen internen Änderungen unabhängig. Wie sich das auf Tests auswirkt Um eine tief verkettete Methode zu testen, musst du die beteiligten Objekte passend aufbauen oder durch Stubs ersetzen. Im Personenbeispiel muss die Adresse eine Straße liefern, über die sich der gewünschte Buchstabe abrufen lässt. Fehlt ein benötigtes Objekt, kann ein Null-Pointer-Fehler entstehen. Sobald sich die Struktur ändert, betrifft das auch dieses Test-Setup. Mit einer direkten Methode für den benötigten Wert werden die Tests kürzer und hängen weniger stark vom inneren Aufbau ab. Mein Beispiel: Beiträge einer Versicherungspolice Für mein Beispiel enthält eine Versicherungspolice mehrere versicherte Personen. Jede Person besitzt wiederum Tarife, etwa für eine Kfz- oder Hausratversicherung. ...
53 Minuten
Um den effektiven Umgang mit Suchmaschinen wie Google zur Recherche von Informationen geht es in der einhundertsechsundfünfzigsten Episode des IT-Berufe-Podcasts. TL;DR Ich suche beim Programmieren mehrmals täglich nach Lösungen, wobei präzise Suchbegriffe auf Englisch helfen, passende Informationen zu finden. Als IT-Azubi brauchst du dafür Grundwissen und musst gefundene Inhalte selbst prüfen, besonders das Datum und die Softwareversion. Über die Adresszeile und eigene Suchkürzel kommst du schneller zu Ergebnissen; mit Suchoperatoren grenzt du deine Anfrage weiter ein. Meine Beispiele aus September 2020 behandeln außerdem personalisierte Treffer und Google-Funktionen wie die Bilder-Rückwärtssuche. Kapitelmarken [00:00:00] Thema: Effektiv im Internet suchen [00:03:03] Warum du als IT-Azubi sicher recherchieren solltest [00:07:01] Gefundene Inhalte und Code selbst prüfen [00:08:20] Kurze Suchanfragen und Stopwords [00:10:29] Die gewünschte Aufgabe präzise beschreiben [00:11:56] Bei IT-Themen auf Englisch suchen [00:13:43] Wie Google Suchergebnisse personalisiert [00:16:14] Privat suchen und Datenschutz beachten [00:19:17] Schneller suchen und Kleinschreibung verwenden [00:20:16] Standardsuche und Tastenkürzel im Browser [00:21:49] Eigene Suchkürzel für Websites einrichten [00:25:41] Direkt auf passenden Plattformen suchen [00:27:15] Ecosia als weitere Suchmaschine [00:28:38] Anzeigen und organische Treffer erkennen [00:32:05] SEO und die Reihenfolge der Treffer [00:34:30] Nischenthemen auf späteren Ergebnisseiten finden [00:35:54] Datum und Softwareversion prüfen [00:38:36] Suchoperatoren und Wörter ausschließen [00:40:23] Genaue Wortfolgen mit Anführungszeichen suchen [00:41:14] Mit site: auf einer Website suchen [00:42:17] Verlinkende Websites mit link: suchen [00:43:04] Teile einer URL mit inurl: suchen [00:43:50] Dateitypen mit filetype: eingrenzen [00:44:25] Fachbegriffe mit define: nachschlagen [00:46:24] Bilder-Rückwärtssuche und Bildquellen [00:48:30] Mit Google rechnen [00:49:07] Währungen umrechnen [00:50:06] Gespeicherte Website-Versionen mit cache: aufrufen [00:51:45] Feedback und weiterführende Beispiele Inhalt Warum ist die richtige Suche im Internet wichtig? Reines Faktenwissen ist nicht mehr zeitgemäß. Dafür haben wir Suchmaschinen. Die "falsche" Suche führt dich ggfs. zu veralteten oder falschen Informationen. Das behindert dich in der täglichen Arbeit. Gerade für ITler ist die Suchmaschine ein tägliches Werkzeug. Wir können nicht alle Programmiersprachen oder Konfigurationseinstellungen auswendig kennen. Es ist wichtig, dass du deinen Verstand bemühst und die Ergebnisse bewertest. Überlass der Suchmaschine nicht das Denken für dich! Wie "google" ich richtig? Allgemeine Tipps zum Umgang mit Suchmaschinen. Denk nicht wie ein Mensch, sondern wie eine Maschine! Formuliere also keine Prosatexte, sondern kurze und knappe Suchanfragen mit den wichtigsten Suchbegriffen. Statt "Wie öffne ich eine Datei in Java?" solltest du nach "java datei öffnen" suchen. Suche so spezifisch wie möglich, indem du einschränkende weitere Suchbegriffe hinzufügst. Statt "java dateiverarbeitung" solltest du nach "java datei schreiben anhängen", wenn du etwas an eine Datei anhängen möchtest. Verwende gerade im IT-Umfeld Englisch als Sprache für deine Suchanfragen. Das wird zu deutlich mehr Ergebnissen führen. Statt "java datei öffnen" solltest du also nach "java file open" suchen. Vermeide sogenannte Stopwords und Satzzeichen, die von der Suchmaschine ohnehin ignoriert werden. Statt "how do i open a file in java?" solltest du also nach "java file open" suchen. Manchmal kann es sinnvoll sein, "anonym" zu suchen, damit die Suchergebnisse nicht anhand deines Profils angepasst werden oder die Suchmaschine ein solches von dir erstellt. Produktivitätstipps Ignoriere Groß-/Kleinschreibung bei deiner Suche. Die Suchmaschine ignoriert das eh. Stelle deine Browser-Suche direkt auf deine Standard-Suchmaschine ein, z.B. Google. Dadurch kannst du durch die Eingabe von Suchbegriffen in der Adresszeile direkt eine Suche starten. Richte dir Such-Abkürzungen für häufig verwendete Suchmaschinen im Browser ein. Dadurch kannst du mit wenigen Tastendrücken direkt in der gewünschten Suchmaschine suchen. Das geht auch für interne Anwendungen wie dein Ticket-System. Es gibt nicht nur Google! Je nachdem, was du suchst, kann die direkte Suche bei YouTube oder Amazon sinnvoller sein. Und wenn du umweltbewusster suchen willst, empfehle ich dir Ecosia. Bewertung von Suchergebnissen Unterscheide zwischen organischen und bezahlten Suchergebnissen. Erstere sind meist die bessere Wahl. Platz 1 ist nicht automatisch das beste Ergebnis für dich. Viele Websites verdienen ihr Geld mit Suchmaschinenoptimierung und tun alles dafür, auf den ersten Plätzen zu landen. Sie müssen aber nicht unbedingt den besten Inhalt bieten. Öffne auch mal die zweite Suchergebnisseite. Im sogenannten Long Tail verbergen sich durchaus auch Perlen. Achte auf das Erstelldatum der Seite. Gerade in der IT sind aktuelle Inhalte wichtig. Achte auf korrekte Versionen der verwendeten Software. Eine Anleitung zu Java 6 hilft dir nicht, wenn du mit Java 11 arbeitest. (Google-)Suchoperatoren zur treffgenaueren Suche Unpassende Wörter ausschließen: -. Beispiel: javascript dom -react Exakt passende Treffer (wörtliche Suche): "". Beispiel: "Einhaltung der Präsentationszeit" fachinformatiker Bestimmte Website durchsuchen: site:. Beispiel: site:it-berufe-podcast.de presenter Seiten mit Verlinkung auf Zielseite suchen: link:. Beispiel: link:it-berufe-podcast.de Konkreten Bestandteil der URL suchen: inurl:. Beispiel: projektdokumentation inurl:gerda Konkreten Dateityp suchen: filetype:. Beispiel: filetype:pdf projektdokumentation vorlage Schnell kurze Definitionen finden: define:. Beispiel: define:REST Zusätzliche Möglichkeiten der Google-Suche Bilder-Rückwärtssuche, z.B. für Quellenangaben bei verwendeten Bildern. Währungs- und Taschenrechner. Beispiele: 100 usd in eur oder 19 * (3 + 2) / 100 Alte Versionen von Websites anzeigen (cache:). Links Permalink zu dieser Podcast-Episode RSS-Feed des Podcasts Mit Google suchen - Google-Suche-Hilfe Websuchen optimieren - Google-Suche-Hilfe: Liste der möglichen Suchoperatoren bei Google 27+ Google Suchoperatoren für bessere Suchergebnisse: noch mehr mögliche Suchoperatoren Richtig googeln: So nutzt ihr die Google-Suchoperatoren Zusammenfassung Im IT-Alltag nach Informationen suchen Beim Programmieren suche ich mehrmals täglich nach Lösungen und stoße dabei auch auf bereits vorhandene Funktionen einer Sprache. Als IT-Azubi baust du dir Grundwissen auf, etwa zu Netzwerkprotokollen. Einzelne technische Daten kannst du nachschlagen, sobald du sie für eine Aufgabe brauchst, weil sich vieles in der IT schnell verändert. Wenn du Suchmaschinen sicher bedienst, sparst du bei solchen Aufgaben Zeit. Prüfe gefundene Inhalte selbst und verstehe Code, bevor du ihn übernimmst. Das gilt ebenso für Skripte, die du als Administrator:in ausführst und die deine Systeme verändern können. Die folgenden Beispiele beziehen sich auf Google und stammen aus September 2020. Präzise Suchbegriffe eingeben Formuliere deine Anfrage kurz und konkret. Mit java datei öffnen beschreibst du bereits, was du suchst. Häufige Wörter wie "eine" oder "in" gelten als Stopwords und werden bei der Suche weitgehend ignoriert. Auch gewöhnliche Satzzeichen kannst du weglassen. Beschreibe die gewünschte Aufgabe genauer. Die Anfrage java datei schreiben anhängen enthält genug Kontext, um nach Beispielen für das Anhängen von Text an eine Datei zu suchen. Suche bei IT-Themen auf Englisch. Viele Fachbegriffe und Befehle sind ohnehin englischsprachig. Mit java file open erreichst du mehr Quellen. Falls du nur die deutsche Bezeichnung einer Oberfläche kennst, kannst du den passenden englischen Begriff durch Übersetzen oder anhand von Bildschirmfotos finden. Bei meinem damaligen Vergleich lieferte java file open rund 460 Millionen Treffer, während java datei öffnen etwa 596.000 ergab. Welche Ergebnisse du erhältst, hängt allerdings auch von deinem Gerät und Standort ab. Personalisierte Treffer und Datenschutz Google berücksichtigt bei Suchergebnissen unter anderem, ob du angemeldet bist und welche Suchanfragen du zuvor gestellt hast. Auch das Gerät beeinflusst, welche Seiten erscheinen. Deshalb können dieselben Suchbegriffe bei dir andere Treffer liefern als bei mir. Wenn du den Einfluss deiner bisherigen Suchhistorie verringern möchtest, melde dich von deinem Google-Konto ab und öffne ein privates Browserfenster. Dadurch wird es schwieriger, deine Suche deinem bisherigen Verlauf zuzuordnen. Google kann weiterhin versuchen, dich anhand technischer Merkmale deines Browsers zu erkennen. Als weitere Möglichkeit für datenschutzbewusstes Suchen kommt der Tor-Browser zur Sprache. Beim Testen meiner eigenen Google-Anzeigen habe ich erlebt, dass sie im angemeldeten Browser häufig ausblieben. In einem anderen Browser oder privaten Fenster erschienen sie. Über den Browser schneller suchen Groß- und Kleinschreibung beeinflussen die Suche nicht. Du kannst deine Suchbegriffe durchgehend kleinschreiben. Stelle deine bevorzugte Suchmaschine als Standardsuche im Browser ein. Mit Strg+L springst du in die Adresszeile, wo du deine Suchbegriffe eingibst und mit Enter suchst. In Firefox funktioniert dafür auch F6. Für Seiten, auf denen du häufig suchst, kannst du eigene Suchkürzel anlegen. So richtest du sie in Firefox ein: Führe auf der gewünschten Website eine Suche mit einem leicht erkennbaren Begriff aus. Kopiere die entstandene URL und ersetze den Suchbegriff darin durch %s. Speichere diese Adresse als Lesezeichen und gib ihr ein Schlüsselwort, etwa yt für YouTube. Gib anschließend beispielsweise yt suchbegriff in die Adresszeile ein. Firefox setzt deinen Begriff an der Stelle von %s ein und öffnet die Ergebnisse. Das funktioniert bei Websites,...
46 Minuten
Um die Vorteile und Einsatzgebiete von Plain-Text-Markup-Formaten für längere Texte geht es in der einhundertfünfundfünfzigsten Episode des IT-Berufe-Podcasts. TL;DR Mit Plain-Text-Markup-Formaten schreibst du strukturierte Texte in einfachen Textdateien, die du mit Git verwalten und per Skript weiterverarbeiten kannst. Ich empfehle dir Markdown für den Einstieg; für umfangreiche technische Dokumente eignet sich AsciiDoc, während du mit PlantUML Diagramme als Text beschreibst. LaTeX bietet viele Möglichkeiten für deine Projektdokumentation und braucht Zeit zum Einarbeiten. Mit Pandoc wandelst du Formate ineinander um, während dir Editoren wie Visual Studio Code beim Schreiben eine Vorschau zeigen. Kapitelmarken [00:00:00] Plain-Text-Markup für deinen Ausbildungsalltag [00:02:00] Überblick über die vorgestellten Formate [00:03:04] Anlass: Plain Text im Pragmatic Programmer [00:03:58] Textdateien mit Git verwalten [00:04:25] Binärformate und der Aufbau von DOCX-Dateien [00:07:31] Diffs, Merges und Branches für Dokumente [00:09:44] Texte langfristig lesen und bearbeiten [00:12:20] Mit Tastatur und Kommandozeile arbeiten [00:13:58] Den Editor frei wählen [00:16:02] Textdateien per Skript verarbeiten [00:18:22] Markdown und das Rendern von Texten [00:20:20] Markdown in Apps und Editoren [00:21:36] Markdown-Syntax und mögliche Ausgabeformate [00:24:39] AsciiDoc für umfangreiche technische Dokumente [00:26:35] Dokumente im Build-Prozess erzeugen [00:28:20] Quelltext direkt in AsciiDoc einbinden [00:29:01] LaTeX für deine Projektdokumentation [00:30:28] LaTeX lernen und Vorlagen verwenden [00:32:54] UML-Diagramme mit PlantUML beschreiben [00:34:04] PlantUML in AsciiDoc und Redmine einbetten [00:36:03] Textile für Texte in Redmine [00:38:11] Formate mit Pandoc umwandeln [00:40:24] Visual Studio Code als Markup-Editor [00:41:44] MarkdownPad und weitere Editoren [00:42:49] Empfehlungen für deinen Einstieg [00:43:39] Buchtipp: The Pragmatic Programmer [00:44:40] Syntaxbeispiele, Links und Feedback Inhalt Plain-Text-Formate sind Formate, die in reinen (menschenlesbaren) Text-Dateien abgelegt werden, also keine binären Formate wie z.B. in Microsoft Word oder LibreOffice. Vorteile von Plain-Text-Formaten Versionierung: Diff, Merge, Branches möglich Langlebigkeit: Keine proprietäre Bearbeitungssoftware nötig, keine Abhängigkeit von Herstellern Produktivität: Arbeit ausschließlich mit der Tastatur ohne Maus Flexibilität: Konvertierbar, zur Not selbst parsbar, mit jedem beliebigen Editor änderbar Automatisierung: Mächtige Tools zur Manipulation vorhanden Beispiele für Formate Markdown leicht zu lernen, geringer Sprachumfang Output hauptsächlich HTML breite Unterstützung in Tools, z.B. Wordpress, GitHub AsciiDoc sehr großer Sprachumfang, sogar geeignet für Bücher viele verschiedene Output-Formate, z.B. HTML, PDF, EPUB gut in übliche Build-Prozesse integriert, z.B. in Gradle Textile ähnelt der Wiki-Syntax Redmine LaTeX komplettes Textsatz-System, "perfekter" Textsatz geeignet für komplette Bücher inkl. Verzeichnissen, Index, Literaturverzeichnis PlantUML Gestaltung von UML-Diagrammen kann u.a. in LaTeX und AsciiDoc eingebunden werden, aber auch in Wikis Tools Pandoc: Konvertiert automatisch Dateien zwischen beliebigen Formaten VSCode: Editor für beliebige Markup-Formate inkl. Preview-Funktion MarkdownPad: Editor für Markdown Quelltextbeispiele Es folgen Beispiele für das gezeigte HTML-Fragment in den unterschiedlichen Markup-Sprachen. HTML Markup-Sprachen: HTML

Ein normaler Absatz in HTML.

Überschrift

Fetter Text und kursiver Text.

Listen

Ungeordnete Liste

Mit Unterpunkten

Noch ein Unterpunkt

Noch ein Punkt

Geordnete Liste Mit Unterpunkten Noch ein Unterpunkt Noch ein Punkt Links

IT-Berufe-Podcast

Bilder Bildbeschreibung Code

Inline Code mit code.

public static void main(String[] args) { System.out.println("Hallo!"); }

Zitate

Zitate sehen so aus.

Markdown # Markup-Sprachen: Markdown Ein normaler Absatz in Markdown. ## Überschrift **Fetter Text** und *kursiver Text*. ## Listen * Ungeordnete Liste * Mit Unterpunkten * Noch ein Unterpunkt * Noch ein Punkt 1. Geordnete Liste 1. Mit Unterpunkten 2. Noch ein Unterpunkt 2. Noch ein Punkt ## Links [IT-Berufe-Podcast](https://it-berufe-podcast.de "Website des IT-Berufe-Podcasts") ## Bilder ![Bildbeschreibung](https://it-berufe-podcast.de/Abbildungen/LogoITBerufePodcast500px.jpg "Das Logo des IT-Berufe-Podcasts") ## Code Inline Code mit `code`. \```java public static void main(String[] args) { System.out.println("Hallo!"); } \``` ## Zitate > Zitate sehen so aus. AsciiDoc == Markup-Sprachen: AsciiDoc Ein normaler Absatz in AsciiDoc. === Überschrift *Fetter Text* und _kursiver Text_. === Listen * Ungeordnete Liste ** Mit Unterpunkten ** Noch ein Unterpunkt * Noch ein Punkt . Geordnete Liste .. Mit Unterpunkten .. Noch ein Unterpunkt . Noch ein Punkt === Links https://it-berufe-podcast.de[IT-Berufe-Podcast] === Bilder image:https://it-berufe-podcast.de/Abbildungen/LogoITBerufePodcast500px.jpg[Bildbeschreibung,title="Das Logo des IT-Berufe-Podcasts"] === Code Inline Code mit `code`. [source,java] ---- public static void main(String[] args) { System.out.println("Hallo!"); } ---- === Zitate ____ Zitate sehen so aus. ____ Textile h1(#markup-sprachen-markdown). Markup-Sprachen: Textile Ein normaler Absatz in Textile. h2(#überschrift). Überschrift *Fetter Text* und _kursiver Text_. h2(#listen). Listen * Ungeordnete Liste ** Mit Unterpunkten ** Noch ein Unterpunkt * Noch ein Punkt # Geordnete Liste ## Mit Unterpunkten ## Noch ein Unterpunkt # Noch ein Punkt h2(#links). Links "IT-Berufe-Podcast":https://it-berufe-podcast.de h2(#bilder). Bilder !https://it-berufe-podcast.de/Abbildungen/LogoITBerufePodcast500px.jpg(Das Logo des IT-Berufe-Podcasts)! Bildbeschreibung h2(#code). Code Inline Code mit @code@. bc(java). public static void main(String[] args) { System.out.println("Hallo!"); } h2(#zitate). Zitate bq. Zitate sehen so aus. LaTeX \hypertarget{markup-sprachen-markdown}{% \section{Markup-Sprachen: LaTeX}\label{markup-sprachen-markdown}} Ein normaler Absatz in LaTeX. \hypertarget{uxfcberschrift}{% \subsection{Überschrift}\label{uxfcberschrift}} \textbf{Fetter Text} und \emph{kursiver Text}. \hypertarget{listen}{% \subsection{Listen}\label{listen}} \begin{itemize} \tightlist \item Ungeordnete Liste \begin{itemize} \tightlist \item Mit Unterpunkten \item Noch ein Unterpunkt \end{itemize} \item Noch ein Punkt \end{itemize} \begin{enumerate} \def\labelenumi{\arabic{enumi}.} \tightlist \item Geordnete Liste \begin{enumerate} \def\labelenumii{\arabic{enumii}.} \tightlist \item Mit Unterpunkten \item Noch ein Unterpunkt \end{enumerate} \item Noch ein Punkt \end{enumerate} \hypertarget{links}{% \subsection{Links}\label{links}} \href{https://it-berufe-podcast.de}{IT-Berufe-Podcast} \hypertarget{bilder}{% \subsection{Bilder}\label{bilder}} \begin{figure} \centering \includegraphics{https://it-berufe-podcast.de/Abbildungen/LogoITBerufePodcast500px.jpg} \caption{Bildbeschreibung} \end{figure} \hypertarget{code}{% \subsection{Code}\label{code}} Inline Code mit \texttt{code}. \begin{Shaded} \begin{Highlighting}[] \KeywordTok{public} \DataTypeTok{static} \DataTypeTok{void} \FunctionTok{main}\NormalTok{(}\BuiltInTok{String}\NormalTok{[] args) \{} \BuiltInTok{System}\NormalTok{.}\FunctionTok{out}\NormalTok{.}\FunctionTok{println}\NormalTok{(}\StringTok{"Hallo!"}\NormalTok{);} \NormalTok{\}} \end{Highlighting} \end{Shaded} \hypertarget{zitate}{% \subsection{Zitate}\label{zitate}} \begin{quote} Zitate sehen so aus. \end{quote} PlantUML Und zum Schluss noch ein Beispiel für ein Klassendiagramm in PlantUML. class Auto { hersteller : String farbe : String kilometerstand : Integer neupreis : Double fahre() : void hupe() : void } Gerendert sieht das dann so aus. Literaturempfehlungen Eines meiner absoluten Lieblingsbücher widmet ein eigenes Kapitel dem Thema "Plain Text": The Pragmatic Programmer*. Dave Thomas und Andy Hunt erklären dir auch noch einmal die Vorteile von einfachen Textdateien. * Links Permalink zu dieser Podcast-Episode RSS-Feed des Podcasts Markdown AsciiDoc Textile LaTeX PlantUML Pandoc Visual Studio Code MarkdownPad Zusammenfassung Texte in einfachen Textdateien schreiben Für meine Blogartikel und Newsletter schreibe ich Texte mit Markup direkt in Textdateien. Auch Softwaredokumente, E-Mail-Vorlagen und deine Projektdokumentation lassen sich so erstellen. Als IT-Azubi kannst du dabei mit einem Texteditor arbeiten, den du bereits kennst. Mit wenigen Zeichen kennzeichnest du beispielsweise Überschriften oder Listen. Ein passendes Werkzeug erzeugt daraus HTML oder ein PDF....
46 Minuten
Eine umfangreiche Checkliste mit allem, was du zur mündlichen IHK-Prüfung (Projektpräsentation und Fachgespräch) mitbringen solltest, gibt es in der einhundertvierundfünfzigsten Episode des IT-Berufe-Podcasts. TL;DR Mit meiner Checkliste für den Tag der mündlichen Abschlussprüfung kannst du prüfen, welche Unterlagen du einpackst und wie du deine Präsentation technisch absicherst. Zusätzliche Kopien deiner Folien sowie Hilfsmittel auf Papier helfen dir, wenn Geräte ausfallen. Übe Antworten fürs Fachgespräch laut und schau dir den Prüfungsraum vorher an, damit du am Prüfungstag mit ausreichend Zeit ankommst. Die Angaben zu Pflichtunterlagen beziehen sich auf den Stand der Aufnahme im Mai 2020. Kapitelmarken [00:00:01] Informationen zum Fachgespräch [00:00:37] Checkliste für die mündliche Abschlussprüfung [00:01:33] Checkliste als PDF herunterladen [00:02:15] Pflichtunterlagen und Vorsorge für technische Probleme [00:04:29] Prüfungseinladung und gültiger Personalausweis [00:07:07] Ausbildungsnachweis und Berichtsheft [00:08:54] Berufsschulnote auf dem IHK-Zeugnis [00:09:54] Präsentationsgerät und Folien testen [00:11:05] Desktop und Titelfolie vorbereiten [00:12:24] Presenter für die Präsentation [00:15:02] Passende Kabel und Adapter mitbringen [00:16:16] Eigenen Beamer organisieren [00:18:38] Anwendung oder Projektergebnis mitbringen [00:20:33] Wasser und etwas zu essen einpacken [00:23:00] Passende Kleidung für die Prüfung [00:26:27] Präsentation auf USB-Stick und in der Cloud sichern [00:27:57] Projektdokumentation lesen und mitnehmen [00:29:17] Ausgedruckte Folien für technische Ausfälle [00:30:31] Prüfungszeit mit einem separaten Timer verfolgen [00:32:50] Notizen auf Karteikarten vorbereiten [00:35:06] Häufige Fragen im Fachgespräch laut üben [00:36:50] Prüfungsraum vorab anschauen [00:38:47] Folien von den Plätzen der Prüfer:innen aus testen [00:39:26] Frühzeitig zum Prüfungstermin kommen [00:42:42] Checkliste im Überblick [00:43:59] Links und ergänzende Materialien [00:44:18] Feedback und Podcastbewertungen Inhalt Der Tag der Projektpräsentation ist sicher für viele Prüflinge stressig. Es geht ja immerhin um nichts weniger als den (meist ersten) Berufsabschluss und die letztendliche Abschlussnote. Da sollte man sich als Prüfling nicht noch unnötig zusätzlich Stress verursachen durch vergessene wichtige Unterlagen oder Utensilien, die unbedingt bei dieser letzten Prüfung benötigt werden. Um es dir etwas einfacher zu machen, kommt hier meine ultimative Liste aller Dinge, die du zur Prüfung mitbringen bzw. vorher erledigen solltest. Unterlagen Prüfungseinladung der IHK: Mitbringen, damit der Prüfungsausschuss dich identifizieren kann. Gültigen Personalausweis: Mitbringen, damit der Prüfungsausschuss dich identifizieren kann. Auch falls du dem Prüfungsausschuss persönlich bekannt bist, weil z.B. dein Lehrer teilnimmt. Er könnte am Prüfungstermin krank sein. Ausbildungsnachweis: Das allseits beliebte Berichtsheft bzw. ein Projektbericht bei externen Prüflingen oder dualen Studenten solltest du auf Papier in einem vernünftig prüfbaren Format (z.B. Schnellhefter) dabei haben. Ohne das Berichtsheft wirst du nicht geprüft! Zeugnis der Berufsschule: Falls du deine Abschlussnote mit auf das IHK-Zeugnis drucken lassen willst. Technik Laptop mit deiner Projektpräsentation: Vorher nochmal testen, ob alle verwendeten Schriftarten, Bilder, Videos usw. eingebettet oder korrekt verknüpft sind. Kein "witziges" oder unpassendes Hintergrundbild einstellen. Desktop vorher aufräumen. Presenter*: Damit du nicht ständig zum Laptop rennen musst, um die Folien durchzuschalten, und etwas in der Hand hast, an dem du dich festhalten kannst. Nutze nicht dein Handy (ist verboten) oder deine Maus (du kannst dich "verklicken"). VGA-/DVI-/HDMI-Kabel bzw. -Adapter für deinen Laptop: Oft gibt es Probleme mit dem Beamer vor Ort, der nicht den erwarteten Anschluss hat. Eigener Beamer: Nicht nur falls in deinem Prüfungsraum kein Beamer bereitgestellt wird. Der kann durchaus kaputt sein oder zu lichtschwach. Programmierte Anwendung bzw. dein Projektartefakt: Falls du sie live demonstrieren willst, wovon ich aber in den meisten Fällen abraten würde. Sonstiges Wasser: Oder irgendetwas anderes zu trinken. Viele Prüflinge haben durch die Aufregung einen trockenen Hals und das ist für den Vortrag nicht gerade förderlich. Nervennahrung: Schokoriegel oder lieber eine gesunde Nussmischung verkürzt die Wartezeit bis zur Prüfung. Vernünftige Kleidung: Nicht "overdressed", aber schicke Klamotten wie Hemd oder Bluse sind schon angebracht. Fallback Projektpräsentation: Deine Präsentation solltest du auf einem USB-Stick und/oder in der Cloud ablegen, falls dein Laptop den Geist aufgibt oder du Probleme mit dem Beamer bekommst. Projektdokumentation: Zumindest digital solltest du deine Projektdokumentation griffbereit haben, falls es Rückfragen zu deinen Inhalten gibt. Handout der Präsentation: Als Backup falls die gesamte Technik versagt. Nicht für jeden Prüfer ausdrucken! Timer*: Alternativ eine Uhr als Fallback für den nicht funktionierenden Präsentationsmodus in PowerPoint. Karteikarten/Vortragshilfen: Solltest du dich sicherer fühlen, kannst du statt des Präsentationsmodus auch Handkarten verwenden. Vorbereitung Standardfragen: Gut vorbereitete Antworten auf die klassischen Fragen im Fachgespräch solltest du auswendig im Kopf haben. Prüfungsraum begutachten: Wenn es dir möglich ist, kannst du vielleicht sogar deine Präsentation vor Ort live durchspielen. Nur so kannst du sicher sein, dass aus der späteren Position der Prüfer heraus alle Texte gut lesbar (Schriftgröße usw.) und Grafiken erkennbar (Kontrast usw.) sind. Zeit: Komm lieber deutlich zu früh zur Prüfung als ein wenig zu spät. Wir konnten z.B. schon öfter Prüflinge spontan um eine Stunde vorziehen, weil andere ausgefallen sind oder ihr Berichtsheft vergessen haben. Da macht es einen guten Eindruck, wenn du spontan reagieren kannst und bereitstehst. Download der Checkliste Hier kannst du dir die obige Checkliste in Kurzform zum Ausdrucken herunterladen: Checkliste für die Projektpräsentation und das Fachgespräch der IHK-Prüfung. Produktempfehlungen Ich nutze seit Jahren den Logitech R700 Professional Presenter* und kann ihn uneingeschränkt weiterempfehlen. * Ob als Pomodoro-Timer oder als Countdown bei Präsentationen, ich nutze fast täglich den TFA 38.2025 elektronischen 2-fach Timer*. * Links Permalink zu dieser Podcast-Episode RSS-Feed des Podcasts Warum du bei deiner Projektpräsentation unbedingt einen Presenter nutzen solltest Kleiderordnung bei der Abschlussprüfung (Projektpräsentation und Fachgespräch) Meine Hörbücher zur Vorbereitung auf das Fachgespräch Live-Demo in der Projektpräsentation Handout zur Projektpräsentation Einhaltung der Vortragszeit (15 Minuten) bei der Projektpräsentation Weitere Infos zur ProjektpräsentationDu suchst noch mehr Tipps rund um die Projektpräsentation? Dann schau doch mal in diese Artikel- und Podcast-Kategorie: Alle Artikel rund um die Projektpräsentation.Und wenn du dich für meinen Newsletter einträgst, kannst du dir jetzt sofort meine Checkliste für die Projektpräsentation herunterladen.Jetzt anmelden! Zusammenfassung Unterlagen einpacken Für deine mündliche Abschlussprüfung mit Projektpräsentation und Fachgespräch habe ich eine Checkliste zusammengestellt. Sie enthält Pflichtunterlagen sowie Empfehlungen, mit denen du dich auf technische Probleme vorbereitest. Die Angaben zu den Prüfungsregeln beziehen sich auf Mai 2020, als ich die Folge aufgenommen habe. Welche Unterlagen deine IHK verlangt, steht auch in deiner Prüfungseinladung. Prüfungseinladung der IHK: Der Prüfungsausschuss gleicht sie mit deinem Ausweis ab, um dich zu identifizieren. Gültiger Personalausweis: Prüfe rechtzeitig, wann er abläuft. Auch wenn du eine:n Prüfer:in kennst, brauchst du einen gültigen Ausweis, weil sich der Ausschuss personell ändern kann. Ausbildungsnachweis beziehungsweise Berichtsheft: Nach dem beschriebenen Stand ist er Voraussetzung dafür, dass du zur Abschlussprüfung zugelassen wirst, und muss zum Termin mitgebracht werden. Ich empfehle dir, ihn auszudrucken und ordentlich abzuheften. Bereits damals waren Änderungen denkbar, durch die einzelne IHKs das Berichtsheft nur noch bei der Anmeldung verlangen könnten. Kopie des Berufsschulzeugnisses: Sie ist optional. Gib sie ab, wenn deine Berufsschulabschlussnote auf dem IHK-Zeugnis erscheinen soll. Bei einer guten Note empfehle ich dir das, weil eine fehlende Berufsschulnote bei einer Bewerbung Fragen aufwerfen kann. In meiner Prüfungspraxis konnte ein:e IT-Azubi ein vergessenes Berichtsheft noch zu Hause holen, weil sich zwei Prüfungstermine tauschen ließen. Solche Ausnahmen hängen davon ab, ob vor Ort genug Zeit bleibt. Wenn du die Prüfung an diesem Tag nicht ablegen kannst, droht nach dem beschriebenen Ablauf ein halbes Jahr Wartezeit bis zum nächsten Termin. Geräte und Präsentation testen Laptop oder anderes Präsentationsgerät: Öffne deine Präsentation vorab auf dem Gerät, das du mitbringst. Kontrolliere sämtliche Folien und achte dabei auf Schriftarten, Bilder sowie eingebettete oder verknüpfte Inhalte. Verschobene Dateien können dazu führen, dass Inhalte fehlen. Aufgeräumter Desktop: Wähle ein neutrales Hintergrundbild. Die Titelfolie als Hintergrund ermöglicht einen ruhigen Übergang, wenn du den Präsentationsmodus erst zum Beginn startest und dadurch auch der Timer passend losläuft. Presenter: Damit schaltest du Folien weiter, während du frei im Raum stehst. Du kannst dir einen im Betrieb oder bei einem:einer anderen IT-Azubi ausleihen. Ein Smartphone kann der Prüfungsausschuss untersagen; bei einer Funkmaus können Klicks versehentlich andere Aktionen auslösen. Kabel und Adapter: Erkundige dich vorher nach den Anschlüssen des Beamers vor Ort. Für passende Adapter bist du selbst zuständig, wobei auch ältere VGA-Anschlüsse vorkommen können. ...
1 Stunde 8 Minuten
Über die Agile Ausbildung bei DATEV in Nürnberg spreche ich mit Uwe Ritthammer in der einhundertdreiundfünfzigsten Episode des IT-Berufe-Podcasts. TL;DR Im Gespräch mit Uwe Ritthammer habe ich das agile Ausbildungskonzept der DATEV kennengelernt: Als IT-Azubi lernst du in zweitägigen Modulen, deren Inhalte an dein Vorwissen angepasst werden. Dabei arbeitest du mit einem Backlog und übernimmst schrittweise Aufgaben aus Scrum, während du dein Wissen bereits im Fachbereich einbringst. Durch regelmäßiges Feedback und Retrospektiven entwickelst du deine Arbeitsweise weiter; dein:e Ausbilder:in passt die Module anhand der Rückmeldungen an. Die Anforderungen des Ausbildungsrahmenplans werden dabei fortlaufend mit den behandelten Inhalten abgeglichen. Kapitelmarken [00:00:00] Einstieg in die agile Ausbildung [00:01:27] Uwe Ritthammer und die Ausbildung bei DATEV [00:04:34] Uwes Weg von der Softwareentwicklung zur Ausbildung [00:07:15] Programmiersprachen bei DATEV [00:10:10] Agile Werte und der Ausbildungsrahmenplan [00:14:02] Individuelle Ausbildungspläne und die Anforderungen der Beteiligten [00:17:09] Scrum als Grundlage und der Blick auf EduScrum [00:18:45] Warum DATEV die IT-Schulungen verändert hat [00:21:26] Zweitägige Module mit Backlog und Retrospektive [00:23:13] Algorithmen und User-Stories am Beispiel Kniffel [00:25:16] Selbsttest und Gruppen mit ähnlichem Vorwissen [00:27:07] Von Programmierlogik bis zu Vererbung und Interfaces [00:29:13] Erfahrungen mit Lerntempo und Selbstständigkeit [00:31:12] Wie sich das Feedback der IT-Azubis verändert [00:34:52] Module durch kurze Feedbackzyklen verbessern [00:36:46] Gemeinsame Grundlagen für verschiedene IT-Berufe [00:39:02] Das Backlog am Board und die Rolle des Product Owners [00:40:21] Scrum-Rollen übernehmen und eine Projektwoche durchführen [00:42:10] Das Gelernte im Fachbereich anwenden [00:43:19] Aufgaben der Ausbilder:innen und das Gewöhnen an die Methode [00:46:13] Lernstand durch Feedback begleiten [00:48:31] IHK-Aufgaben in den Modulen [00:49:57] Module vorbereiten und passende Lernmedien auswählen [00:53:12] Human Resource Machine und Project Euler [00:55:53] Inhalte mit dem Ausbildungsrahmenplan abgleichen [00:58:13] Abschlussprojekt und gegenseitiges Feedback [01:00:28] Wie das agile Ausbildungskonzept entstanden ist [01:03:00] Buchempfehlung: von Kopf bis Fuß [01:04:48] Kontakt zu Uwe Ritthammer [01:05:57] Das Konzept an den eigenen Betrieb anpassen [01:06:59] Anregungen für die eigene Ausbildung und Shownotes Inhalt Allgemeines zur Person Wie ist dein Name und wo arbeitest du? Ich bin Uwe Ritthammer und ich komme aus dem schönen Nürnberg in Franken (nicht Bayern! ;-)) Ich arbeite bei DATEV. Wir entwickeln u.a. Software für Steuerberater. Wir haben ca. 8.000 Mitarbeiter, darunter 200 Azubis und Duale Studierende. In meiner Abteilung sind wir mit insg. 8 Personen für die Ausbildung zuständig. Wir übernehmen das volle Programm inkl. Marketing, Recruiting, Betreuung und Übernahme. Der IT-Bereich überwiegt bei uns. Ca. 65% der Azubis arbeiten in der IT, der Rest ist kaufmännisch unterwegs, aber es gibt u.a. auch Dialogmarketing. An welchen Projekten arbeitest du zur Zeit in deinem Tagesjob? Ich arbeite operativ mit den Azubis. Ich bin seit 2018 Ausbildungleiter und habe seitdem leider etwas weniger Zeit für aktive Zusammenarbeit. Wie bist du zur Informatik bzw. Softwareentwicklung gekommen? Ich habe schon als Kind gerne Computerspiele gespielt. Ich bin über Atari 2600, C64 und Amiga 500 zur Programmiersprache BASIC gekommen. Außerdem habe ich Assembler und C programmiert. Dann habe ich eine Ausbildung zum Datenverarbeitungskaufmann gemacht und nachher noch studiert. Zur Ausbildung bin ich über meine Berufspraxis gekommen. Dort habe ich lange Zeit IT-Schulungen durchgeführt. Welche Ausbildung bzw. welches Studium hast du im Bereich der Informatik absolviert? Ich habe klassisch Informatik studiert mit Schwerpunkt Wirtschaft. Mit welchen Programmiersprachen arbeitest du im Alltag? Wir entwickeln klassischerweise Windows-Anwendungen, daher hauptsächlich C#. Aber das wird weniger und wandert ins Web. Dort bin ich mit Java unterwegs. Auch die üblichen Frameworks wie Bootstrap zusammen mit JavaScript setze ich ein. Ich habe aber auch mal COBOL auf dem guten alten Mainframe entwickelt. Was ist deine Lieblingsprogrammiersprache und warum? C! Privat nutze ich gerne Linux und hacken geht mit C dort sehr gut. Dafür nehme ich sogar die möglichen Speicherlecks in Kauf. Agile Ausbildung Wie ist die Idee zur agilen Ausbildung entstanden? Wir haben das agile Manifest auf die Ausbildung übertragen. Dessen Werte fanden wir sehr passend: Individuen über Prozesse, funktionierende Software über Dokumentation, Zusammenarbeit über Vertragsverhandlungen, Reaktion auf Veränderungen über Verfolgen eines Plans. Der Ausbildungsrahmenplan der IHK steht dem nur scheinbar genau gegenüber. Die Berufsbilder sind seit 1997 recht technologieunabhängig formuliert. Der Rahmen wurde zwar vorgegeben, kann aber gedehnt werden. Auch nach 20 Jahren sind die Inhalte noch aktuell. Dieser Rahmen ist daher gar nicht so starr wie er scheint. Wir können uns frei bewegen innerhalb der Grenzen. Es gibt dafür sogar einen eigenen Paragraphen: man kann vom Rahmen abweichen, wenn dies notwendig oder sinnvoll ist. Das Berufsbild gibt nur die Mindestanforderungen vor. Wie funktioniert die agile Ausbildung genau? Das ist an der Organisation der Ausbildung ersichtlich. Es gibt keinen festen Durchlaufplan mehr (z.B. 5 Wochen Buchhaltung usw.), sondern die Azubis lernen agiler. Der Durchlaufplan wird nun für jeden Azubi individuell festgelegt und der Plan wird iterativ angepasst. Wir hatten z.B. einen Azubis, der die kaufmännischen Inhalte zunächst als störend empfand und der einfach hacken wollte. Darauf konnten wir flexibel reagieren. Das Ganze haben wir aufgezogen wie ein agiles Projekt. Zunächst haben wir evaluiert, wer unsere Stakeholder sind. IHK -> Gibt das Berufsbild vor. Azubis -> Wollen eine gute Ausbildung bekommen und viel lernen. DATEV -> "Kunde" der zukünftigen Mitarbeiter. Wie genau sieht die agile Ausbildung denn nun aus? Wir sind angefangen mit den Schulungen für die IT-Azubis. Aktuell benötigte Anforderungen des Unternehmens wurden über die Schulen nicht abgedeckt. Dort wird immer noch das gleiche gelehrt wie vor 20 Jahren. Und Microsoft Office hat einfach nichts mit Informatik zu tun! Daher hat DATEV einen hohen Initialaufwand, um junge Leute auf ein Level zu heben, das für die aktive Mitarbeit im Projekt reicht. Daher haben wir schon immer viel Schulungsaufwand gehabt. Aber 2 Wochen C++ am Stück sind z.B. zu viel für viele Azubis. Daher haben wir die Schulungen "agilisiert" und leichter verdaulich gemacht. Der Kern der agilen Ausbildung sind Zwei-Tagesmodule, die aufeinander aufbauen. Sie haben ein einheitliches Muster. Die Schulungsinhalte stehen z.B. im "Backlog". Ein Daily Standup gehört direkt dazu. Beim ersten Treffen wird u.a. das Vorwissen der Teilnehmer abgeklärt/abgeglichen. Die Schulungen starten zu Beginn oft mit einem Rechercheauftrag. Kleine Teams (meist 2 Leute) bleiben zusammen, z.B. für diese Recherche oder ein Pair Programming. Dann gibt es eine Mini-Projektaufgabe zum Umsetzen, oft z.B. Spiele für Algorithmen. Kniffel bietet sich dabei an ("kleine Straße" erkennen usw.). Das Spiel wird auch wirklich einmal gespielt, um dann User Stories daraus abzuleiten. Wie in einem echten Projekt! Dann kommt die Umsetzung am Computer und eine Retrospektive am Ende jedes Bausteins. Dort klären wir u.a. was wir (Dozenten und Azubis) besser machen könnten? Was ist denn euer "Einstiegsbaustein" zu Beginn der Ausbildung? Es gibt einen "Selbsttest", um den individuellen Stand der Azubis zu erfassen, z.B. in den Bereichen Coding, Java, Struktogramme verstehen, Reihenfolge von Algorithmen. Am Ende gibt es dann Feedback: Wo stehen die Teilnehmer? Dann werden homogene Gruppen gebildet, die in einem gleichen Lerntempo arbeiten können. Heterogene Teams funktionieren nicht so gut, weil Fortgeschrittene Fehler der Schlechten einfach korrigieren. "Logik der Programmierung" ist dann der der erste "echte" Baustein. Er ist ein Pflichtteil oder optional, je nach Azubi und dessen Kenntnisstand. Die Bausteine bauen alle aufeinander auf. Im Standup wird immer der letzte Baustein reflektiert. Es geht weiter mit Datentypen, Algorithmen, Objektorientierung, Vererbung usw. (insg. 6 Monate). Wie gut funktioniert dieses Vorgehen? Wir fragen uns oft, ob wir noch Zeit sparen können oder ob es nicht schneller oder mit weniger Aufwand gehen könnte. Die Azubis legen ein hohes Tempo vor nach der Anpassung an Scrum. Sie gewinnen an Selbstständigkeit. Gerade bei abstrakten Themen wie Vererbung sind die Schulungen fast ein Selbstläufer. Die Azubis lernen das Lernen. Im letzten Block halten sie die Scrum-Meetings schon selbst. Sie verinnerlichen die Scrum-Methodik einfach. Anhand der Retrospektive (1h Feedback am zweiten Tag) sieht man die Verbesserung der Azubis. Aus "Der Kaffee war gut" und "Die Logik war mir zu technisch" werden über die Zeit deutlich sinnvollere Kommentare und echte Anregungen und Bewertungen. Die Azubis sind sehr "getriggert" durch die Schule. Eine Aufgabe gemeinsam zu lösen und auch die eigene Selbstständigkeit müssen erst trainiert werden. Es werden auch komplett andere Inhalte und fachliches Feedback von den Azubis eingebracht, z.B. SQL Island oder mehr eigene Präsentationen. Wird das Feedback direkt in die nächsten Bausteine eingebaut? Wir haben meist mehr als drei Azubis in einer Gruppe, oft ca. 10 Leute. Ein Baustein wird 3x mit unterschiedlichen Gruppen gemacht, also können wir sogar direkt das Feedback für die nächste Gruppe einfließen lassen. Die Azubis bekommen mit, dass die Dozenten wirklich Feedback wollen und sich verbessern möchten und liefern dann auch konstruktives Feedback. ...
1 Stunde 19 Minuten
Viele konkrete Bewerbungstipps und Infos über den Bewerbungsprozess in Unternehmen von Personalvermittlerin Vanessa Stammnitz gibt es in der einhundertzweiundfünfzigsten Episode des IT-Berufe-Podcasts. TL;DR Für deinen Berufseinstieg nach der IT-Ausbildung habe ich mit Personalberaterin Vanessa Stammnitz über die Jobsuche gesprochen. Bewirb dich etwa sechs Monate vor deinem gewünschten Start und zeige mit einer Projektliste, was du bereits gemacht hast. Auch wenn dir einzelne gefragte Technologien fehlen, kannst du dich auf eine passende Stelle bewerben; im Gespräch zählen ebenso deine Lernbereitschaft und wie du ins Team passt. Eine Personalberatung kann dich beim gesamten Prozess begleiten und vorab Fragen zum Gehalt klären, wobei Vanessas Beratung für dich als Bewerber:in kostenlos ist. Kapitelmarken [00:00:00] Bewerbung und Jobsuche nach der IT-Ausbildung [00:01:39] Vanessa Stammnitz und ihre Personalberatung [00:02:43] SAP und Industrie 4.0 [00:04:43] Offene Stellen besetzen und Start-ups begleiten [00:07:35] Bewerber:innenmarkt und Arbeitsumfeld [00:08:44] Großraumbüros und wechselnde Schreibtische [00:11:37] Vanessas Weg in die Personalberatung [00:14:48] Alltag und gezielte Suche nach Bewerber:innen [00:16:20] Private Daten und problematische Inhalte im Internet [00:19:22] Fähigkeiten im Lebenslauf und im Portfolio zeigen [00:21:03] Brauchst du eine eigene Onlinepräsenz? [00:24:45] Der erste Kontakt mit einer Personalberatung [00:25:30] Berufliche Ziele und passende Stellen klären [00:29:08] Kosten und Hilfe bei Fragen zum Gehalt [00:31:43] Stellen vorschlagen und Wunscharbeitgeber hinterfragen [00:34:36] Unbekannte Unternehmen und passende Teams [00:36:09] Gehalt und persönlicher Eindruck [00:37:49] Schwache Noten im Vorstellungsgespräch ansprechen [00:39:51] Anschreiben, Lebenslauf und Projektliste [00:43:18] Arbeitszeugnisse und vollständige Unterlagen [00:45:22] Zertifikate und praktische Erfahrung [00:47:18] Bewerben trotz fehlender Technologiekenntnisse [00:50:38] Wann du dich vor Ausbildungsende bewerben solltest [00:52:47] Wie lange ein Bewerbungsprozess dauert [00:56:55] Mehrere Angebote und offene Kommunikation [01:00:07] Wie Unternehmen mit mehreren Kandidat:innen umgehen [01:01:38] Warum Unternehmen Personalberatung beauftragen [01:04:35] Fachkenntnisse und Persönlichkeit im IT-Team [01:07:43] Kommunikation und Zusammenarbeit in IT-Berufen [01:08:49] Chancen mit Ausbildung oder Studium [01:11:14] Umschulung und ältere Bewerber:innen [01:13:10] Nachfrage nach erfahrenen COBOL-Entwickler:innen [01:14:52] Eine passende Personalberatung auswählen [01:16:45] Kontakt zu Vanessa und Hinweise im Blog [01:18:30] Shownotes und Feedback Allgemeines zur Person Wie ist dein Name und wo arbeitest du? Vanessa Stammnitz, seit 2017 Inhaberin von Stammnitz Personal, einer Personalberatung mit Schwerpunkt SAP. Ich komme ursprünglich aus Leipzig, lebe und arbeite aber in Esslingen. Wir vermitteln insb. SAP-Berater, sind aber auch im Bereich Industrie 4.0 unterwegs. Die beiden Bereiche wachsen aktuell zusammen, da Künstliche Intelligenz, Robotik und autonome Bereiche der Produktion auch in SAP Einzug halten bzw. von dort gesteuert oder überwacht werden. An welchen Projekten arbeitest du zur Zeit in deinem Tagesjob? Ich bin in der Personalvermittlung tätig, die häufig in Form von kleinen Projekten abläuft. Ein Kunde erteilt mir z.B. einen Suchauftrag für einen SAP-Entwickler und ich lege los, z.B. mit einer Internet-Recherche. Meine Kunden sind häufig Startups, z.B. aus dem Bereich Industrie 4.0, die oft (noch) keine eigene Human-Resources- oder Personalabteilung haben, und teils zum ersten Mal außerhalb des eigenen Freundeskreises Personal suchen. Ich bin Ansprechpartner für viele Aufgaben im Bereich Personal, z.B. auch Coaching, Teamaufbau, Mitarbeiter führen und halten, alte Hierarchien aufbrechen. Die Arbeitswelt ändert sich aktuell stark. Stichwörter sind Arbeit 4.0, Homeoffice, Agilität oder New Work. Dafür braucht man neue Prozesse oder Strategien. Unternehmen müssen mitarbeiterfreundlicher werden, denn wir haben aktuell einen Bewerbermarkt! Es gibt viel zu wenige Bewerber aktuell. Meine Kunden suchen teilweise 1-2 Jahre selbst, bevor sie mich ansprechen. Viele haben schon ihre Anforderungen an die Bewerber herruntergeschraubt und trotzdem niemanden gefunden. Mitarbeiter müssen Spaß an der Arbeit haben! Aktuelle Hypes sind z.B. Großraumbüros mit viel Glas und ohne feste Arbeitsplätze. Das führte jedoch dazu, dass viele Entwickler das gar nicht so gut fanden. Wer möchte schon jeden Tag um seinen "Lieblingsplatz" mit den Kollegen kämpfen? Wenn man dank Homeoffice nur 2 Mal im Monat im Büro ist, geht das vielleicht, aber für die tägliche Arbeit ist das Mist. Wie bist du zur Personalvermittlung gekommen? Ich habe klassisch BWL studiert. Mein duales Studium habe ich im Handel absolviert in einem eher konservativen Unternehmen. Danach habe ich bewusst eine 180-Grad-Wendung gemacht und auf einer Jobmesse eine Personalberatung als neuen Arbeitgeber entdeckt. Danach habe ich mich dann in diesem Bereich selbstständig gemacht. Welche Ausbildung bzw. welches Studium hast du absolviert? Leider kann man "Personal" nicht direkt studieren und es gibt auch keine Ausbildung. Viele Personalvermittler sind daher ITler oder - wie ich - BWLer. Meine Mitarbeiterin Jannika ist Studentin mit Schwerpunkt Personalmanagement. Einige Master-Studiengänge drehen sich um Personal. Das Thema hat auch viel mit Psychologie zu tun und natürlich auch mit rechtlichen Inhalten. Personaldienstleistungen Recruiting-Prozess Wie sieht die tägliche Arbeit einer Personalberaterin aus? Ca. 70% der Arbeit laufen telefonisch ab, 30% per Mail oder im persönlichen Gespräch. Ich muss viele Details und Fragen mit potentiellen Kandidaten abklären. Die technische Suche läuft häufig über Xing bzw. LinkedIn, aber vermehrt auch einfach per Google. Ich finde viele Lebensläufe über Google, komplett mit Namen, Bild usw. völlig frei zugänglich. Da sind immer häufiger auch Bilder oder Videos online, die für den Bewerber nicht so toll aussehen. Beispiel: Ein Azubi suchte einen neuen Betrieb. Bei einer Google-Suche nach seinem Namen wurde direkt ein Bild von ihm im Anzug, aber mit einer Feuerwaffe in der Hand angezeigt. Das finde nicht nur ich schnell, sondern auch ein potentieller Arbeitgeber. Ich coache auch Bewerber, die sich - gerade in der IT - falsch oder unglücklich darstellen. Sie stellen ihr Licht häufig unter den Scheffel. Da pushe ich ein bisschen, damit sie mir Selbstvertrauen zeigen. Muss man heutzutage (als ITler) online auffindbar sein? Grundsätzlich haben einfach viele ITler heute eine Online-Präsenz. Und Bewerber werden über Google gesucht! Dessen muss man sich einfach bewusst sein. Seine (technischen) Projekte zu zeigen ist sicherlich gut für Bewerber. Aber auch die privaten Hobbys - z.B. eine Fotografie-Seite - sind potentiell interessant, da es bei Stellenbesetzungen oftmals um den Menschen geht und nicht um die Technik. Andersherum ist es vielleicht für einen Bewerber im Bereich IT-Security gerade gut, wenn man ihn nicht online findet! Da könnte man direkt im Bewerbungsgespräch fragen, wie er das hinbekommen hat. Insgesamt sollte der Online-Auftritt einfach zum anvisierten Job passen. Ein Webentwickler sollte heute einfach online sein! Sicht der Bewerber Wie läuft der gesamte Prozess bis zur Einstellung ab? Bewerber bewerben sich direkt auf Stellenausschreibungen, für die ich die Ansprechpartnerin bin oder bitten mich um Hilfe bei der Stellensuche. Ich frage dann zuerst, warum er wechseln möchte. Liegt es z.B. am Standort, dem Geld usw.? Dann frage ich, welches Unternehmen passen könnte oder welcher Fachbereich. Gerade direkt nach Ausbildung ist das wichtig: Welcher Bereich passt zum Bewerber? Soll es vielleicht doch noch ein Studium sein? Ist vielleicht ein Sabbatical geplant? Wichtig ist auch die Unterscheidung zwischen Großkonzern und Mittelstand oder Kleinunternehmen. Das kostet zwar zunächst Zeit, filtert aber viele unpassende Stellen direkt heraus und lohnt sich daher später. Weitere Fragen sind z.B. Präferenzen zur Teamarbeit vs. Homeoffice, Bedürfnisse von Bewerbern mit Kindern, Interesse an Teilzeit usw. Nach diesem Vorgespräch suche ich dann eine konkrete Stellenausschreibung und stelle sie dem Bewerber vor, inkl. Informationen zum zukünftigen Chef, den Projekten, ggfs. nötigen Englischkenntnissen usw. Viele Bewerber sind gerade bei der ersten Bewerbung überwältigt von dem ganzen Drumherum. Wer übernimmt die Kosten für das Verfahren? Für die Bewerber ist eine Personalberatung immer kostenfrei. Die Unternehmen bezahlen die Vermittlungskosten. Welche Vorteile bietet die Zusammenarbeit mit einer Personalberaterin den Bewerbern? Personalberater sind neutrale Partner der Bewerber. Ihnen darf man auch "dumme" Fragen stellen. Und sie beruhigen die Kandidaten z.B. vor dem ersten Interview durch ein Bewerbungstraining. Wann fragt man z.B. am besten nach dem Gehalt? Das kann ggfs. schon vorab geklärt werden. Meist ist zumindest eine Gehaltsspanne bekannt. Personalberater suchen auch direkt gut passende Stellen für die Bewerber heraus. "Traumarbeitgeber" kann man auch nennen und manchmal funktioniert das sogar. Viele Bewerber wissen aber gar nicht genau, warum sie z.B. zu Microsoft wollen. Startups tun sich häufig schwer, gute Bewerber zu finden, weil die Kandidaten eher zu etablierten Unternehmen wollen. Dabei sind Startups durchaus interessante Arbeitgeber. Ich betreue z.B. seit 2014 einen Kunden mit 4 IT-Mitarbeitern, der SAP eingeführt hat. Dort habe ich von Beginn an das Team mit aufgebaut. Der Chef war sehr nett, aber das wusste niemand, da das Startup sich noch keinen Namen gemacht hatte. Gerade Junioren lassen sich häufig von Geld blenden. Eine Forderung nach 65.000 EUR zum Einstieg ist da keine Seltenheit. Dabei sind ein doofer Chef und langweilige Aufgaben viel schlimmer für die Zu
1 Stunde 4 Minuten
Um die langersehnte Neuordnung der IT-Berufe zum 01.08.2020 geht es in der einhunderteinundfünfzigsten Episode des IT-Berufe-Podcasts. TL;DR Ich habe die neuen Vorgaben zur Neuordnung der IT-Berufe zum 1. August 2020 mit den bisherigen Inhalten verglichen, wobei mein Schwerpunkt auf der Anwendungsentwicklung liegt. Für Fachinformatiker:innen gibt es künftig vier Fachrichtungen; außerdem zählt Teil 1 der gestreckten Abschlussprüfung nach 18 Monaten mit 20 Prozent zur Abschlussnote. In der Anwendungsentwicklung werden Unit-Tests und Versionsverwaltung ausdrücklich Pflicht, während viele bisherige Ausbildungsinhalte in neu formulierten Punkten weitergeführt werden. Weil die erste Prüfung bereits benotet wird, muss dein:e Ausbilder:in die dafür vorgesehenen Inhalte rechtzeitig einplanen. Kapitelmarken [00:00:00] Neuordnung der IT-Berufe zum 1. August 2020 [00:01:12] Neue Verordnungen und mein Vergleich der Ausbildungsinhalte [00:05:08] Vier Fachrichtungen für Fachinformatiker:innen [00:05:59] Daten- und Prozessanalyse [00:07:03] Digitale Vernetzung und Industrie 4.0 [00:08:04] Meine Kritik an den neuen Spezialisierungen [00:10:06] Neue kaufmännische IT-Berufe [00:11:58] IT-Systemelektroniker:innen und das Sperrfach [00:12:48] Gestreckte Abschlussprüfung und Teil 1 [00:15:37] Gewichtung der Prüfungsbereiche [00:17:25] Schriftliche Fachprüfungen in der Anwendungsentwicklung [00:19:12] Mehr Zeit für die Projektarbeit [00:21:05] Ausbildungsrahmenplan und betrieblicher Ausbildungsplan [00:23:48] Offenere Vorgaben zu Programmierparadigmen [00:24:50] Veränderungsprozesse begleiten [00:25:26] Verfügbarkeit, Ausfallwahrscheinlichkeit und Backups [00:26:33] Präventive Wartung und meine Bedenken [00:28:22] Teilaufgaben von IT-Systemen automatisieren [00:29:56] Unit-Tests und Versionsverwaltung als Pflichtinhalte [00:31:55] Lebensbegleitendes Lernen [00:33:00] Berufliche Informationsquellen und Weekly Review [00:34:18] Gesellschaftliche Vielfalt wertschätzen [00:35:53] Persönlichkeitsrechte im digitalen Raum [00:37:08] Ethische Verantwortung bei IT-Lösungen [00:40:45] Suche nach bisherigen Inhalten im neuen Rahmenplan [00:41:42] Schriftverkehr und Besprechungsprotokolle [00:42:51] Ergonomie am Arbeitsplatz [00:44:18] Daten sichern und wiederherstellen [00:45:14] Schulungen planen und durchführen [00:46:26] Betriebssysteme anpassen und konfigurieren [00:49:13] Teil 1 und seine Folgen für die Ausbildungspraxis [00:50:31] Prüfungsinhalte für den IT-gestützten Arbeitsplatz [00:53:22] Kritik am wirtschaftlichen Schwerpunkt von Teil 1 [00:56:26] Den betrieblichen Ausbildungsplan zeitlich anpassen [00:57:24] Excel-Dateien für den Ausbildungsplan [00:58:43] Meine Empfehlung zum Start der neuen Fachrichtungen [01:01:17] Unterlagen zur Neuordnung in den Shownotes [01:01:56] Feedback und Austausch zur neuen Ausbildung Inhalt Zusammenfassung der Änderungen Vergleich der Ausbildungsverordnungen Prüfungsinhalte Teil 1 Neuer Rahmenplan vs. alter Rahmenplan Alter Rahmenplan vs. neuer Rahmenplan Downloads Links Zusammenfassung der Änderungen für Fachinformatiker Einführung von zwei neuen Fachrichtungen: Daten- und Prozessanalyse (FIDP) und Digitale Vernetzung (FIDV) FIDP ist quasi der "KIler" unter den Fachinformatikern, aber auch in Richtung (SAP-)Beratung unterwegs FIDV ist im Bereich Industrie 4.0 zuhause und hat einen großen Bezug zu den Systemelektronikern Einführung einer gestreckten Abschlussprüfung Teil 1: Einrichten eines IT-gestützten Arbeitsplatzes für alle IT-Berufe identisch nach 18 Monaten ersetzt die Zwischenprüfung und ist relevant für die Abschlussnote 90min schriftliche Prüfung Neue Gewichtung der Prüfungsteile für die Abschlussnote Teil 1: 20% Projektarbeit: 50% (davon jeweils 50% für Dokumentation und Präsentation/Fachgespräch) zwei berufsspezifische schriftliche Prüfungen (früher GA1 und GA2): jeweils 10% Wirtschafts- und Sozialkunde: 10% Mehr Zeit für die Projektarbeiten: 80h für FIAE, 40h für alle anderen (nach oben) Vergleich der Ausbildungsverordnungen Neuer Paragraph Änderung Alter Paragraph und Alter Inhalt §4 (1) Gliederung der Fertigkeiten, Kenntnisse und Fähigkeiten (FKF) in- fachrichtungsübergreifend berufsprofilgebend- berufsprofilgebend nach Fachrichtung- fachrichtungsübergreifend, integrativ zu vermitteln §10: Auflistung der Fertigkeiten und Kenntnisse §4 (2)-(7) Bündelung der FKF in sog. Berufsbildpositionen §4 (8) Gemeinsame Berufsbildpositionen für alle IT-Berufe §5 Einsatzgebiete für FIAE und FISI §10 (3): gleich geblieben §5 (3)-(4) Einsatzgebiete für FIDP und FIDV §6 Ausbildungsplan muss spätestens zu Beginn der Ausbildung vorliegen §12 §7 (1) Abschlussprüfung in Teilen 1 und 2 §8 Inhalte Teil 1 sind die FKF 1.-7. der ersten 18 Monate aus dem Ausbildungsrahmenplan + dazu passende Berufsschulinhalte §14: Zwischenprüfung §9 (1) Prüfungsbereich "Einrichten eines IT-gestützten Arbeitsplatzes" §9 (2) Inhalte Prüfung Teil 11. Kundenbedarfe zielgruppengerecht ermitteln2. Hard- und Software auswählen und ihre Beschaffung einleiten3. einen IT-Arbeitsplatz konfigurieren und testen und dabei die Bestimmungen und die betrieblichen Vorgaben zum Datenschutz, zur IT-Sicherheit und zur Qualitätssicherung einhalten4. Kunden und Kundinnen in die Nutzung des Arbeitsplatzes einweisen5. die Leistungserbringung kontrollieren und protokollieren §9 (3)-(4) Teil 1: 90min schriftliche Prüfung §14 (3): 180min Zwischenprüfung §10 (1) Inhalte für Teil 2 der Prüfung sind alle Inhalte aus dem Ausbildungsrahmenplan + alle Berufsschulinhalte §10 (2) Was schon in Teil 1 drankam, soll in Teil 2 nicht noch einmal abgefragt werden §11 Prüfungsbereiche Teil 2 FIAE1. Planen und Umsetzen eines Softwareprojektes2. Planen eines Softwareproduktes3. Entwicklung und Umsetzung von Algorithmen4. Wirtschafts- und Sozialkunde §15 (3): GA1, GA2, WiSo §12 (2) Inhalte Planen und Umsetzen eines Softwareprojektes (Teil 1)1. kundenspezifische Anforderungen analysieren2. eine Projektplanung durchführen3. eine wirtschaftliche Betrachtung des Projektes vornehmen4. eine Softwareanwendung erstellen oder anpassen5. die erstellte oder angepasste Softwareanwendung testen und ihre Einführung vorbereiten6. die Planung und Durchführung des Projektes anforderungsgerecht dokumentieren §15 (2) 1.: Softwareprodukt oder Pflichtenheft §15 (2): Projektantrag: das zu realisierende Konzept einschließlich einer Zeitplanung sowie der Hilfsmittel zur Präsentation §15 (2) 1.: 70h "einschließlich" Dokumentation §12 (3) Teil 21. die Arbeitsergebnisse adressatengerecht präsentieren2. Vorgehensweise bei der Durchführung der betrieblichen Projektarbeit begründen §15 (2): gleich geblieben §15 (2): insg. höchstens 30min §12 (4) Doku und mdl. Prüfung zählen jeweils 50% §15 (2): gleich geblieben §13 (1) Inhalte Planen eines Softwareproduktes1. Entwicklungsumgebungen und -bibliotheken auswählen und einsetzen2. Programmspezifikationen anwendungsgerecht festlegen3. Bedienoberflächen funktionsgerecht und ergonomisch konzipieren4. Maßnahmen zur Qualitätskontrolle planen und durchführen §15 (4) 1.: Inhalte GA1Softwarekomponenten auswählenProgrammspezifikationen anwendungsgerecht festlegenBedienoberflächen funktionsgerecht und ergonomisch konzipieren §13 (2)-(3) 90min schriftliche Prüfung §15 (5) 1.: 90min für GA1 §14 (1) Inhalte Entwicklung und Umsetzung von Algorithmen1....
51 Minuten
Um die Neuerungen, aber auch weitere wichtige Festlegungen des Berufsbildungsgesetzes (BBiG) geht es in der einhundereinundfünfzigsten Episode des IT-Berufe-Podcasts. TL;DR Ich habe die Paragrafen des Berufsbildungsgesetzes (BBiG) zusammengestellt, die deinen Alltag als IT-Azubi betreffen, einschließlich der Änderungen zum 1. Januar 2020. Du erfährst, welche Regeln für Teilzeit, Fachliteratur und dein Berichtsheft gelten, wann der Betrieb dich für Schule oder Prüfungen freistellen muss und welche Mindestvergütung damals eingeführt wurde. Außerdem findest du die Grundlagen dafür, wer dich ausbilden darf, wie deine Abschlussprüfung abläuft und wann aus deiner Ausbildung ein Arbeitsverhältnis wird. Kapitelmarken [00:00:00] Einführung in das Berufsbildungsgesetz [00:00:20] Neuer Podcastname und 150. Episode [00:01:35] Änderungen zum 1. Januar 2020 und Auswahl der Paragrafen [00:04:26] § 7a: Ausbildung in Teilzeit [00:06:40] Rechtlicher Rahmen und Hinweise zum Gesetzesstand [00:08:29] § 14: Fachliteratur für die Ausbildung [00:10:43] Berichtsheft während der Arbeitszeit [00:11:32] Ausbildungsfremde Aufgaben und Bußgelder [00:12:44] § 15: Berufsschule und Arbeitszeit [00:15:12] Zusätzliche Ausbildungsveranstaltungen bei Blockunterricht [00:16:28] Betriebliche Arbeit vor dem Berufsschulunterricht [00:16:59] Freier Tag vor der schriftlichen Abschlussprüfung [00:19:25] § 17: Mindestvergütung für Azubis [00:23:24] § 21: Wann deine Ausbildung endet [00:24:36] § 24: Arbeitsverhältnis durch Weiterbeschäftigung [00:25:25] § 27: Verhältnis von Azubis zu Fachkräften [00:27:54] § 30: Eignung der Ausbilder:innen [00:31:47] § 37: Abschlussprüfung wiederholen [00:32:39] Berufsschulergebnis auf dem IHK-Zeugnis [00:33:49] § 40: Freistellung für Prüfer:innen [00:36:41] Mitglieder des Prüfungsausschusses [00:37:28] § 42: Prüferdelegationen [00:39:33] Projektdokumentation durch zwei Prüfer:innen bewerten [00:41:16] § 43: Voraussetzungen für die Abschlussprüfung [00:42:20] § 45: Abschlussprüfung als Quereinsteiger:in [00:43:32] § 48: Gestreckte Abschlussprüfung ersetzt die Zwischenprüfung [00:44:35] § 53a: Bachelor Professional und Master Professional [00:47:34] Weitere Paragrafen und eigene Rechte nachlesen [00:49:38] Gesetzestext und Shownotes Inhalt Dies ist meine Auswahl an "interessanten" Auszügen aus dem (neuen) BBiG. Neben den Änderungen zum 01.01.2020 habe ich auch einige "alte" Paragraphen aufgeführt, die einige wichtige Sachverhalte rund um die Ausbildung klären, von denen jeder Ausbilder und Azubi mal gehört haben sollte. §7a: Teilzeitausbildung Jeder Azubi hat nun das Recht, seine Ausbildung in Teilzeit zu absolvieren. Dabei kann die Arbeitszeit um max. 50% reduziert werden. Die reduzierte Arbeitszeit muss an die Dauer der Ausbildung angehängt werden. Beispiel: 50% Reduktion (z.B. 19 statt 38 Stunden pro Woche), dafür 50% Verlängerung (4,5 statt 3 Jahre). Ob und wie die Berufsschule das Ganze unterstützt ist (noch) nicht festgelegt. §14 Bereitstellung von Fachliteratur Das Ausbildungsunternehmen muss dem Azubi nun auch Fachliteratur bereitstellen (z.B. leihen oder kaufen). Bislang galt das nur für Werkzeuge usw., was für unsere IT-Berufe aber so gut wie nie nötig war. In diesem Paragraphen steht übrigens auch, dass das Berichtsheft am Arbeitsplatz zu führen ist (und nicht etwa in der Freizeit). §15 Freistellung für die Berufsschule Jeder Azubi (egal ob minder- oder volljährig) bekommt nun an einem Berufsschultag mit mehr als 5 Unterrichtsstunden zu je 45 Minuten seine gesamte tägliche Arbeitszeit angerechnet (z.B. 8 Stunden bei einer 40-Stunden-Woche) und muss an diesem Tag nicht mehr ins Unternehmen. Bei einer Blockwoche mit mind. 25 Unterrichtsstunden an mind. 5 Tagen wird die gesamte wöchentliche Arbeitszeit angerechnet (z.B. 40 Stunden). Azubis werden am Arbeitstag vor der schriftlichen Prüfung (in Zukunft einmal nach 18 Monaten zum ersten Teil der gestreckten Abschlussprüfung und einmal nach 3 Jahren zum zweiten) freigestellt. §17 Mindestausbildungsvergütung Es gibt nun einen "Mindestlohn" für Azubis, der sich in den kommenden Jahren schrittweise erhöht. Im Jahr 2020 liegt er bei 515 EUR pro Monat. Es gibt allerdings einige Ausnahmen von dieser Regelung, insb. für Betriebe, die keinem Tarifvertrag unterliegen. §21 Ausbildungsende mit Bekanntgabe des Ergebnisses Die Ausbildung endet bereits vor dem im Ausbildungsvertrag vereinbarten Ende mit der Mitteilung des Prüfungsergebnisses durch den Prüfungsausschuss an den Azubi. Damit sind nicht die Noten gemeint (die oft nicht herausgegeben werden dürfen), sondern das "Kreuzchen" bei "bestanden". §24 Unbefristeter Vertrag durch Weiterbeschäftigung Sollte der Azubi am Tag nach der Prüfung (sofern er bestanden hat) ohne einen Arbeitsvertrag weiter in deinem Unternehmen beschäftigt werden, gilt damit automatisch ein unbefristeter Arbeitsvertrag als begründet. §27 angemessenes Verhältnis von Azubis zu Fachkräften Betriebe dürfen nicht einfach so viele Azubis beschäftigen wie möglich, sondern müssen für ein angemessenes Verhältnis zur Anzahl der Fachkräfte sorgen. Das Gesetz nennt keine Zahlen, aber an anderer Stelle ist von einem Verhältnis von ungefähr 3 Fachkräften je 1 Azubi zu lesen. §30 Fachliche Eignung der Ausbilder Ausbilden dürfen Personen, die den gleichen (oder einen ähnlichen) Berufsabschluss erworben haben (also die IHK-Prüfung abgelegt haben). Außerdem dürfen auch Hochschulabsolventen eines vergleichbaren Faches ausbilden. §37 Wiederholen der Prüfung und Berufsschulnote auf dem IHK-Zeugnis Die Abschlussprüfung darf bei Nichtbestehen zweimal wiederholt werden. Wenn der Azubi die Abschlussnote der Berufsschule mit auf das IHK-Zeugnis gedruckt haben möchte, kann er dafür einfach eine Kopie seines Berufsschulzeugnisses einreichen. §40 Mind. 3 Prüfer im Ausschuss Der Prüfungsausschuss muss aus mind. 3 Personen bestehen. Der Ausschuss muss paritätisch aus Lehrern, Arbeitnehmer- und Arbeitgebervertretern besetzt sein. Ab 2020 sind Prüfer für ihre ehrenamtliche Tätigkeit vom Arbeitgeber freizustellen. §42 Prüferdelegationen Statt des in §40 beschriebenen Ausschusses aus mind. 3 Personen, können von der IHK auch sog. Prüferdelegationen bestimmt werden, die mit weniger Teilnehmern prüfen dürfen. Prüfungsartefakte wie die Projektdokumentation, die nicht die Anwesenheit des Prüflings für die Bewertung erfordern (wie z.B. das Fachgespräch), können auch von nur 2 Prüfern bewertet werden. §43 Zulassung zur Prüfung nur mit Zwischenprüfung und Berichtsheft Azubis dürfen die Abschlussprüfung nur ablegen, wenn sie an der Zwischenprüfung teilgenommen haben (bestehen muss man nicht) und ihren Ausbildungsnachweis (das geliebte Berichtsheft) ordnungsgemäß geführt haben. §45 Zulassung zur Prüfung durch 1,5x Ausbildungszeit im Beruf Quereinsteiger können zur Prüfung zugelassen werden, wenn sie das 1,5-fache der Ausbildungszeit (also 1,5 * 3 = 4,5 Jahre) praktisch im Beruf gearbeitet haben. §48 Zwischenprüfung entfällt bei gestreckter Abschlussprüfung Ab 2020 werden die Prüflinge in den IT-Berufen auch eine gestreckte Abschlussprüfung absolvieren müssen. In diesem Fall entfällt die Zwischenprüfung. Sie wird ersetzt durch den ersten Teil der Abschlussprüfung. §53a Abschlussbezeichnungen Ab 2020 werden die verschiedenen Weiterbildungen nach der Ausbildung (z.B. Meister, Fachwirt, Operative Professional) den akademischen Abschlüssen Bachelor und Master gleichgestellt. Abhängig vom zeitlichen Umfang der Weiterbildungen darf man sich dann z.B. "Bachelor Professional" nennen. §101 Bußgelder für ausbildungsfremde Tätigkeiten Dieser Paragraph listet einige Ordnungswiedrigkeiten auf, die teils mit Geldstrafen bis zu 5.000 EUR belegt werden können. Insb. die Beschäftigung von Azubis mit ausbildungsfremden Tätigkeiten ist hier erwähnenswert. Links Permalink zu dieser Podcast-Episode RSS-Feed des Podcasts Das neue Berufsbildungsgesetz (BBiG) Berufsbildungsgesetz novelliert: Die wichtigsten Neuerungen im Überblick Datenbank Tarifliche Ausbildungsvergütungen Voraussetzungen für die betriebliche Ausbildung / 2.5 Das Verhältnis der Zahl der Auszubildenden zur Zahl der Fachkräfte Zusammenfassung Zeitlicher und rechtlicher Rahmen Für deinen Alltag als IT-Azubi habe ich ausgewählte Paragrafen des Berufsbildungsgesetzes (BBiG) zusammengestellt. Der Überblick stammt aus Anfang 2020 und berücksichtigt die Änderungen zum 1. Januar 2020 sowie die damals bevorstehende Neuordnung der IT-Berufe. Ich stütze mich auf den Gesetzestext, ergänzende Kommentare und eine Veranstaltung der IHK Oldenburg. Meine Angaben sind ohne Gewähr; für rechtliche Fragen kannst du den Gesetzestext heranziehen oder eine:n Rechtsanwält:in fragen. Teilzeit: § 7a Seit der Änderung kannst du eine Ausbildung in Teilzeit auch ohne besonderen Grund beantragen. Dabei darfst du deine tägliche oder wöchentliche Ausbildungszeit um höchstens 50 Prozent reduzieren. Die Ausbildung dauert dadurch länger. Als Beispiel wird eine dreijährige Ausbildung genannt, die bei halbierter Arbeitszeit auf viereinhalb Jahre verlängert wird. Unter entsprechenden Voraussetzungen kannst du die Gesamtdauer wieder verkürzen, etwa wenn du bereits eine Ausbildung abgeschlossen hast oder besonders gute Leistungen zeigst. Wie sich eine solche Ausbildung mit dem Unterricht an der Berufsschule vereinbaren lässt, muss praktisch geklärt werden. Fachliteratur und Berichtsheft: § 14 Für die betriebliche Ausbildung erforderliche Fachliteratur muss dein Ausbildungsbetrieb bereitstellen. Das gilt auch für Literatur, die du für die Zwischenprüfung oder Abschlussprüfung brauchst. Der Betrieb kann dir Bücher ausleihen oder sie für dich kaufen. Bei Schulbüchern besteht diese Pflicht nach dem hier beschriebenen Stand nur, wenn sie zugleich für die betriebliche Ausbildung erforderlich sind. In meinem Betrieb bezahle ich auch die Unterlagen für die Berufsschule. Dein Berichtsheft darfst du während der Arbeitszeit am Arbeitsplatz führen....
10 Minuten
In dieser Sonderepisode des Anwendungsentwickler-Podcasts und gleichzeitig der ersten Episode des IT-Berufe-Podcasts erkläre ich meine Beweggründe für das "Rebranding". TL;DR Ab Episode 150 heißt mein Anwendungsentwickler-Podcast IT-Berufe-Podcast und richtet sich an dich als IT-Azubi in jedem IT-Beruf. Anlass sind die gemeinsamen Ausbildungsinhalte und Prüfungen, die sich mit den neuen Ausbildungsordnungen 2020 ergeben. Programmieren bleibt ein Schwerpunkt, während ich auch Themen rund um die Abschlussprüfung für alle IT-Berufe aufgreife. Zur neuen Website it-berufe-podcast.de gehören ein neues Logo und Weiterleitungen für bisherige Links; das Format und der Newsletter bleiben bestehen. Kapitelmarken [00:00:00] Vom Anwendungsentwickler-Podcast zum IT-Berufe-Podcast [00:01:00] Neue Ausbildungsordnungen und gemeinsame Prüfungsinhalte [00:02:34] Warum ich alle IT-Berufe anspreche [00:03:21] Programmieren und Themen rund um die Abschlussprüfung [00:04:01] Neuer Name ab Episode 150 und neues Logo [00:05:13] Die Website wird überarbeitet [00:05:46] Alte Links erhalten und Fehler melden [00:06:42] Neue Domain und Shortlinks [00:07:54] Inhalte für die breitere Zielgruppe [00:08:50] Shownotes zur Sonderfolge [00:09:24] Format und Newsletter bleiben bestehen Inhalt Der gute alte Anwendungsentwickler-Podcast wird 150! Die nächste Episode ist die einhundertfünfzigste! Grund zum Feiern... und über das Leben nachzudenken. Und durch die zahlreichen Änderungen in der Ausbildung der IT-Berufe, die die Novellierung 2020 mit sich bringt, ist es an der Zeit, den Titel des Podcasts zu verallgemeinern, um die Zielgruppe aller Azubis der IT-Berufe anzusprechen. Die Novellierung der IT-Berufe hat zur Folge, dass viele Ausbildungsinhalte - insb. in der Berufsschule - für alle 7 IT-Berufe gleich sind. Der neue Rahmenlehrplan sieht vor, dass alle Berufe in den ersten beiden Ausbildungsjahren nahezu identisch beschult werden. Viele Inhalte in meinem Podcast sind daher genauso relevant für die anderen 6 Berufe. Außerdem bilde ich seit 2019 selbst nicht mehr nur Anwendungsentwickler, sondern auch einen Systemintegrator aus. Und auch er lernt mit meinen Podcast-Episoden, die bereits immer schon allgemeine Ausbildungsinhalte vermittelt haben. Ich habe sogar extra ein Logo für den Podcast erstellen lassen. Auf fiverr.com ging das innerhalb von 2 Tagen. Ich finde es optisch sehr ansprechend und passend zu meinen Inhalten. Auch diese Website wird überarbeitet! Ich habe das Design bereits auf ein für Podcasts optimiertes Theme umgestellt und werde auch die Inhalte weiter aufbereiten. Neue Übersichtsseiten, Löschen veralteter Inhalte, Zusammenfassen gleichartiger Artikel. Das alles steht auf der Agenda. Ich werde natürlich dafür sorgen, dass alte Links erhalten bleiben und weiter funktionieren. Falls dir dennoch Fehler auffallen, freue ich mich über deine Nachricht! Die Website ist inzwischen so groß geworden, dass ich nicht jeder Unterseite selbst kontrollieren kann. Sollten dir also Probleme auffallen, sag mir gerne bescheid: Tote Links Unendliche Weiterleitungen Darstellungsprobleme Falsche Suchergebnisse Externe Links mit alten Domains Ich freue mich auf die Möglichkeiten, die die neue Ausrichtung mit sich bringt, und hoffe, dass du meinem Podcast trotz neuem Namen treu bleibst! :-D Viele Grüße! Stefan Links Permalink zu dieser Podcast-Episode RSS-Feed des Podcasts Zusammenfassung Warum ich den Namen ändere Ab der 150. Episode führe ich meinen Anwendungsentwickler-Podcast unter dem Namen IT-Berufe-Podcast weiter. Damit spreche ich dich als IT-Azubi unabhängig von deinem Ausbildungsberuf an. In meinem Unternehmen betreue ich inzwischen auch einen Azubi zum/zur Fachinformatiker:in für Systemintegration. Viele bisherige Folgen behandeln bereits Themen, die mehrere IT-Berufe betreffen, etwa den Ablauf der IHK-Prüfung. Der neue Name macht diesen gemeinsamen Bezug sichtbar. Gemeinsame Inhalte in den IT-Berufen 2020 werden die IT-Berufe deutschlandweit neu geordnet. Dabei kommen unter anderem zwei neue Fachrichtungen für Fachinformatiker:innen hinzu. Bereits zuvor waren IT-Sicherheit und Datenschutz stärker in den Ausbildungsrahmenplan aufgenommen worden. Nach dem Stand von Anfang 2020 sind bei den künftig sieben IT-Berufen ungefähr 80 Prozent der schulischen Inhalte in den ersten beiden Ausbildungsjahren gleich. Auch die gestreckte Abschlussprüfung schafft eine gemeinsame Grundlage: Teil 1 findet nach 18 Monaten statt, zählt zur Abschlussnote und ist für alle IT-Berufe identisch. Welche Themen du erwarten kannst Ich werde weiterhin Folgen zum Programmieren veröffentlichen, weil darin mein fachlicher Schwerpunkt liegt. Außerdem greife ich Fragen zur Abschlussprüfung auf und behandle, wie du dein Projekt dokumentierst oder präsentierst. Diese Themen betreffen dich auch, wenn du einen anderen IT-Beruf lernst. Durch die neuen Ausbildungsprofile werden weitere Fragen entstehen, denen ich eigene Folgen widmen möchte. Neues Logo und überarbeitete Website Für den Podcast habe ich über Fiverr ein Logo gestalten lassen. Es zeigt eine kleine Figur mit Krawatte und Doktorhut in einem Mikrofon. Der Hut steht dabei für Lernen und einen erreichten Abschluss. Die Website bekommt ein Theme, das stärker auf Podcasts ausgerichtet ist. Damit möchte ich sie übersichtlicher gestalten und dafür sorgen, dass sie schneller lädt. Wenn du Text markierst, ist die Auswahl jetzt sichtbar, was meinen Azubis bisher Probleme bereitet hatte. Neue Adresse und bisherige Links Du erreichst die Website unter it-berufe-podcast.de. Die Adresse funktioniert auch ohne Bindestriche und führt dann zur Hauptdomain mit Bindestrichen. Für bisherige Adressen und Shortlinks richte ich HTTP-Weiterleitungen ein, damit du ältere Folgen weiterhin erreichst und Suchmaschinen die neuen Adressen zuordnen können. Das betrifft auch die bisherigen Domains des Podcasts. Wenn du einen fehlerhaften Link findest oder das Menü auf deinem Mobilgerät Schwierigkeiten macht, schreib mir. Hinweise und Vorschläge kannst du mir etwa per Kommentar oder E-Mail schicken. Was bestehen bleibt Das Podcastformat bleibt gleich, ebenso die Art, wie die Folgen erscheinen. Auch den Newsletter führe ich weiter; dort wird das neue Logo eingebunden. Die Shownotes zu dieser Sonderfolge findest du unter it-berufe-podcast.de/Rebranding, mit großem R. Transkription der gesamten Episode Automatisch erzeugte Transkription der Episode [0:00] Herzlich Willkommen zum Anwendungs... ähm, IT-Berufe-Podcast, dem Podcast rund um die [0:09] Ausbildung in den IT-Berufen. In dieser Episode geht es um das Rebranding des Anwendungsentwickler-Podcasts. [0:15] Viel Spaß! [0:16] Hallo und herzlich Willkommen zu einer Sonderepisode des Anwendungsentwickler-Podcasts. Du hast [0:26] es gerade im Intro schon gehört. Ich habe ein bisschen was vor. Und zwar möchte ich [0:30] diesen Podcast rebranden. Ich möchte ihn umbenennen zum IT-Berufe-Podcast. Und warum [0:36] ich das machen will, das will ich dir heute kurz erklären. Keine Angst, dauert auch nicht [0:39] allzu lang, aber dann weißt du wenigstens, warum dein, ja, bisher vielleicht guter, altbekannter [0:45] Podcast, der Anwendungsentwickler-Podcast, in Zukunft nicht mehr erscheint. Eigentlich [0:49] erscheint er noch, aber er heißt jetzt halt einfach anders. Und wie es dazu kam und was [0:52] das soll, das möchte ich heute mal kurz erklären, bevor es dann mit den eigentlichen [0:56] Inhalten, um die es hier natürlich zentral gehen soll, weitergeht in der nächsten Episode. [1:00] Also, du hast vielleicht mitgekriegt, 2020 werden die IT-Berufe deutschlandweit ja komplett [1:06] überarbeitet. Es ist die zweite Stufe der sogenannten Novellierung, der Neuordnung der [1:11] IT-Berufe. Im Jahr 2018 oder 2019, ich weiß selber schon nicht mehr, sind schon ein paar [1:17] winzige Kleinigkeiten geändert worden. Da kamen zum Beispiel die Themen IT-Security [1:20] und Datenschutz nochmal in den Ausbildungsrahmenplan für die Fachinformatiker. Aber dieses Jahr, [1:25] da geht es jetzt richtig los. Da werden die kompletten IT-Berufe überarbeitet, es fallen [1:29] Berufe weg, es kommen neue hinzu. Es kommen zum Beispiel zwei neue Fachrichtungen für den [1:32] Fachinformatiker hinzu und so weiter. Also ändert sich wirklich sehr, sehr viel. Und ich war jetzt [1:37] schon auf einigen Infoveranstaltungen dazu, habe auch schon viel gelesen, viele Veröffentlichungen [1:41] dazu gelesen. Und ja, grob zusammengefasst, zumindest was heute der Stand ist, Anfang 2020, [1:47] ist, dass viele, viele Inhalte der in Zukunft dann sieben verschiedenen IT-Berufe, die es geben [1:53] wird, absolut identisch sind. Wenn man mal in den Rahmenlehrplan guckt, also in den Lehrplanen, [1:58] an denen sich die Berufsschulen halten müssen, dann sieht es aktuell so aus, dass 80 Prozent [2:02] der Inhalte, so grob über den Daumen, allein in den ersten zwei Ausbildungsjahren absolut [2:06] identisch sind. Du hast vielleicht schon mitgekriegt, auch die Abschlussprüfung wird [2:09] aufgeteilt in eine sogenannte gestreckte Abschlussprüfung. Das heißt, es gibt einen [2:13] Teil 1 der Abschlussprüfung, der auch mit zur Note zählt und der wird nach 18 Monaten abgelegt [2:18] und der ist auch für alle IT-Berufe identisch. Das heißt, es gibt eine gewisse Grundlage an [2:22] Themen, die einfach für jeden ITler, egal ob Anwendungsentwickler, Administrator oder vielleicht [2:27] sogar einer der neuen IT-Berufe, wie zum Beispiel für Daten- und Prozessanalyse, gleich ist. Und bei [2:34] mir im Unternehmen bin ich jetzt auch schon seit über einem Jahr zuständig für einen weiteren [2:38] Physi, also Systemintegrator, den wir ausbilden. Das heißt, auch ich selber bin gar nicht mehr [2:42] nur auf die Anwendungsentwickler beschränkt und da fand ich es irgendwie blöd, wenn ich [2:46] weitermache mit dem Anwendungsentwickler-Podcast, aber ich weiß, dass die anderen sechs IT-Berufe [2:51] genauso davon profitieren und ich selber sogar
1 Stunde 1 Minute
um Ideen für Inhalte von Praktika im IT-Bereich geht es in der einhundertneunundvierzigsten Episode des Anwendungsentwickler-Podcasts. TL;DR Ich lasse IT-Azubis Praktikant:innen betreuen, damit sie ihr Wissen beim Erklären vertiefen und Verantwortung übernehmen. Ein Praktikum gibt Einblick in den echten Arbeitsalltag und hilft dabei, künftige Azubis kennenzulernen. Welche Aufgaben passen, hängt von der verfügbaren Zeit und den Interessen sowie Vorkenntnissen der jeweiligen Person ab. Du findest dafür Beispiele aus der IT-Praxis, ergänzt um regelmäßiges Feedback und konkrete Schritte für die Zeit nach dem Praktikum. Kapitelmarken [00:00:00] Thema: Praktikant:innen in der IT betreuen [00:01:49] Warum Ausbildungsunternehmen Praktika anbieten [00:05:20] Durch Praktika bekannt werden und Rückmeldungen erhalten [00:06:48] IT-Azubis lernen durch das Erklären [00:08:49] Aufgaben zwischen Ausbilder:in und IT-Azubi verteilen [00:10:09] Das Praktikum als Projekt organisieren [00:11:53] Den echten Arbeitsalltag zeigen [00:13:56] Inhalte an Zeit und Vorkenntnisse anpassen [00:15:58] Praktikumsmappe und Präsentation früh einplanen [00:17:58] Praktikant:innen persönlich begrüßen [00:19:30] Checklisten und rechtliche Rahmenbedingungen [00:21:22] Räume zeigen und Kolleg:innen kennenlernen [00:24:27] Die IT-Azubis kennenlernen [00:25:17] Den eigenen Arbeitsplatz aufbauen [00:27:08] Einen alten PC zusammenbauen [00:28:46] Einen Steckbrief mit HTML und CSS gestalten [00:30:24] Mit dem Calliope Mini programmieren [00:33:15] Aufgaben mit dem Raspberry Pi [00:35:32] Mit Tutorial und Entwicklungsumgebung programmieren [00:38:04] Betriebssysteme in virtuellen Maschinen installieren [00:38:58] Blogartikel und Beiträge für soziale Medien erstellen [00:39:49] Mit Office die schulischen Unterlagen vorbereiten [00:40:49] Meetings und Lernzielkontrollen miterleben [00:42:26] Pair-Programming an einem echten Projekt [00:43:02] Wöchentlich Feedback unter vier Augen austauschen [00:44:13] Fragen zum Beruf und zum Unternehmen recherchieren [00:45:17] Die nächsten Schritte zur Bewerbung klären [00:46:53] Vorstellungsgespräche simulieren [00:48:08] Das Praktikumszeugnis ausstellen und erklären [00:50:50] Feedback zum Praktikum einholen [00:51:59] Quellen zum Weiterlernen empfehlen [00:52:46] USB-Stick mit Programmieraufgaben mitgeben [00:55:00] Rückblick auf die vorgeschlagenen Inhalte [00:58:47] Vier Checklisten als PDF herunterladen [00:59:58] Weitere Ideen für Praktika austauschen Inhalt Warum sind Praktika für Ausbildungsunternehmen wichtig? Praktikanten werden ggfs. direkt zu Bewerbern auf die Ausbildung. Unter Schülern spricht sich ein gutes Praktikum herum. Das bedeutet kostenfreie Werbung für die Ausbildung. Das Unternehmen bekommt Input von außen zur Attraktivität der Ausbildung und des Unternehmens. Die eigenen Azubis lernen durch das Lehren ihre Ausbildungsinhalte besser. Tipps für die konkrete Umsetzung Die Azubis sollten die komplette Betreuung des Praktikanten übernehmen. Das Praktikum kann wie ein echtes Projekt geplant und durchgeführt werden (z.B. im Ticketsystem). Dazu zählen auch organisatorische Dinge wie die Datenschutzerklärung, das Einrichten eines Windows-Benutzers, Anfordern einer Bezahlkarte usw. Der Praktikant sollte einen realistischen Einblick in den Ablauf der Ausbildung erhalten und keine "heile Welt" präsentiert bekommen. Mögliche Praktikumsinhalte Der Umfang hängt von der Dauer des Praktikums ab. In zwei Wochen kann man natürlich tiefer in die Programmierung einsteigen als in einer. Die Inhalte sollten an die Vorkenntnisse und das Alter des Praktikanten angepasst werden. Ein Schulpraktikum in der 9. Klasse bietet sich z.B. weniger für Hardcore-Programmierung an. Die nötigen Praktikumsartefakte (z.B. Praktikumsbericht, -präsentation) sollten in den Praktikumsalltag integriert werden. Fotos können z.B. direkt während der Arbeit gemacht werden. Allgemeiner Einstieg ins Praktikum Begrüßung durch Ausbildungsleiter und betreuende(n) Azubi(s) Organisatorische/rechtliche Rahmenbedingungen klären (z.B. Arbeitszeiten, Verhalten bei Krankheit) Rundgang durch das Unternehmen (z.B. Kantine, Serverraum, Besprechungsräume, Schulungsraum) die Abteilung (z.B. nächstes WC, Kaffeeküche) Vorstellungsrunde mit allen Azubis Technische Inhalte (Was lernt man in der Ausbildung?) Eigenen Arbeitsplatz aufbauen Monitor, Tastatur usw. verkabeln eigenes Passwort ändern ggfs. Software installieren PC auseinander-/zusammenbauen Eigenen Steckbrief mit HTML/CSS gestalten Einstieg in die Programmierung, z.B. mit dem Calliope Mini* RaspberryPi* aufsetzen (z.B. RetroPi) Tieferer Einstieg in eine Programmiersprache Windows-/Linux-Server aufsetzen (VMs) Blogartikel/Instagram-Post für die eigene Azubi-Website schreiben Praktikumsmappe/-präsentation vorbereiten (insb. Fotos) Organisatorische Inhalte (Wie läuft der Arbeitsalltag ab?) Teilnahme an allen anfallenden Meetings (z.B. Abteilungsbesprechung, Projektplanung, Standup) Lernzielkontrollen mit anderen Azubis gemeinsam durchführen Pair-Programming mit Azubis durchführen, um echte Projekte kennenzulernen Vier-Augen-Gespräch mit Ausbildungsleiter Fragebogen zum Beruf und zum Unternehmen ausfüllen Ausblick (Wie geht es nach dem Praktikum weiter?) Weiteres Vorgehen zur Bewerbung klären (z.B. kürzeres Verfahren möglich, da Praktikant schon gut bekannt) Vorstellungsgespräch für die Ausbildung simulieren Praktikumszeugnis ausstellen und durchsprechen Feedback des Praktikanten einholen (z.B. zu den Inhalten, der Betreuung vor Ort, Interesse am Beruf) Weiterführende Literatur empfehlen (z.B. IT-Handbuch, Podcast, YouTube-Videos) Abschiedsgeschenk überreichen (z.B. USB-Stick mit Programmieraufgaben und -lösungen) Downloads Checkliste zu Beginn des Praktikums in der IT-Abteilung (Praktikumsbetrieb) Checkliste zum Praktikum in der IT-Abteilung (Praktikant) Factsheet zur Ausbildung Feedback zum Praktikum in der IT-Abteilung Links Permalink zu dieser Podcast-Episode RSS-Feed des Podcasts Zusammenfassung Warum Unternehmen Praktika anbieten Bei der Alte Oldenburger habe ich eine ehemalige Praktikantin als IT-Azubi gewonnen. Während eines Praktikums lernen sich Unternehmen und Praktikant:in über mehrere Tage kennen. Dabei lässt sich feststellen, ob der Beruf zu den eigenen Interessen passt und wie die Zusammenarbeit funktioniert. Auch ohne Erfahrungen im Programmieren ist ein Einstieg möglich. Schüler:innen erzählen anschließend in der Schule von ihren Aufgaben. Dadurch wird das Unternehmen als Ausbildungsbetrieb bekannt. Ihre Rückmeldungen zeigen außerdem, wie die Ausbildung nach außen wirkt. Wenn du nachfragst, wie ein:e Praktikant:in auf das Unternehmen aufmerksam geworden ist, erfährst du etwas darüber, welche Anzeigen oder persönlichen Kontakte dazu beigetragen haben. Unternehmen geben jungen Menschen durch Praktika die Gelegenheit, einen Beruf kennenzulernen. Dafür braucht es Aufgaben, durch die sie selbst Erfahrungen in der IT sammeln. Als IT-Azubi ein Praktikum betreuen Ich übertrage die fachlichen Aufgaben während des Praktikums an IT-Azubis, meistens aus dem ersten Ausbildungsjahr. Die Grundlagen sind bei ihnen noch frisch, weil sie dieselben Einstiegsaufgaben bereits bearbeitet haben. Durch das Erklären vertiefst du dein eigenes Wissen. Gleichzeitig übst du, Schulungen vorzubereiten und durchzuführen, wie es der Ausbildungsrahmenplan vorsieht. Das ähnliche Alter erleichtert häufig den Kontakt. Du lernst außerdem, mit unterschiedlichen Menschen zusammenzuarbeiten und dich im Unternehmen um organisatorische Fragen zu kümmern. Ich begrüße die Person zu Beginn persönlich und prüfe während des Praktikums, wie gut die Inhalte ankommen. Die Gespräche unter vier Augen führe ich selbst. So kann ich früh eingreifen, wenn fachliche oder persönliche Schwierigkeiten auftreten. Das Praktikum als Projekt organisieren Für jedes Praktikum erstelle ich ein Ticket in Redmine. Darin stehen die einzelnen Aufgaben und Checklisten, die ich dem betreuenden IT-Azubi zuweise. Du arbeitest damit in derselben Umgebung wie bei anderen Projekten und hältst fest, welche Schritte erledigt sind. Dazu gehören beispielsweise: Die Erklärung zum Datenschutz unterschreiben lassen. Ein Benutzerkonto einrichten und das Passwort ändern. Eine Karte für das Betriebsrestaurant besorgen. Herausfinden, welche Kolleg:innen für die jeweiligen Fragen zuständig sind. Aufgaben an die Person und die Zeit anpassen Meine Beispiele orientieren sich an einem zweiwöchigen Schülerpraktikum. Wie viel du davon einplanst, hängt von den Vorkenntnissen und Sprachkenntnissen der Person ab. Frage auch nach ihren Interessen. Die Aufgaben sollten in der verfügbaren Zeit zu schaffen sein und zum bisherigen Wissen passen. Schulische Aufgaben früh einplanen Kläre gleich zu Beginn, welche Unterlagen die Schule erwartet. Für eine Praktikumsmappe und eine Präsentation braucht es Zeit während des Praktikums. Dafür lässt sich beispielsweise die letzte Stunde des Arbeitstags reservieren. Fotos können während der jeweiligen Tätigkeit entstehen, etwa beim gemeinsamen Programmieren. Wenn die Unterlagen im Betrieb geschrieben werden, kannst du sie anschließend durchsehen und auf fachliche Fehler oder vertrauliche Informationen hinweisen. Den ersten Tag vorbereiten Ich hole Praktikant:innen zur vereinbarten Zeit persönlich ab. Der betreuende IT-Azubi ist dabei, sodass die erste Ansprechperson gleich bekannt ist. Gerade für jüngere Schüler:innen ist der Einstieg in ein Unternehmen ungewohnt. Am ersten Tag klärst du die Rahmenbedingungen: Welche Arbeitszeiten gelten? Bei Minderjährigen ist das Jugendarbeitsschutzgesetz zu berücksichtigen. Wo meldet sich die Person bei Krankheit oder Verspätung? Über welche Telefonnummern sind beide Seiten erreichbar? Welche Zugangs- oder Bezahlkarten werden gebraucht? Welche Regeln gelten, wenn sich die Person im Gebäude bewegt? Bei Verspätungen gehört auch dazu, nachzufragen,...
46 Minuten
Um die Handelskalkulation inkl. Skonto und Rabatt geht es in der einhundertachtundvierzigsten Episode des Anwendungsentwickler-Podcasts. TL;DR An einem PC zeige ich dir, wie du mit der Handelskalkulation vom Einkaufspreis zum Verkaufspreis kommst und dabei alle Kosten sowie deinen Gewinn einrechnest. Rabatt und Skonto senken deinen Einkaufspreis; beim Verkauf kalkulierst du die angebotenen Preisnachlässe vorher ein. Dafür rechnest du im Hundert, weil dein:e Kund:in den Nachlass vom späteren Angebotspreis abzieht. Auch Provisionen und die Umsatzsteuer gehören ins Schema, das du als IT-Azubi im Fachgespräch und in der schriftlichen Prüfung kennen solltest. Kapitelmarken [00:00:37] Handelskalkulation als Prüfungsthema für IT-Azubis [00:02:26] Verkaufspreise im Handelsunternehmen berechnen [00:04:55] Das Kalkulationsschema am Beispiel eines PCs [00:06:53] Rabatt und Skonto beim Einkauf verstehen [00:09:42] Zahlungsziel und Skontofrist [00:12:27] Skontovorteil berechnen und aufs Jahr hochrechnen [00:15:53] Preisnachlässe im Verkaufspreis berücksichtigen [00:17:10] Vom Listeneinkaufspreis zum Bareinkaufspreis [00:20:34] Bezugskosten und Einstandspreis [00:21:58] Handlungskosten und Selbstkostenpreis [00:23:46] Gewinn und Barverkaufspreis [00:25:34] Kundenskonto und das Rechnen im Hundert [00:31:58] Zielverkaufspreis und Listenverkaufspreis [00:33:27] Umsatzsteuer und Bruttoverkaufspreis [00:34:30] Vorsteuer und Umsatzsteuer als durchlaufender Posten [00:36:58] Provision für Handelsvertreter:innen einrechnen [00:38:52] Zusätzlicher Gewinn durch verbleibende Nachlässe [00:41:01] Prüfungsfehler beim Rechnen im Hundert [00:41:56] Das vollständige Kalkulationsschema wiederholen [00:45:13] Weiterführende Links und Feedback Inhalt Käufer zahlen immer so spät wie möglich ihre Rechnungen, da sie in der Zwischenzeit mit ihrem Geld andere Dinge machen können (z.B. verzinslich anlegen). Verkäufer wollen das Geld aber so früh wie möglich haben, da sie bereits in Vorleistung gegangen sind. Ein übliches Zahlungsziel bei Rechnungen ist 30 Tage. Das würde ein Käufer immer ausnutzen. Damit der Käufer schneller zahlt, kann der Verkäufer Skonto gewähren, wenn z.B. bereits bis zum 10. Tag gezahlt wird. Übliche Skontosätze sind 2% oder 3%. Ein Rabatt ist ein allgemeiner Preisnachlass des Verkäufers. Käufer ziehen sich Rabatt und Skonto (in dieser Reihenfolge) vom ihnen angebotenen Preis ab ("vom Hundert"). Beispiel: PC kostet 1.000 EUR. 10% Rabatt ergeben einen Abzug von 100 EUR. Verkäufer müssen Skonto und Rabatt (in dieser Reihenfolge) auf ihre Preise aufschlagen ("im Hundert"), damit sie nicht zu ihren Ungunsten abgezogen werden. Die Basis 100% ist dabei der zu errechnende Preis und nicht der, auf den aufgeschlagen wird. Beispiel: PC soll für 1.000 EUR verkauft werden. Der Kunde soll 10% Rabatt abziehen können dürfen. 1.000 EUR entsprechen dabei 90%, der gesuchte Zielpreis 100%. Mittels Dreisatz ergibt sich ein Preis von 1.111,11 EUR (und nicht etwa 1.100 EUR!). 10% Abzug von 1.111,11 EUR sind 111,11 EUR, sodass der ursprünglich gewünschte Preis von 1.000 EUR beim Händler landet. Handelskalkulation Mittels der Handelskalkulation berechnen Handelsunternehmen ihre Verkaufspreise auf Basis der Einkaufspreise bei ihren Lieferanten. In produzierenden Unternehmen oder bei Dienstleistern wird ggfs. anders kalkuliert, z.B. mittels des Betriebsabrechnungsbogens bzw. eines Stundensatzes. So sieht eine vollständige Handelskalkulation aus:    Listeneinkaufspreis (steht beim Lieferanten auf dem Preisschild) − Lieferantenrabatt (handelt ein vernünftiger Kunde vom Preis runter) = Zieleinkaufspreis (müsste der Kunde bei Zahlung auf Rechnung am 30. Tag überweisen) − Lieferantenskonto (zieht der Kunde ab, wenn er schneller zahlt, z.B. bis zum 10. Tag) = Bareinkaufspreis (müsste der Kunde "bar" auf den Tisch legen, um das Produkt mitzunehmen) + Bezugskosten (ggfs. Porto, Spedition) = Bezugspreis (zahlt der Kunde, damit das Produkt "bei ihm auf dem Hof" steht) + Handlungskosten (alle Kosten für den Geschäftsbetrieb, z.B. Miete, Strom, Gehälter usw.) + Lagerzins (falls Waren eingelagert werden müssen) = Selbstkostenpreis (hiermit sind alls Kosten des Händlers abgedeckt) + Gewinn (das bleibt am Ende dem Händler übrig) = Barverkaufspreis (das müsste der Kunde bar bezahlen, um alle Kosten + Gewinn des Händlers zu decken) + Kundenskonto (im Hundert) (zieht der Kunde sich vom nächsten Preis ab) + Provision (im Hundert) (bekommt ggfs. ein Handelsvertreter von uns) = Zielverkaufspreis (müsste der Kunde zahlen, wenn er auf Rechnung kauft) + Kundenrabatt (im Hundert) (handelt der Käufer runter) = Listenverkaufspreis (auch Nettoverkaufspreis) + Umsatzsteuer (geht abzgl. der Vorsteuer ans Finanzamt) = Bruttoverkaufspreis (schreibt der Händler auf sein Preisschild) Links Permalink zu dieser Podcast-Episode RSS-Feed des Podcasts Handelskalkulation BWL - kaufmännisches Rechnen - Die Handelskalkulation Die Handelskalkulation – Ein Berechnungs-Schema für optimale Verkaufspreise Skontozahlung lohnt sich fast immer Warum sich Skonto lohnt: So teuer sind Lieferantenkredite wirklich! Rechnen in Hundert, von Hundert, auf Hundert? Rechner für Vorwärts-, Rückwärts- und Differenzkalkulation Zusammenfassung Handelskalkulation in deiner IT-Ausbildung An einem eingekauften PC, den ich weiterverkaufen möchte, zeige ich dir die Schritte der Handelskalkulation. Als Fachinformatiker:in Anwendungsentwicklung brauchst du auch kaufmännisches Wissen: Im Fachgespräch werden die Begriffe und Rechenwege abgefragt, während du in der schriftlichen Prüfung Verkaufspreise berechnen sollst. Ein Handelsunternehmen kauft Waren ein und verkauft sie weiter. Der Verkaufspreis muss die anfallenden Kosten decken und den geplanten Gewinn enthalten. Dazu gehören auch laufende Ausgaben, etwa für Personal oder Strom. Vom Listenpreis zum Einstandspreis Beim Einkauf gehst du diese Schritte durch: | Schritt | Ergebnis | | --- | --- | | Listeneinkaufspreis minus Lieferantenrabatt | Zieleinkaufspreis, auch Rechnungspreis | | Zieleinkaufspreis minus Lieferantenskonto | Bareinkaufspreis | | Bareinkaufspreis plus Bezugskosten | Bezugspreis, auch Einstandspreis | Der Listeneinkaufspreis steht in der Preisliste deiner Lieferant:innen. Wenn du einen Rabatt vereinbarst, ziehst du ihn von diesem Preis ab. Bei 1.000 Euro und 10 % Rabatt beträgt der Zieleinkaufspreis 900 Euro. Das Wort "Ziel" im Zieleinkaufspreis bezieht sich auf das Zahlungsziel. Kaufst du auf Rechnung, musst du beispielsweise innerhalb von 30 Tagen bezahlen. Gewährt dir dein:e Lieferant:in Skonto, darfst du bei rechtzeitiger Zahlung einen weiteren Betrag abziehen. So erhältst du den Bareinkaufspreis. Der Name lässt sich durch eine sofortige Barzahlung merken, bei der die Skontofrist eingehalten wäre. In meinem Beispiel zahlst du am letzten Tag der vereinbarten Skontofrist. Bezugskosten fallen beispielsweise an, wenn ein Speditionsunternehmen die Ware liefert. Du addierst sie zum Bareinkaufspreis. Der Einstandspreis umfasst damit die Kosten, bis die Ware bei dir im Laden oder Lager angekommen ist. Rabatt und Skonto Einen Rabatt vereinbarst du als Preisnachlass mit deinem Gegenüber. Skonto erhältst du, wenn du innerhalb einer kürzeren Frist bezahlst. Wer die Ware verkauft, schafft damit einen Anreiz, die Rechnung früh zu begleichen. Für das Skontobeispiel gelten folgende Werte: Die Rechnung beträgt 1.000 Euro. Innerhalb von 10 Tagen darfst du 3 % Skonto abziehen. Das reguläre Zahlungsziel beträgt 30 Tage. Wenn du innerhalb der Skontofrist zahlst, sparst du 30 Euro. Eine Bankanlage derselben 1.000 Euro mit 3 % Jahreszins bringt für einen Monat rund 3 Euro. Für den auf ein Jahr hochgerechneten Skontovorteil zählt die Zeit zwischen Skontofrist und Zahlungsziel. Im Beispiel sind das 20 Tage. Mit einem kaufmännischen Jahr von 360 Tagen ergibt sich: 3 % × 360 / 20 = 54 % Ich empfehle dir deshalb, angebotenes Skonto zu ziehen und innerhalb der jeweiligen Frist möglichst spät zu zahlen. Im Beispiel lohnt sich dafür auch ein Kredit mit 10 % Jahreszins. Vom Einstandspreis zum Barverkaufspreis Sobald die Ware bei dir angekommen ist, rechnest du die Kosten deines Handelsbetriebs ein: | Schritt | Ergebnis | | --- | --- | | Einstandspreis plus Handlungskosten und gegebenenfalls Lagerzins | Selbstkostenpreis | | Selbstkostenpreis plus Gewinn | Barverkaufspreis | Zu den Handlungskosten gehören beispielsweise die Miete für deinen Laden und die Gehälter deiner Beschäftigten. Auch beim Handel von zu Hause fallen Kosten an, etwa für einen Onlineshop. Im vorgestellten Schema kommt gegebenenfalls ein Lagerzins hinzu, wenn du ein Lager betreibst. Mit dem Selbstkostenpreis deckst du deine eigenen Kosten. Den geplanten Gewinn rechnest du anschließend auf. Daraus entsteht der Barverkaufspreis, den du nach den vorgesehenen Preisnachlässen erhalten möchtest. Skonto und Rabatt im Verkaufspreis einrechnen Dein:e Kund:in darf die angebotenen Nachlässe später vom Preis abziehen. Deshalb kalkulierst du sie vorher ein: | Schritt | Ergebnis | | --- | --- | | Barverkaufspreis plus eingerechnetes Kundenskonto | Zielverkaufspreis, auch Rechnungsverkaufspreis | | Zielverkaufspreis plus eingerechneter Kundenrabatt | Listenverkaufspreis, auch Nettoverkaufspreis | Hier rechnest du im Hundert. Der Preis, von dem dein:e Kund:in später den Nachlass abzieht, entspricht 100 %. Bei 10 % Nachlass entspricht der Betrag, den du erhalten möchtest, 90 %. Wenn nach einem Nachlass von 10 % genau 1.000 Euro bleiben sollen, berechnest du den Angebotspreis so: 1.000 Euro / 90 × 100 = 1.111,11 Euro Zieht dein:e Kund:in davon 10 % ab, bleiben gerundet 1.000 Euro. Für die einzelnen Schritte gilt: Kundenskonto: Zielverkaufspreis = Barverkaufspreis × 100 / (100 − Skontosatz) Kundenrabatt: Listenverkaufspreis = Zielverkaufspreis × 100 / (100 − Rabattsatz) Bei 2 % Skonto entspricht dein Barverkaufspreis also 98 % des Zielverkaufspreises....
56 Minuten
Um Code Smells und ihre Behebung mittels Refactorings geht es in der einhundertsiebenundvierzigsten Episode des Anwendungsentwickler-Podcasts. TL;DR Bei meinen Code-Reviews geben mir Codesmells konkrete Hinweise darauf, welche Stellen ich überarbeiten sollte. Als IT-Azubi kannst du damit etwa mehrfach vorhandenen Code oder Methoden mit zu vielen Aufgaben erkennen und Probleme mit anderen Entwickler:innen präzise besprechen. Mit passenden Refactorings lässt sich der Code schrittweise verbessern, während er lauffähig bleibt. Ob du einen Smell behebst, hängt von seinen Folgen und dem Aufwand ab; eine bewusst beibehaltene Stelle verdient einen Kommentar, der den Grund erklärt. Kapitelmarken [00:00:01] Thema: Codesmells und Refactorings [00:00:57] Codesmells als Hilfe bei Code-Reviews mit IT-Azubis [00:02:04] Refactoring von Martin Fowler als Grundlage [00:03:30] Was ist ein Codesmell? [00:04:50] Einen Codesmell bewusst beibehalten [00:05:50] Woher der Begriff Codesmell kommt [00:07:47] Probleme erkennen und mit Entwickler:innen besprechen [00:09:38] Codesmells mit Refactorings beheben [00:10:44] Überblick über die klassischen Codesmells [00:13:04] Duplicate Code: mehrfach vorhandenen Code zusammenführen [00:16:17] Comments: verständliche Namen und begründete Kommentare [00:19:56] Long Method: Methoden auf eine Aufgabe zuschneiden [00:22:38] Large Class: Aufgaben auf passende Klassen verteilen [00:24:48] Long Parameter List: Parameter reduzieren oder bündeln [00:30:42] Wenn ein Refactoring einen anderen Smell erzeugt [00:32:05] Feature Envy: Methoden zu ihren Daten verschieben [00:34:01] Data Clumps: zusammengehörige Werte als Objekt abbilden [00:35:29] DTOs als bewusst einfache Klassen [00:36:27] Primitive Obsession: fachliche Werte in eigenen Klassen kapseln [00:40:48] Switch Statements: wiederkehrende Fallunterscheidungen [00:41:22] Divergent Change und Shotgun Surgery [00:43:12] Parallel Inheritance Hierarchies [00:43:56] Lazy Class [00:44:32] Speculative Generality und YAGNI [00:45:31] Temporary Field [00:46:26] Message Chains und Law of Demeter [00:47:54] Middle Man [00:48:39] Inappropriate Intimacy [00:49:20] Alternative Classes with Different Interfaces [00:50:24] Incomplete Library Class [00:50:54] Data Class [00:51:42] Refused Bequest [00:53:09] Codesmells in der täglichen Arbeit [00:54:14] Literatur und weiterführende Links [00:54:43] Kommentare und Feedback Inhalt Was ist ein Code Smell? Smells sind Indikatoren für Code, der überarbeitungswürdig ist. Man erkennt sie anhand verschiedener Muster (z.B. lange Methoden). Die Smells können mit Refactorings überarbeitet und (hoffentlich) eliminiert werden. Nicht alle Smells sind immer schlecht. Sie dienen nur als Anhaltspunkt, noch einmal über den Code nachzudenken. Woher kommt der Name Code Smell? Kent Becks Oma wird das Zitat "If it stinks, change it." zugesprochen, das sich auf das Wechseln von Windeln bei Babys bezieht. Kent Beck hat diese Idee auf Code übertragen: Wenn der Code seltsam "riecht", sollte man ihn anpassen. Wobei helfen uns Code Smells? Mit Code Smells können wir Stellen im Code aufdecken, die problematisch sind, und diese überarbeiten. Dadurch wird der gesamte Code insgesamt "besser". Die benannten Smells helfen uns durch eine gemeinsame Sprache bei der Diskussion mit anderen Entwicklern (ähnlich wie Design Pattern). Was können wir gegen Code Smells tun? Das Mittel gegen Code Smells sind die Refactorings. Im Buch von Martin Fowler* gibt es eine übersichtliche Tabelle, welche Refactorings gegen welche Smells helfen können. Sind Code Smells immer böse? Code Smells sind nur ein Anhaltspunkt für Optimierungen. Der Entwickler muss selbst entscheiden, ob der Smell schlecht ist. Einige Code Smells hängen zusammen und das Auflösen des einen (z.B. Introduce Parameter Object) führt zur Einführung eines anderen (z.B. Data Class). Welche Code Smells gibt es? Duplicate Code Doppelter Code führt bei Änderungen schnell zu Fehlern, weil zu ändernde Stellen übersehen werden. Refactorings: Extract Method, Pull Up Method Comments Kommentare können helfen, den Code zu verstehen, aber häufig sind sie überflüssig und können durch sprechendere Bezeichner komplett eliminiert werden. Refactorings: Extract Method, Rename Method Long Method Lange Methoden sind schwieriger zu verstehen, zu testen und anzupassen. Refactorings: Extract Method Large Class Zu große Klassen machen häufig mehr als sie sollen und verletzen das Single Responsibility Principle. Das macht sie u.a. schwer testbar. Refactorings: Extract Class, Extract Subclass Long Parameter List Viele Parameter bei Methoden deuten darauf hin, dass diese zu viele Aufgaben übernehmen. Sie machen die Methoden schwer testbar und schwer verständlich. Außerdem müssen die Parameterlisten tendenziell oft angepasst werden. Refactorings: Replace Parameter with Method, Introduce Parameter Object Feature Envy Wenn Methoden oder Klassen sich viele Informationen "besorgen" müssen, bevor sie ihren Job machen können, ist das ein Zeichen dafür, dass die Komponenten besser an einer anderen Stelle aufgehoben wären. Refactorings: Move Method Data Clumps Wenn verschiedene Daten immer zusammen herumgereicht werden (z.B. Startdatum und Endedatum), ist das ein Zeichen für eine fehlende Abstraktion (z.B. Zeitraum). Refactorings: Introduce Parameter Object, Extract Class Primitive Obsession Die Scheu vor eigenen kleinen Klassen führt oft dazu, dass doppelter Code entsteht und eine gute Kapselung verhindert wird. Refactorings: Replace Data Value with Object, Extract Class, Introduce Parameter Object Switch Statements: Gleiche Fallunterscheidungen werden häufig an mehreren Stellen benötigt und führen zu doppeltem Code, der mit Polymorphie verhindert werden könnte. Divergent Change: Einzelne Klassen müssen aufgrund von verschiedenen Änderungen angepasst werden. Shotgut Surgery: Aufgrund einer einzelnen Änderung müssen verschiedene Klassen angepasst werden. Parallel Inheritance Hierarchies: Sonderform von Shotgun Surgery, die das parallele Anlegen von Subklassen in verschiedenen Hierarchien erfordert. Lazy Class: Zu kleine Klassen, die keinen erkennbaren Mehrwert haben, sollten abgelöst werden. Speculative Generality: Anstatt alle möglichen zukünftigen Entwicklungen zu antizipieren, sollte besser das Prinzip You Ain't Gonna Need It befolgt werden. Temporary Field: Instanzvariablen sollten nicht nur während der Laufzeit einzelner Methoden verwendet werden. Message Chains: Objekte, die Objekte aufrufen, die wieder Objekte aufrufen, wissen zu viel über die fremde Implementierung und sind damit stark gekoppelt. Das verletzt das Law of Demeter. Middle Man: Zu viel Delegierung ist auch nicht gut. Inappropriate Intimacy: Klassen sollten nicht zu viele Details anderer Klassen kennen. Alternative Classes with Different Interfaces: Gleiche Dinge sollten auch gleich benannt sein. Incomplete Library Class: Wenn Librarys nicht alles tun, was wir brauchen, sollten wir sie ergänzen, anstatt alles neu zu entwickeln. Data Class: Die guten alten POJOs oder Java Beans. Sie verhindern häufig saubere Kapselung und haben bei fehlender Geschäftslogik evtl. gar keine Daseinsberechtigung. Refused Bequest: Wenn Subklassen Teile ihres Vermächtnisses (geerbte Member) nicht nutzen wollen oder können, ist vielleicht die Hierarchie falsch gewählt. Literaturempfehlungen Eine sehr schöne Liste möglicher Code Smells und ihrer Auswirkungen gibt es im Klassiker Refactoring von Martin Fowler*. * Links Permalink zu dieser Podcast-Episode RSS-Feed des Podcasts Code Smells Catalog of Refactorings Refactoring and Design Patterns Zusammenfassung Codesmells im Code-Review Bei meinen Code-Reviews mit IT-Azubis helfen mir Codesmells, konkrete Stellen zu erkennen, die ich überarbeiten sollte. An solchen Mustern kannst du beispielsweise erkennen, weshalb sich Code schwer lesen lässt oder beim Testen Probleme macht. Manche fallen schon durch den Umfang einer Methode auf, andere zeigen sich erst beim Blick auf einzelne Zeilen. Wenn du die Namen der Smells kennst, kannst du dich mit anderen Entwickler:innen genauer über den Code austauschen. Ein Begriff wie Feature Envy beschreibt für jemanden, der ihn kennt, bereits das betreffende Problem. Ähnlich wie Design Patterns schaffen Codesmells damit eine gemeinsame Fachsprache. Wann du einen Smell behebst Bevor ich eine auffällige Stelle ändere, prüfe ich, welche Folgen sie hat und wie aufwendig es wäre, sie zu überarbeiten. Je nach Kontext kann es sinnvoll sein, einen Smell bewusst beizubehalten, etwa wenn der Umbau den Code schwerer verständlich machen würde. Mit einem Kommentar zum Grund ersparst du der nächsten Person, dieselbe Frage erneut durchzugehen. Beim Refactoring überarbeitest du den Code schrittweise und hältst ihn dabei lauffähig. Für einen Smell kommen oft mehrere Refactorings infrage. Auch deren Folgen gehören zur Entscheidung: Wenn du etwa eine lange Parameterliste durch eine Klasse ersetzt, kann dabei eine Data Class entstehen, deren Aufbau du wiederum prüfen solltest. Häufige Codesmells und passende Refactorings Duplicate Code Wenn identischer oder sehr ähnlicher Code an mehreren Stellen steht, musst du bei einer Änderung jede davon finden. Eine übersehene Stelle führt dazu, dass Teile des Programms unterschiedlich arbeiten. Das passiert beispielsweise, wenn mehrere Switch Statements dieselben Enum-Werte behandeln und ein neuer Wert hinzukommt. Mit Extract Method ziehst du den gemeinsamen Code in eine Methode und rufst sie an den betreffenden Stellen auf. IDEs wie Eclipse können diesen Schritt automatisch ausführen. Mit Pull Up Method verschiebst du eine gleiche Methode aus mehreren Subklassen in deren gemeinsame Basisklasse. Comments Bei Kommentaren, die lediglich den sichtbaren Code beschreiben, entsteht zusätzlicher Aufwand beim Lesen und Pflegen. Ändert jemand den Code und übersieht den Kommentar, kann dieser anschließend etwas Falsches behaupten....
39 Minuten
Zum Abschluss meiner kleinen Reihe zum Oberthema Kryptographie widmen wir uns der Funktionsweise von HTTPS in der einhundersechsundvierzigsten Episode des Anwendungsentwickler-Podcasts. TL;DR Wenn du meine Website über HTTPS aufrufst, prüft dein Browser das Serverzertifikat anhand einer vertrauenswürdigen Zertifizierungsstelle. Im beschriebenen Ablauf überträgt er anschließend einen zufälligen Sitzungsschlüssel asymmetrisch verschlüsselt an den Webserver, damit beide Seiten ihre Daten schnell symmetrisch verschlüsseln können. Für deine eigene Website brauchst du ein Schlüsselpaar und ein passendes Zertifikat, das du beispielsweise kostenlos bei Let's Encrypt erhältst. Bei Zertifikatswarnungen solltest du die Ursache prüfen, bevor du der Verbindung vertraust. Kapitelmarken [00:00:20] HTTPS als Abschluss der Kryptografie-Reihe [00:01:03] Öffentliche und private Schlüssel sowie digitale Signaturen [00:01:34] Zertifizierungsstellen und die Vertrauenskette [00:03:00] Rechenaufwand beim asymmetrischen Verschlüsseln [00:04:41] HTTPS als hybrides Verfahren [00:05:33] HTTPS aufrufen und Port 443 [00:06:26] Serverzertifikat und öffentlichen Schlüssel prüfen [00:09:09] Domain und Gültigkeitsdauer kontrollieren [00:09:59] Den symmetrischen Sitzungsschlüssel übertragen [00:11:24] Kostenlose Zertifikate von Let's Encrypt [00:12:55] HTTPS von Grund auf einrichten [00:13:28] Root-Zertifikate und Vertrauen der Browserhersteller [00:16:37] Intermediate-Zertifikate in der Zertifikatskette [00:17:08] Schlüsselpaar erzeugen und CSR stellen [00:18:20] Kontrolle über die Domain nachweisen [00:20:48] Verschlüsselungsstärke und Extended Validation [00:22:53] Zertifikat im Webserver hinterlegen [00:23:59] Zertifikat im Browser prüfen und Sitzungsschlüssel austauschen [00:27:14] Die fünf beteiligten Schlüssel [00:27:44] Zertifikatswarnungen und abgelaufene Zertifikate [00:30:32] Abweichende Domains und Wildcard-Zertifikate [00:33:29] Unbekannte CAs und selbstsignierte Zertifikate [00:35:20] Interne CAs und Zertifikatsspeicher im Unternehmen [00:36:49] Rückblick auf die Kryptografie-Reihe [00:37:56] Praxis- und Prüfungsbezug für IT-Azubis [00:38:23] Fragen und Shownotes Inhalt Wiederholung Für die elektronische Signatur und die Verschlüsselung von Daten werden Paare aus öffentlichen und privaten Schlüsseln benötigt. Um die Authentizität öffentlicher Schlüssel zu gewährleisten, werden Zertifikate verwendet, die von vertrauenswürdigen Zertifizierungsstellen ausgegeben werden. Probleme Wie können wir bei Millionen verschiedenen Websites sicherstellen, dass sie korrekte Schlüssel nutzen, ohne dass wir alle Websitebetreiber persönlich kennen müssen? Wie kann bei den großen Datenmengen im Internet eine performante Verschlüsselung gewährleistet werden? HTTPS Um mit einem Webserver verschlüsselt kommunizieren zu können, benötigt der Webbrowser den öffentlichen Schlüssel des Webservers. Diesen kann er einfach direkt vom Webserver selbst herunterladen. Aber wer garantiert ihm die Echtheit dieses Schlüssels? Vielleicht wurde der Server gehackt oder der private Schlüssel gestolen. Deswegen liefert der Webserver nicht direkt den öffentlichen Schlüssel aus, sondern ein von einer CA ausgestelltes Zertifikat, das den öffentlichen Schlüssel des Webservers enthält, aber zusätzlich noch die Signatur der CA, die dessen Echtheit bestätigt. Wenn dieses Zertifikat gültig ist (die Prüfung erfolgt gegen die "eingebauten" CAs im Browser), weiß der Browser sicher, dass er den korrekten Schlüssel erhalten hat und kann ihn für die Verschlüsselung nutzen. Dabei prüft der Browser auch, ob das Zertifikat zur aktuellen Domain gehört. Der CN enthält bei HTTPS-Zertifikaten diese Domain. Es gibt seit einiger Zeit auch eine kostenlose CA: Let's Encrypt. Damit kann sich jeder Webserverbetreiber gültige Zertifikate erzeugen, indem er technisch nachweist, dass die Domain und der Server wirklich ihm gehören. Der Datenverkehr wird bei HTTPS symmetrisch verschlüsselt, da die Schlüssellängen hierbei deutlich kürzer sind, was deutliche Performancevorteile hat. Um diesen Schlüssel zwischen Browser und Webserver auszutauschen wird das obige asymmetrische Verfahren genutzt. Deswegen ist HTTPS ein hybrides Verfahren. Technischer Ablauf CA CA generiert privaten und öffentlichen Schlüssel. CA erstellt selbstsigniertes Root-Zertifikat: ihr eigener öffentlicher Schlüssel signiert mit ihrem privaten Schlüssel. CA-Root-Zertifikat wird in Browser eingebaut. Webserver Webserver generiert privaten und öffentlichen Schlüssel. Webserver lässt öffentlichen Schlüssel von CA mit ihrem privaten Schlüssel signieren. Webserver installiert dieses Zertifikat und konfiguriert HTTPS. Browser Browser öffnet Website auf dem Webserver. Webserver liefert sein Zertifikat aus. Browser prüft das Zertifikat mit dem öffentlichem Schlüssel der CA aus seinem eingebautem Root-Zertifikat und erhält den öffentlichen Schlüssel des Webservers. Browser generiert einen zufälligen temporären Sitzungsschlüssel und verschlüsselt ihn mit dem öffentlichen Schlüssel des Webservers. Browser sendet den verschlüsselten Sitzungsschlüssel an den Webserver, der ihn mit seinem privaten Schlüssel entschlüsselt. Nun kennen Browser und Webserver den Sitzungsschlüssel und können damit symmetrisch den Datenverkehr verschlüsseln. Mögliche Probleme mit HTTPS-Zertifikaten Das Zertifikat ist abgelaufen. Das Zertifikat passt nicht zur Domain. Das Zertifikat wurde von einer nicht vertrauenswürdigen CA ausgestellt. Links Permalink zu dieser Podcast-Episode RSS-Feed des Podcasts Hypertext Transfer Protocol Secure Wie funktioniert https? Einführung inOpenSSL und X.509-Zertifikate Let's Encrypt Certificate Signing Request Zusammenfassung Welche Schlüssel bei HTTPS zusammenarbeiten Wenn du meine Website über https:// aufrufst, beginnt zwischen deinem Browser und meinem Webserver ein Ablauf, der asymmetrische und symmetrische Verfahren kombiniert. HTTPS steht für HTTP Secure und verwendet Port 443. Auch eine Weiterleitung auf dem Webserver kann deinen Browser zu HTTPS führen. Bei asymmetrischen Verfahren gehören ein öffentlicher und ein privater Schlüssel zusammen. Mit dem öffentlichen Schlüssel des Webservers lassen sich Daten verschlüsseln, die der Server mit seinem privaten Schlüssel entschlüsselt. Dadurch bleibt der Inhalt vertraulich. Digitale Signaturen ermöglichen es, die Echtheit und mithilfe eines Hashwerts auch die Unversehrtheit von Daten zu prüfen. Für den beschriebenen Ablauf sind fünf Schlüssel beteiligt: Der private Schlüssel der Zertifizierungsstelle dient dazu, Zertifikate zu signieren. Mit dem öffentlichen Schlüssel der Zertifizierungsstelle prüft der Browser diese Signaturen. Der öffentliche Schlüssel des Webservers steht im Serverzertifikat und dient dazu, den Sitzungsschlüssel verschlüsselt zu übertragen. Den privaten Schlüssel des Webservers braucht der Server, um den übertragenen Sitzungsschlüssel zu entschlüsseln. Der symmetrische Sitzungsschlüssel verschlüsselt anschließend die Daten zwischen Browser und Server. Wie der Browser einem Serverzertifikat vertraut Damit dein Browser den öffentlichen Schlüssel meiner Website zuordnen kann, lässt eine Zertifizierungsstelle, auch Certificate Authority oder CA genannt, ihn durch ein Zertifikat bestätigen. Dein Browser vertraut bestimmten CAs, deren Root-Zertifikate bereits hinterlegt sind. Dieses Vertrauen erstreckt sich über die Zertifikatskette auf das Serverzertifikat. Am Anfang dieser Kette erzeugt die CA ein eigenes Schlüsselpaar und stellt sich ein selbstsigniertes Root-Zertifikat aus. Browserhersteller prüfen die CA und hinterlegen ihr Root-Zertifikat als vertrauenswürdig. Diese Prüfung entscheidet darüber, welchen ausgestellten Zertifikaten der Browser später vertraut. Zwischen dem Root-Zertifikat und dem Serverzertifikat können Intermediate-Zertifikate liegen. Über deren Signaturen lässt sich die Kette bis zum bekannten Root-Zertifikat prüfen. Root-Zertifikate haben häufig eine lange Laufzeit, damit sie seltener ausgetauscht werden müssen. Weshalb HTTPS beide Verfahren kombiniert Wenn ich große Datenmengen über meinen Webserver ausliefere, kostet asymmetrisches Verschlüsseln Rechenzeit. Symmetrische Verfahren arbeiten schneller und eignen sich deshalb für den laufenden Datenverkehr. Als Beispiele werden symmetrische Schlüssel mit 128 Bit und asymmetrische Schlüssel mit 4096 Bit genannt. HTTPS arbeitet als hybrides Verfahren: Zu Beginn wird asymmetrisch ein symmetrischer Schlüssel sicher übertragen. Anschließend verschlüsseln beide Seiten die eigentlichen Inhalte symmetrisch. Dafür müssen Browser und Server denselben Sitzungsschlüssel kennen. Was ich für HTTPS auf meinem Webserver einrichte Ein Schlüsselpaar erzeugen: Ich erstelle den öffentlichen und den privaten Schlüssel für meinen Webserver. Den privaten Schlüssel bewahre ich geschützt auf. Ein Zertifikat beantragen: Den öffentlichen Schlüssel übermittle ich mit einem Certificate Signing Request, kurz CSR, an eine CA. Dazu kommen die erforderlichen Angaben zur Domain und gegebenenfalls zu mir als Betreiber:in. Die Kontrolle über die Domain nachweisen: Die CA prüft beispielsweise, ob ich eine bestimmte Datei über die Domain ausliefern oder eine E-Mail an eine zugehörige administrative Adresse empfangen kann. Das Zertifikat im Server hinterlegen: Nach der Prüfung signiert die CA die Zertifikatsdaten mit ihrem privaten Schlüssel. Die erhaltene Zertifikatsdatei hinterlege ich auf meinem Webserver. Die Dateien konfigurieren: Bei einem Apache-Webserver trage ich ein, wo das Zertifikat liegt. Der Server braucht außerdem Zugriff auf den passenden privaten Schlüssel. Kostenlose Zertifikate und die Prüfung der Identität Für meine Website verwende ich Let's Encrypt. Diese CA stellt kostenlose Zertifikate aus und ermöglicht es, den Ablauf zu automatisieren. Beispielsweise wird eine Datei mit einem vorgegebenen Inhalt über die beantragte Domain ausgeliefert....
36 Minuten
Die Fortsetzung zum Oberthema Kryptographie mit Zertifikaten und Zertifizierungsstellen gibt es in der einhunderfünfundvierzigsten Episode des Anwendungsentwickler-Podcasts. TL;DR Wenn ich eine verschlüsselte Verbindung zu einem Webserver aufbaue, brauche ich einen öffentlichen Schlüssel, dessen Herkunft ich prüfen kann. Zertifikate verbinden diesen Schlüssel mit Angaben zu seinem/seiner Inhaber:in und einer digitalen Signatur der Zertifizierungsstelle (CA). Dein Browser prüft die Signaturen entlang einer Vertrauenskette, die bei einem als vertrauenswürdig hinterlegten Root-Zertifikat endet. Werden CAs angegriffen, können gefälschte Zertifikate gültig erscheinen; Sperrlisten und zeitnahe Browser-Updates helfen dabei, entzogenes Vertrauen technisch durchzusetzen. Kapitelmarken [00:00:01] Einstieg: Zertifikate und Zertifizierungsstellen [00:00:47] Grundlagen: Hashes und Schlüsselpaare [00:02:00] Digitale Signaturen, Authentizität und Integrität [00:03:51] Öffentliche Schlüssel und Man-in-the-Middle-Angriffe [00:05:57] Zertifikate und die Rolle der CA [00:08:14] Wie Zertifizierungsstellen Angaben prüfen [00:09:20] Vertrauensketten und Root-Zertifikate [00:10:51] Zertifikate auf dem Webserver [00:12:08] Vertrauenswürdige CAs im Browser [00:14:16] Zertifikate sperren mit einer CRL [00:16:50] Inhalt und technische Form eines Zertifikats [00:17:50] Signaturen von Zertifikaten prüfen [00:19:13] Welche Zertifikatsdaten die CA signiert [00:21:02] Selbstsignierte Root-Zertifikate als Vertrauensanker [00:23:52] Eigene Zertifikate und interne Unternehmens-CAs [00:24:54] X.509, Attribute und Common Name [00:27:27] Ablauf am Beispiel einer Verbindung zum Webserver [00:29:28] Risiken durch angegriffene Zertifizierungsstellen [00:31:13] Browser-Updates und das Beispiel DigiNotar [00:34:13] Feedback und Shownotes [00:35:06] Ausblick auf HTTPS Inhalt Wiederholung: Für die elektronische Signatur und die Verschlüsselung von Daten werden Paare aus öffentlichen und privaten Schlüsseln benötigt. Probleme Wer garantiert dem Absender, dass ein öffentlicher Schlüssel auch wirklich dem angegebenen Empfänger gehört? Wie kann sichergestellt werden, dass ein öffentlicher Schlüssel nicht von einem Angreifer durch seinen eigenen ausgetauscht wurde? Zertifikat Mit einem Zertifikat bestätigt eine unabhängige dritte Partei die Echtheit des öffentlichen Schlüssels des Empfängers. Diese dritte Partei wird Zertifizierungsstelle genannt. Die Zertifizierungsstelle (englisch Certificate Authority, abgekürzt CA) bestätigt die Authentizität des Schlüssels des Empfängers, indem sie z.B. dessen Adresse und Identität prüft. Das kostet meistens Geld, je nachdem wie intensiv diese Prüfung gemacht wird. Das geht von "muss eine E-Mail-Adresse mit dieser Domain abrufen können" bis hin zu "das Unternehmen existiert tatsächlich unter der postalischen Adresse". Wenn Alice statt dem öffentlichen Schlüssel von Bob ein Zertifikat erhält, kann sie es wiederum mit dem Zertifikat der CA prüfen. Sie weiß nun sicher, dass sie den korrekten öffentlichen Schlüssel nutzt und nicht einen kompromittierten. Alice muss dafür allerdings dem Zertifikat der Zertifizierungsstelle selbst vertrauen, da auch diese kompromittiert werden kann. Es entsteht also eine Vertrauenskette, die irgendwo in einem Root-Zertifikat endet. Und diesem Zertifikat muss manuell vertraut werden. Das "Urvertrauen" in die verschiedenen CAs wird hergestellt, indem sie z.B. in Browser wie Firefox oder Chrome vom Hersteller fest "eingebaut" und als vertrauenswürdig gekennzeichnet werden. Sollte ein Zertifikat kompromittiert werden, gibt es sog. Certificate Revocation Lists (CRL), in die die nicht mehr validen Zertifikate eingetragen werden können. Dafür müssen diese Listen aber natürlich bei jeder Prüfung eines Zertifikats kontrolliert werden, was sehr aufwändig ist. Technische Umsetzung Zertifikate sind (Plain-Text-)Dateien, die verschiedene technische Informationen enthalten wie z.B. den Namen des Ausstellers, den zertifizierten öffentlichen Schlüssel des Empfängers, ein Ablaufdatum, die elektronische Signatur der ausstellenden CA. Vereinfacht (!) gesagt, ist das Zertifikat der mit dem privaten Schlüssel der CA signierte öffentliche Schlüssel des Empfängers. Nur mit dem öffentlichen Schlüssel der CA kann diese Signatur geprüft werden. Und dieser öffentliche Schlüssel ist für alle wichtigen CAs im Browser hinterlegt. Genauer gesagt werden alle Inhalte des Zertifikats signiert und vom öffentlichen Schlüssel des Empfängers nur der Hash. Und im Browser sind auch nicht nur die öffentlichen Schlüssel der CAs hinterlegt, sondern wiederum Zertifikate, die wiederum zertifizert sind usw. Die Root-Zertifikate am Ende dieser Kette werden dann von der CA selbst signiert und heißen selbstsignierte Zertifikate. Dabei garantiert quasi die CA selbst, dass sie wirklich diese CA ist. Der Aufbau der Dateien ist standardisiert, z.B. im Format X.509. Aussteller und Zertifikatinhaber werden durch eine Reihe von Attributen beschrieben, z.B. den sog. Common Name (CN), Land und Ort. Links Permalink zu dieser Podcast-Episode RSS-Feed des Podcasts Public-Key-Zertifikat X.509 Zertifikatsperrliste Zusammenfassung Hashes und digitale Signaturen Wenn ich einen Hash über Daten bilde, entsteht ein Fingerabdruck mit fester Länge. Die Ausgangsdaten können beliebig lang sein. Schon ein verändertes Bit sollte den Hash deutlich verändern, sodass sich Änderungen an den Daten erkennen lassen. Bei einer digitalen Signatur signiere ich den Hash der Daten mit meinem privaten Schlüssel. Du kannst die Signatur mit meinem öffentlichen Schlüssel prüfen und selbst einen Hash über die empfangenen Daten bilden. Stimmen die Hashwerte überein, lassen sich zwei Schutzziele prüfen: Authentizität: Die Signatur stammt von der Person, die den passenden privaten Schlüssel besitzt. Integrität: Die signierten Daten sind unverändert angekommen. Die signierten Inhalte bleiben lesbar. Für vertrauliche Daten braucht es zusätzlich ein Verfahren, das sie verschlüsselt. Warum ein öffentlicher Schlüssel ein Zertifikat braucht Für eine Nachricht an einen Webserver kann ich dessen öffentlichen Schlüssel verwenden. Der Server entschlüsselt sie mit dem dazugehörigen privaten Schlüssel. Dabei muss ich sicher sein, dass der öffentliche Schlüssel zum gewünschten Server gehört. Ein:e Angreifer:in kann einen Schlüssel auf einem übernommenen Server ersetzen oder ihn unterwegs bei einem Man-in-the-Middle-Angriff austauschen. Wenn ich anschließend mit diesem ausgetauschten Schlüssel verschlüssele, kann die angreifende Person meine Nachricht entschlüsseln. Bei einer persönlich bekannten Kontaktperson kann ich den Schlüssel direkt vergleichen oder seinen Fingerprint prüfen. Für einen bisher unbekannten Webserver übernimmt eine Zertifizierungsstelle, auf Englisch Certificate Authority (CA), die Rolle einer vertrauenswürdigen dritten Partei. Sie bestätigt mit ihrer Signatur, wem der öffentliche Schlüssel zugeordnet ist. Was eine CA prüft Bevor eine CA ein Zertifikat ausstellt, prüft sie die Angaben des/der Antragsteller:in. Wie umfangreich sie dabei vorgeht, hängt vom angebotenen Verfahren ab. Ein möglicher Nachweis ist der Zugriff auf E-Mails einer Domain. Weitergehende Prüfungen können Angaben zur Person oder zum Unternehmen einbeziehen, etwa einen Ausweis oder die Firmenadresse. Die genannten Angebote reichen von kostenlosen Zertifikaten beziehungsweise etwa zehn Dollar pro Jahr bis zu mehreren hundert Dollar jährlich für umfangreichere Prüfungen. Zertifikate gelten für einen begrenzten Zeitraum und müssen erneuert werden. Vertrauenskette und Browser Zwischen dem Zertifikat eines Webservers und einer Root-CA können weitere CA-Zertifikate liegen. Jede beteiligte CA signiert das nachfolgende Zertifikat. Dein Browser prüft diese Vertrauenskette, bis er ein Zertifikat erreicht, dem er bereits vertraut. Browser-Anbieter:innen hinterlegen dafür CA-Zertifikate in ihrer Software und kennzeichnen sie als vertrauenswürdig. Darin stehen die öffentlichen Schlüssel, mit denen der Browser weitere Signaturen prüfen kann. In den Sicherheitseinstellungen deines Browsers kannst du dir die hinterlegten Zertifikate ansehen. Weltweit gibt es mehrere hundert CAs. Zu den genannten Beispielen gehören Microsoft und die Telekom. Durch die hinterlegten Zertifikate hängt das Vertrauen deines Browsers auch davon ab, welche CAs die Browser-Anbieter:innen akzeptieren. Inhalt und Signatur eines Zertifikats Ein Webserver liefert seinem Client eine Zertifikatsdatei mit dem öffentlichen Schlüssel und zusätzlichen Angaben. Zertifikate begegnen dir häufig als Base64-kodierte Textdateien; daneben gibt es binäre Formate. Zu den enthaltenen Informationen gehören: Angaben zur ausstellenden CA und zum/zur Zertifikatsinhaber:in der öffentliche Schlüssel des/der Inhaber:in das Datum, an dem das Zertifikat ausgestellt wurde, sowie sein Ablaufdatum Angaben zu den verwendeten Hash-Verfahren die digitale Signatur der CA Die CA bildet einen Hash über die zu signierenden Zertifikatsdaten und signiert ihn mit ihrem privaten Schlüssel. Dadurch sind auch die Angaben geschützt, die den Schlüssel begleiten. Wenn mein Browser dieses Zertifikat erhält, prüft er die Signatur mit dem öffentlichen Schlüssel der ausstellenden CA. Dazu gehört der Vergleich mit einem selbst berechneten Hash der Zertifikatsdaten. So lässt sich feststellen, ob die CA das Zertifikat signiert hat und ob seine Inhalte unverändert geblieben sind. Bei mehreren beteiligten CAs wiederholt sich diese Prüfung entlang der Kette. Root-Zertifikate und eigene Zertifikate Am Ende der Kette steht ein Root-Zertifikat, das die Root-CA selbst signiert. Das Vertrauen in dieses Zertifikat wird ausdrücklich festgelegt, beispielsweise durch die Browser-Anbieter:innen. Ab diesem Vertrauensanker lassen sich die nachfolgenden Signaturen technisch prüfen. Für meinen eigenen Webserver kann ich ebenfalls ein selbstsigniertes Zertifikat erstellen....
1 Stunde 1 Minute
Wir gehen ein komplettes Beispiel zur Normalisierung einer relationalen Datenbank durch in der einhundertvierundvierzigsten Episode des Anwendungsentwickler-Podcasts. TL;DR Ich gehe mit dir an einem Beispiel mit Bestellungen und Artikeln durch, wie du eine relationale Datenbank bis zur dritten Normalform aufbaust. Dabei zerlegst du zusammengesetzte Werte, verteilst mehrfach enthaltene Artikel auf einzelne Zeilen und trennst Daten anhand ihrer Abhängigkeiten in eigene Tabellen. Primärschlüssel und Fremdschlüssel halten die Beziehungen zusammen, während du Redundanzen und daraus entstehende Anomalien vermeidest. Für deine Prüfung als Fachinformatiker:in solltest du die Normalformen definieren und jeden Schritt an einem vorbereiteten Beispiel begründen können. Kapitelmarken [00:00:01] Hinweis zum Fachgespräch [00:00:37] Normalisieren in der schriftlichen Prüfung und im Fachgespräch [00:02:26] Ein passendes Beispiel für die Prüfung vorbereiten [00:05:16] Redundanzen und Anomalien als Grund fürs Normalisieren [00:06:53] Merkhilfe: The key, the whole key and nothing but the key [00:07:52] Das Beispiel mit Kund:innen und Bestellungen [00:12:20] Ausgangstabelle und Probleme beim Abfragen [00:16:11] Erste Normalform und atomare Attribute [00:19:03] Postleitzahlen: Kardinalität und Datentyp [00:20:34] Wiederholungsgruppen auf einzelne Zeilen verteilen [00:24:56] Datensätze über Schlüssel identifizieren [00:26:33] Redundanzen und Änderungsanomalien [00:28:58] Zweite Normalform und vollständige funktionale Abhängigkeit [00:32:18] Eigene Tabellen und Fremdschlüssel einführen [00:33:52] Bestellpositionen als m:n-Zwischentabelle [00:36:25] Menge und konkreten Kaufpreis richtig zuordnen [00:39:53] 1:n-Beziehungen in der zweiten Normalform [00:42:28] Dritte Normalform und redundante Artikelgruppen [00:44:50] Transitive Abhängigkeiten verstehen [00:47:47] Artikelgruppen auslagern und per Fremdschlüssel verknüpfen [00:50:49] Das fertige Tabellenmodell und seine Schlüssel [00:53:19] Anomalien vermeiden und Beziehungen erhalten [00:56:15] Normalformen und Merkhilfe für die Prüfung wiederholen [00:58:50] Begleitmaterial und Literatur [01:00:48] Feedback und Abschluss Inhalt Theoretische Grundlagen Wir normalisieren Datenbanken um Redundanzen zu vermeiden, die zu Anomalien führen können. Mehr dazu in Podcast-Episode 18. Grundlagen wie Schlüssel, Kardinalitäten usw. erkläre ich in Podcast-Episode 17. Merksatz: "The key, the whole key, and nothing but the key." Beispieldaten Wir verwenden ein "klassisches" Beispiel, das so oder ähnlich in vielen IHK-Prüfungen genutzt wird. Umfeld: Kunden bestellen Artikel aus verschiedenen Artikelgruppen. Ein Kunde kann mehrere Bestellungen durchführen. Eine Bestellung wird immer von genau einem Kunden getätigt. Zu den Kunden werden Name und Adresse erfasst. Jede Bestellung hat ein Bestelldatum. In einer Bestellung können mehrere Artikel enthalten sein. Ein Artikel kann auch in mehreren Bestellungen auftauchen. Artikel haben eine Bezeichnung und einen Preis. Ein Artikel kann zu genau einer Artikelgruppe gehören. Eine Artikelgruppe kann mehrere Artikel enthalten. Artikelgruppen haben eine Bezeichnung und einen Rabatt. Ausgangssituation (nicht normalisiert) Alle Bestellungen stehen in einer einzelnen Tabelle. Jede Bestellung steht komplett inkl. mehrerer Artikel in einer Zeile. Die Adresse steht komplett in einem einzigen Attribut. Beispiele für Probleme: Viele Redundanzen (z.B. Adressen, Artikelbezeichnungen), Sortierung nach Ort ist nicht möglich, Selektion aller gekaufter Fernseher ist nicht möglich. 1. Normalform Definition: Es gibt 1) nur atomare Attribute und 2) keine Wiederholungsgruppen. "the key": Alle Datensätze sind eindeutig über einen Primärschlüssel identifizierbar. Durch 2) werden Redundanzen zunächst eingeführt, da aus einer Zeile nun mehrere Zeilen mit redundanten Inhalten werden. Vorgehen: Nicht-atomare Attribute auf mehrere Spalten aufteilen. Wiederholungsgruppen auf mehrere Zeilen aufteilen. Ein Datensatz ist über einen zusammengesetzten Schlüssel aus drei Attributen identifizierbar. Redundanzen: Kunden-, Bestell- und Artikeldaten sind jeweils mehrfach vorhanden. Ursache: Tabelle enthält drei Konzepte (Kunde, Bestellung, Artikel), die alle nur von Teilen des Schlüssels abhängen und nicht vom gesamten. 2. Normalform Definition: (1. Normalform erfüllt und) alle Attribute sind voll funktional vom Primärschlüssel abhängig. "the whole key": Alle Attribute hängen vom gesamten Schlüssel ab (und nicht nur von seinen Teilen). Vorgehen: Alle drei Konzepte auf einzelne Tabellen aufteilen. Fremdschlüssel für Referenzen einführen. Zuordnungstabelle Position mit zusammengesetztem Schlüssel aus Fremdschlüsseln einführen. m:n-Beziehungen werden aufgelöst. Menge gehört an die Kombination aus Bestellung und Artikel und weder an das eine noch das andere allein. Redundanzen: Artikelgruppe und Rabatt gehören zusammen und sind mehrfach vorhanden. Ursache: Rabatt hängt von Artikelgruppe ab und nicht von der Artikelnummer (=transitive Abhängigkeit). 3. Normalform Definition: (2. Normalform erfüllt und) es gibt keine transitiven Abhängigkeiten. "and nothing but the key": Kein Nicht-Schlüssel-Attribut hängt von einem anderen Nicht-Schlüssel-Attribut ab. Vorgehen: Artikelgruppe in eigene Tabelle extrahieren und Fremdschlüssel für Referenz einführen. 1:n-Beziehungen werden aufgelöst. Ergebnis Jede Tabelle enthält genau ein Konzept. Keine Daten sind mehr redundant. In jeder Tabelle gibt es einen eindeutigen Primärschlüssel. Fremdschlüssel werden für Referenzen auf Datensätze in anderen Tabellen verwendet. Literaturempfehlungen Zum Einstieg ins Thema Datenbanken inkl. Modellierung, Normalisierung und SQL empfehle ich Einstieg in SQL* von Michael Laube. * Links Permalink zu dieser Podcast-Episode RSS-Feed des Podcasts Relationale Datenbanken - Häufige Fragen im Fachgespräch Normalisierung - Häufige Fragen im Fachgespräch Normalisierung (Datenbank) Zusammenfassung Normalformen in deiner IT-Prüfung An einem Beispiel mit Bestellungen und Artikeln gehe ich mit dir bis zur dritten Normalform. Als IT-Azubi zum/zur Fachinformatiker:in Anwendungsentwicklung brauchst du dieses Wissen beim Entwerfen relationaler Tabellenmodelle und im Fachgespräch. Dort gehören auch die Definitionen der Normalformen und die Gründe für jeden Schritt zu den möglichen Fragen. Bereite dir dafür ein konkretes Beispiel vor, dessen Beziehungen du nachvollziehen kannst. Das hier beschriebene Bestellmodell kommt häufig in IHK-Aufgaben vor. Auch ein anderes vertrautes Beispiel eignet sich, wenn du die Abhängigkeiten darin erklären kannst. Warum Daten normalisieren? Wenn du dieselben Daten mehrfach speicherst, entstehen Redundanzen. Daraus können Anomalien folgen: Ändert sich etwa eine Adresse, musst du jeden betroffenen Datensatz anpassen. Bleibt eine alte Adresse stehen, enthält die Datenbank widersprüchliche Angaben. Durch die einzelnen Normalformen verteilst du zusammengehörige Daten auf eigene Tabellen. So lassen sich Angaben getrennt abfragen und an einer Stelle ändern. Der zusätzliche Speicherbedarf mehrfach gespeicherter Werte spielt dabei eine untergeordnete Rolle. Das Beispiel und seine Beziehungen In meinem Beispiel bestellen Kund:innen Artikel, die jeweils zu einer Artikelgruppe gehören. Für das Modell gelten diese Regeln: Kund:in und Bestellung, 1:n: Ein:e Kund:in kann mehrere Bestellungen aufgeben. Jede Bestellung gehört genau einer Person. Bestellung und Artikel, m:n: Eine Bestellung kann mehrere Artikel enthalten. Derselbe Artikel kann in mehreren Bestellungen vorkommen. Artikelgruppe und Artikel, 1:n: Jeder Artikel gehört im Beispiel zu genau einer Gruppe, die mehrere Artikel enthalten kann. Zu einer Kund:in gehören Name und Adresse. Eine Bestellung hat ein Bestelldatum; beim Artikel sind Bezeichnung und Preis hinterlegt. Die Artikelgruppe hat eine eigene Bezeichnung und einen Rabatt, etwa zehn Prozent für Elektronik. Am Anfang stehen alle Angaben in einer Excel-Tabelle mit einer Zeile pro Bestellung. Die komplette Adresse ist in einer Zelle gespeichert, ebenso die Liste der bestellten Artikel. Dadurch lassen sich einzelne Orte oder Artikel schwer gezielt abfragen. Sobald eine Person erneut bestellt, werden ihre Angaben nochmals erfasst. Erste Normalform: atomare Attribute und aufgelöste Wiederholungsgruppen Für die erste Normalform müssen die Attribute atomar sein und Wiederholungsgruppen aufgelöst werden. Zusammengesetzte Werte aufteilen Atomar bedeutet, dass ein Wert für die Anforderungen deines Datenmodells als einzelne Einheit behandelt wird. Die Adresse zerlege ich im Beispiel in eine Spalte für die Straße einschließlich Hausnummer sowie separate Spalten für Postleitzahl und Ort. Wie weit du solche Angaben aufteilst, hängt von deinen Anforderungen ab. Wenn du die Hausnummer oder ihren Zusatz einzeln verarbeiten musst, bekommen diese Bestandteile eigene Spalten. Im Beispiel bleibt die Straßenangabe einschließlich Hausnummer zusammen. Zwei Details sind dabei zu beachten: Zwischen Postleitzahl und Ort besteht in Deutschland eine m:n-Beziehung. Ein Ort kann mehrere Postleitzahlen haben; eine Postleitzahl kann für mehrere Orte gelten. Speichere Postleitzahlen als Text, damit führende Nullen erhalten bleiben. Dieser Datentyp erlaubt auch Buchstaben, die in internationalen Postleitzahlen vorkommen. Mehrfach enthaltene Artikel auf einzelne Zeilen verteilen Enthält eine Bestellung mehrere Artikel in einer Zelle, liegt eine Wiederholungsgruppe vor. Dafür erhält jeder bestellte Artikel eine eigene Zeile. Die übrigen Angaben zur Bestellung und zur bestellenden Person werden zunächst in jede dieser Zeilen übernommen. Bei einer Bestellung mit mehreren Artikeln stehen die Kundendaten dadurch mehrfach in der Tabelle. Diese zusätzlichen Redundanzen entstehen beim ersten Schritt und werden in den folgenden Normalformen entfernt. Jede Zeile muss eindeutig identifizierbar sein....