Anmeldung Registrierung
Auto Hell Dunkel
Erweiterte Suche

IT-Berufe-Podcast Archiv

214 Episoden
26 Minuten
Die beiden kurzen Kapitel 17 (Weitere Datei- und Datenformate) und 21 (Computer- und Netzwerksicherheit) sind Inhalt der fünfundsiebzigsten Episode des Anwendungsentwickler-Podcasts. TL;DR Ich gehe mit dir die Kapitel 17 und 21 des Handbuchs für Fachinformatiker:innen durch, die Datei- und Datenformate sowie Computer- und Netzwerksicherheit behandeln. Für deine Prüfung brauchst du Kenntnisse über Zeichencodierungen und Dateiformate sowie klare Definitionen der Sicherheitsbegriffe. Praxisbeispiele zeigen dir, wie du Dateien mit einem Hexeditor untersuchst oder Linux-Server absicherst. Bei Audio- und Videoformaten sowie Kryptografie empfehle ich dir ergänzende Quellen, damit du die Themen ausreichend für die Prüfung verstehst. Kapitelmarken [00:00:20] Episode 75 und die Kapitel im Buchclub [00:01:57] Textdateien und Zeichensätze [00:02:26] Encoding-Probleme mit PowerShell und Git [00:04:33] Zeichensätze für die Prüfung [00:05:09] LaTeX und Projektdokumentation [00:06:04] Binäre Dateiformate [00:06:55] Dateien mit einem Hexeditor untersuchen [00:07:45] Bildformate und Kompression [00:10:10] Audio- und Videoformate [00:11:42] TAR-Archive unter Linux [00:12:48] Computer- und Netzwerksicherheit [00:13:08] Viren, Würmer und Schutzmaßnahmen [00:14:30] Trojaner, Backdoors, Spyware und Adware [00:14:59] Phishing und Spam in der Prüfung [00:16:10] Gefahren für Netzwerke und Server [00:16:48] SQL-Injection und OWASP Top 10 [00:19:28] Firewalls und Intrusion Detection Systems [00:20:10] Linux-Firewalls mit iptables konfigurieren [00:21:07] Kryptografie und hybride Verschlüsselung mit HTTPS [00:22:59] Digitale Signaturen, Hashverfahren und ergänzende Literatur [00:23:43] Die Kapitel im ersten Ausbildungsjahr lernen [00:24:42] Weitere Themen im Buchclub [00:25:34] Newsletter und Links der Woche Inhalt Kapitel 17 (Weitere Datei- und Datenformate) Textdateien und Zeichensätze Ein absolut praxisrelevantes Thema! Muss mein aktueller Azubi gerade lernen. :-) Auch die Zeilenumbrüche nicht vergessen! Ein paar ASCII-Zeichen darf man als Programmierer auch kennen! Und wie heißt der Standard-Zeichensatz in Deutschland? Das kurze Kapitel zu LaTeX ist natürlich auch sehr wichtig! ;-) Binäre Dateiformate Schöne Erklärung für die Praxis (mit Hex-Editor). Verlustbehaftete und verlustfreie Komprimierung sollte jeder Prüfling erklären können. Die Unterschiede verbreiteter Bildformate sind sowohl praxis-, als auch prüfungsrelevant. Das Gleiche gilt für Audio- und Videoformate. Kapitel 21 (Computer- und Netzwerksicherheit) PC-Gefahren Wichtige Begriffsdefinitionen für die Prüfung (z.B. Viren, Würmer, Trojaner). Phishing und Spam waren gerade in der letzten Sommerprüfung Thema. Netzwerk- und Serversicherheit Es geht weiter mit ebenso wichtigen Begriffen: Exploits, DoS, Rootkits, SQL-Injection, Firewalls, IDS. Praxisbeispiel iptables ist interessant für den eigenen Server. Die Einführung in die Kryptographie ist auch sehr praxis- und prüfungsrelevant. Gerade symmetrische und asymmetrische Verschlüsselung sollte jeder ITler kennen. Literaturempfehlungen *(direkt beim Rheinwerk-Verlag bestellen*) Links Permalink zu dieser Podcast-Episode RSS-Feed des Podcasts Zeichensätze und -kodierung - Anwendungsentwickler-Podcast #32 Pflichtlektüre rund um Zeichensätze und Encodings Einführung in LaTeX: 00. Einleitung Category:OWASP Top Ten Project - OWASP Zusammenfassung Die Kapitel im Buchclub In der zehnten Folge meines Buchclubs behandle ich Kapitel 17 zu weiteren Datei- und Datenformaten sowie Kapitel 21 zur Computer- und Netzwerksicherheit. Beide enthalten Grundlagen, die du als IT-Azubi bereits im ersten Ausbildungsjahr lernen kannst. Viele Begriffe werden in der schriftlichen Prüfung abgefragt; SQL-Injection spreche ich auch im mündlichen Fachgespräch an, wenn entsprechende Schwachstellen im gezeigten Code auftauchen. Textdateien und Zeichencodierungen Wenn du Dateien schreibst oder einliest, musst du die passende Zeichencodierung berücksichtigen. Andernfalls erscheinen Zeichen falsch oder ein Werkzeug interpretiert die Datei unerwartet. Bei meinem neuen Azubi trat das während der Arbeit mit Git und PowerShell auf: Die damals verwendete PowerShell schrieb per Ausgabeumleitung Textdateien in UTF-16. Git erwartete UTF-8 und behandelte die erzeugten Dateien als Binärdateien. Im Editor ließ sich der Inhalt lesen, während Git ihn anders interpretierte. Für deine Ausbildung solltest du folgende Begriffe kennen: ASCII Unicode und die dazugehörige UTF-8-Codierung UTF-16 ANSI ISO-8859-1 als westeuropäischen Zeichensatz Zu Encoding habe ich bereits eine eigene Podcastfolge veröffentlicht. In meinen Shownotes findest du außerdem weitere Links zum Thema. LaTeX für deine Projektdokumentation Das Buch enthält einen kurzen Abschnitt zu LaTeX, mit dem ich längere Dokumente schreibe. Für deinen Einstieg stehen meine kostenlose, zehnteilige Videoreihe und eine Vorlage für die Projektdokumentation bereit. Die Links findest du ebenfalls in den Shownotes. Binäre Dateiformate und Hexeditoren Mit einem Hexeditor kannst du die gespeicherten Bytes einer Datei ansehen. Das hilft dir auch dabei, nachzuvollziehen, wie verschiedene Zeichencodierungen einen Text auf der Festplatte ablegen. Das Buch führt mit einem Praxisbeispiel in dieses Werkzeug ein. Bildformate und komprimierte Dateien Bei verlustfreier Kompression bleiben die Informationen erhalten, während die Datei kleiner wird. Verlustbehaftete Kompression, etwa bei JPEG, verringert die Dateigröße und lässt Bildqualität verloren gehen. Für die Prüfung solltest du GIF, PNG, BMP, TIFF und JPEG mit ihren Eigenschaften kennen. Dazu gehören die Farbtiefe und das jeweilige Verfahren zum Komprimieren. Eine Aufgabe kann verlangen, dass du ein Format für Bilder auf einer Website auswählst und deine Wahl begründest. Auch das Berechnen von Datenmengen gehört zu den angesprochenen Aufgaben. Einige Eigenschaften werden konkret genannt: GIF arbeitet mit 8 Bit Farbtiefe und kann animierte Bilder speichern. JPEG wird häufig für Fotos verwendet; im besprochenen Beispiel beträgt die Farbtiefe 24 Bit. PNG kann einen Alphakanal mit 8 Bit für Transparenz enthalten. Audio- und Videoformate Für die Prüfung brauchst du Kenntnisse über WAV und MP3 sowie über die üblichen Abtastraten und Sampletiefen. Als Bezugspunkt dient CD-Qualität mit 44,1 kHz Abtastrate und 16 Bit Sampletiefe. Solche Angaben helfen dir, Datenmengen zu berechnen und Eigenschaften von Formaten zu beurteilen. Die ungefähr zwei Seiten im Buch behandeln diese Themen knapp. Für deine Prüfung empfehle ich dir, sie weiter zu vertiefen. Bei JPEG und MPEG solltest du die ausgeschriebenen Namen kennen und das Verfahren grob beschreiben können. Der erwartete Umfang bleibt bei den Grundlagen; wissenschaftliche Details wie eine Fourier-Transformation gehen darüber hinaus. Archive unter Linux Ein Praxisbeispiel zeigt, wie du mit dem Kommandozeilenwerkzeug tar Dateien packst und entpackst. Das brauchst du beispielsweise, wenn du heruntergeladene Quelltexte aus einem TAR-Archiv holen möchtest, bevor du sie selbst kompilierst. Gefahren für deinen PC Zu Viren und Würmern solltest du erklären können, wie sie sich verbreiten und welche Merkmale sie haben. Auch Polymorphie bei Viren gehört zu den angesprochenen Fachbegriffen. Weitere Begriffe aus dem Kapitel sind: Trojaner Backdoors Spyware und Adware Phishing Spam Lege dir zu jedem Begriff eine kurze, eindeutige Definition zurecht, die du in der Prüfung aufschreiben kannst. Bei Fragen zum Schutz eines PCs kommen beispielsweise eine Firewall und ein Virenscanner infrage. Spam und Phishing In der Sommerprüfung 2016 wurden beide Begriffe abgefragt. Beim Korrigieren habe ich erlebt, dass viele Prüflinge die Definitionen durcheinanderbrachten. Spam umfasst unerwünschte Nachrichten, beispielsweise mit Werbung. Phishing zielt darauf ab, vertrauliche Daten wie Passwörter abzugreifen. Netzwerk- und Serversicherheit Wenn du einen Server betreibst oder Anwendungen entwickelst, brauchst du Kenntnisse über die Angriffe, denen diese ausgesetzt sein können. Im Kapitel werden unter anderem folgende Begriffe behandelt: Exploits DoS- und DDoS-Attacken Rootkits SQL-Injection Session-Hijacking SQL-Injection und OWASP Top 10 SQL-Injection kann entstehen, wenn eine Anwendung Eingaben von Benutzer:innen ungeprüft in SQL-Zeichenketten einbaut und diese an die Datenbank sendet. Das Buch macht den Angriff anhand eines kurzen Praxisbeispiels nachvollziehbar. Für den Umgang mit Parametern stehen Funktionen der jeweiligen Datenbank-Frameworks bereit. Darüber kannst du Parameter verarbeiten und escapen lassen, ohne SQL-Zeichenketten selbst aus den Eingaben zusammenzusetzen. Die OWASP Top 10 geben einen Überblick über verbreitete Sicherheitslücken. Injections standen zum Zeitpunkt der Aufnahme seit Jahren weit oben auf dieser Liste. Du solltest die dort beschriebenen Risiken erklären können und beim Entwickeln berücksichtigen. In meinen Shownotes verlinke ich die Liste; außerdem erwähne ich einen Pluralsight-Kurs von Troy Hunt, der Gegenmaßnahmen anhand von Beispielen zeigt. Firewalls und Intrusion Detection Systems Zu den prüfungsrelevanten Grundlagen gehören auch die Begriffe Firewall und Intrusion Detection System. Das Buch zeigt anschließend über mehrere Seiten, wie du mit iptables eine Firewall auf einem Linux-Server konfigurierst. Meine Azubis sichern ihre Server damit ab. Die beschriebenen Parameter und Beispiele helfen beim praktischen Einstieg. Für die Prüfung stehen die allgemeinen Grundlagen im Vordergrund, da die konkrete iptables-Konfiguration produktspezifisch ist. Kryptografie Bei symmetrischen und asymmetrischen Verfahren solltest du verstehen, wie sie arbeiten und welche Eigenschaften sie haben. Zur asymmetrischen Verschlüsselung gehören außerdem die Rollen von Public Key und Private Key sowie die Frage, wer welchen Schlüssel haben darf. An HTTPS lässt sich das Zusammenspiel als hybrides Verfahren erläutern: Ei
30 Minuten
18 hilfreiche Firefox-Plugins nicht nur für Webentwickler stelle ich in der vierundsiebzigsten Episode des Anwendungsentwickler-Podcasts vor. TL;DR Für meinen Arbeitsalltag habe ich Firefox mit 18 Erweiterungen angepasst, die dir auch als IT-Azubi helfen können. Neun davon erleichtern den Umgang mit dem Browser, etwa beim Anmelden, beim Schreiben in Formularen oder beim Lesen und Anschauen gespeicherter Inhalte. Weitere neun helfen dir bei der Webentwicklung, wenn du HTML prüfst, JavaScript debuggst oder Layouts und HTTP-Daten untersuchst. Beim ergänzenden Thema Tabs und Spaces kommt es darauf an, dass dein Team einheitlich arbeitet. Kapitelmarken [00:00:01] Einführung: 18 Firefox-Erweiterungen [00:00:59] Firefox im Arbeitsalltag und eigener Sync-Server [00:02:27] Allgemeine Plugins und Werkzeuge für die Webentwicklung [00:04:05] Vimperator: Firefox mit Vim-Tastenkürzeln steuern [00:05:47] FireGestures: Browserbefehle über Mausgesten [00:07:33] KeeFox: Zugangsdaten aus KeePass eintragen [00:09:01] It's All Text: Formulartexte im Texteditor bearbeiten [00:11:04] Lazarus: Formulareingaben wiederherstellen [00:12:21] Make Link: Formatierte Links kopieren [00:13:51] Send to Kindle: Lange Artikel später lesen [00:14:51] Video DownloadHelper: Videos offline anschauen [00:16:20] Zotero: Literatur und PDFs verwalten [00:18:23] Web Developer Toolbar: Webseiten untersuchen und verändern [00:19:23] HTML Validator: Gültiges HTML prüfen [00:20:20] Firebug: JavaScript debuggen und Webseiten untersuchen [00:21:12] ColorZilla: Farbcodes auslesen [00:22:16] MeasureIt: Abstände und Maße in Pixeln prüfen [00:23:03] FireShot: Komplette Webseiten als Screenshot speichern [00:24:22] Linkification: Textadressen anklickbar machen [00:25:32] Live HTTP Headers: Requests und Responses untersuchen [00:26:20] Advanced Cookie Manager: Cookies prüfen und verändern [00:26:52] Überblick über die 18 Plugins und Shownotes [00:27:40] Tabs und Spaces: Konventionen und einheitlicher Code im Team Inhalt Allgemein Vimperator: Ohne Vim-Steuerung ist der Firefox nicht zu gebrauchen ;-) FireGestures: Aber auch die Maussteuerung kann deutlich optimiert werden. KeeFox: Nie wieder Passwörter eintippen! It's All Text!: Formulare im Lieblingseditor ausfüllen. Lazarus: Form Recovery: Lazarus hat mich schon mehrfach vor dem erneuten Eintippen riesiger Formulare bewahrt. Make Link: Unerlässlich, wenn man Texte (wie diesen) mit Markdown schreibt. Send to Kindle for Mozilla Firefox: Für lange Artikel eine einfache Lösung, sie offline zu lesen. * Video DownloadHelper: Wenn einem die doppelte Geschwindigkeit von YouTube nicht reicht ;-) Zotero: Die Literaturverwaltung meiner Wahl. Webentwicklung Web Developer: Das schweizer Taschenmesser für jeden Webentwickler. Html Validator: Sauberes Markup sollte für jeden Entwickler Pflicht sein. Firebug: Was kann dieses Tool nicht? ColorZilla: Sehr hilfreich bei der Überprüfung von Farbvorgaben. MeasureIt: Für pixelgenaue Layouts unerlässlich. Fireshot: Sehr hilfreich bei der Abstimmung von Entwürfen mit dem Kunden. Linkification: Ein nettes Helferlein. Live HTTP Headers: Gerade in Zeiten von REST sehr hilfreich. Advanced Cookie Manager: Na, wer spioniert mich da aus? Literaturempfehlungen Falls du den Vim noch nicht "beherrschst", wird es Zeit! ;-) * Links Permalink zu dieser Podcast-Episode RSS-Feed des Podcasts Zusammenfassung Firefox in meinem Arbeitsalltag Ich arbeite seit Jahren mit Firefox und habe den Browser durch Erweiterungen an meine Aufgaben angepasst. Für meine Lesezeichen betreibe ich einen eigenen Sync-Server, damit die Daten auf meinem Server liegen. Die hier vorgestellten 18 Plugins verteilen sich auf neun allgemeine Erweiterungen und neun für Webentwickler:innen. Über F12 erreichst du bereits die eingebauten Entwicklerwerkzeuge von Firefox. Dort kannst du JavaScript untersuchen und HTML sowie CSS verändern. Die zusätzlichen Plugins erweitern diese Möglichkeiten. Neun Erweiterungen für den Alltag Vimperator: Damit steuere ich Firefox über die Tastenkürzel aus Vim. Mit D lässt sich ein Tab schließen, während T einen neuen öffnet. Wenn du F drückst, erscheinen Zahlen an Links und anklickbaren Formularelementen. Über diese Zahlen kannst du direkt mit der Tastatur navigieren. Auch beim Scrollen stehen dir die gewohnten Vim-Befehle zur Verfügung. FireGestures: Mit gedrückter rechter Maustaste zeichnest du Gesten, die Browserbefehle ausführen. So kannst du etwa einen Tab schließen oder zum Seitenende springen. Eigene Gesten lassen sich zusätzlich festlegen. KeeFox: Das Plugin verbindet Firefox mit KeePass, wo ich meine Passwörter verschlüsselt speichere. Anhand hinterlegter URLs erkennt es passende Zugangsdaten. Mit Strg + Umschalt + 2 werden die Felder ausgefüllt und das Formular abgeschickt. It's All Text: Über einen kleinen Button an einem Textfeld öffnest du dessen Inhalt in einem frei wählbaren Texteditor. Dort stehen dir beispielsweise die vertrauten Tastenkürzel und Syntax-Highlighting für Markdown zur Verfügung. Sobald du die Datei speicherst, erscheint der geänderte Text im Browser. Die Datei bleibt im temporären Verzeichnis auf der Festplatte erhalten, sodass du nach einem Browserabsturz darauf zugreifen kannst. Beim erneuten Öffnen der Seite kann das Plugin den Text wieder dem Formular zuordnen. Lazarus: Wenn du direkt in Formularfelder schreibst, merkt sich die Erweiterung deine Eingaben. Nach einem Absturz kannst du sie über das Kontextmenü wiederherstellen. Ich verwende das auch für Formulare mit vielen einzelnen Feldern. Make Link: Über das Kontextmenü kopierst du die aktuelle Seite als formatierten Link in die Zwischenablage. Das Format lässt sich frei festlegen. Für meine mit Markdown geschriebenen Artikel habe ich eine passende Vorlage eingerichtet; auch HTML und BBCode sind möglich. Send to Kindle: Längere Artikel schicke ich auf meinen Kindle, um sie später dort zu lesen. Die Erweiterung bereitet den Inhalt auf und entfernt Werbung, während die zum Text gehörenden Bilder erhalten bleiben. Video DownloadHelper: Damit lade ich Videos herunter, etwa von YouTube oder Vimeo, und schaue sie später offline. Das hilft mir bei schlechtem WLAN und auf Zugfahrten. Die gespeicherten Dateien lassen sich in einem Media Player abspielen, in dem ich auch die Geschwindigkeit einstellen kann. Zotero: In dieser Literaturverwaltung sammle ich Quellen mit ihren bibliografischen Angaben und PDF-Anhängen. Bei einem geöffneten Buch auf Amazon übernimmt das Plugin beispielsweise die Metadaten. Auch Inhalte einer Website lassen sich als Screenshot oder PDF anhängen. Meine Daten und Anhänge liegen auf meinem eigenen Server und werden zwischen meinen Rechnern synchronisiert. Für Literaturempfehlungen an IT-Azubis ergänze ich eigene Notizen, damit ich Quellen später wiederfinde. Mit vielen installierten Plugins kann Firefox langsamer werden. Für bereits eingegebene Texte bieten It's All Text und Lazarus Wege, sie nach einem Absturz wiederzubekommen. Neun Erweiterungen für Webentwickler:innen Web Developer Toolbar: Die Werkzeugleiste bietet viele Funktionen, um Webseiten zu untersuchen. Du kannst Cookies bearbeiten oder CSS-Stile verändern und abschalten. Ebenso lassen sich Formulare deaktivieren sowie Bilder ein- und ausblenden. HTML Validator: Ein Symbol zeigt dir, ob das HTML der aktuellen Seite gültig ist. Bei Fehlern bekommst du Hinweise auf die betroffene Stelle und darauf, wie du sie behebst, etwa bei einem fehlenden schließenden Tag. In meiner Ausbildung achte ich auf valides HTML; dabei spielt auch Barrierefreiheit eine Rolle. Firebug: Das umfangreiche Werkzeug hilft unter anderem beim Debuggen von JavaScript. Für Firebug gibt es eigene Erweiterungen. Ein genanntes Beispiel von Yahoo untersucht, wie lange einzelne Bestandteile einer Webseite zum Laden brauchen. ColorZilla: Mit der Farbpipette liest du Farbcodes direkt im Browser ab und kopierst sie in die Zwischenablage. So kannst du kontrollieren, ob die Farben einer Website den Vorgaben entsprechen. MeasureIt: Du ziehst ein Rechteck auf und bekommst dessen Breite und Höhe in Pixeln angezeigt. Damit lassen sich Abstände im Layout prüfen, auch wenn der betreffende Bereich aus mehreren Seitenelementen besteht. FireShot: Die Erweiterung erstellt Screenshots kompletter Webseiten einschließlich der Bereiche außerhalb des sichtbaren Fensters. Das Ergebnis kannst du beispielsweise als JPEG oder PDF speichern und per E-Mail verschicken. Ich verwende solche Bilder, um mit dem Fachbereich Änderungen an einer Seite zu besprechen. Linkification: Als Text eingetragene URLs werden automatisch anklickbar. Die Erweiterung erkennt neben HTTP-Adressen auch FTP- und Mailto-Verweise, sodass du sie direkt öffnen kannst. Live HTTP Headers: Damit schaust du dir die HTTP-Header von Request und Response an. Bei REST-Diensten kannst du beispielsweise prüfen, welcher Accept-Header gesetzt wurde und welches Datenformat zurückkommt. Auch Angaben zu gzip, Content-Length und Statuscodes lassen sich untersuchen. Advanced Cookie Manager: Das Plugin zeigt die Cookies im Browser an und erlaubt dir, Werte zu ändern oder herauszukopieren. Ich verwende es unter anderem, um Session Hijacking zu demonstrieren. Durch gezielt veränderte Cookie-Werte lässt sich außerdem prüfen, wie eine Website auf fehlerhafte Daten reagiert. Die Links zu den Erweiterungen stehen in meinen Shownotes zur Episode 74 auf anwendungsentwicklerpodcast.de. Tabs und Spaces im Quellcode Als ergänzenden Artikel habe ich eine Untersuchung verlinkt, die sich mit Tabs und Spaces in vielen Open-Source-Projekten beschäftigt. Bisher habe ich Tabs bevorzugt, weil sich ihre angezeigte Breite im Editor individuell einstellen lässt. Durch den Artikel denke ich darüber nach, künftig häufiger mit Spaces zu arbeiten. Welche Variante du verwendest, hängt auch vom Projekt und den Konventionen der jeweiligen Sprache oder Plattform ab. In Java-Projekten sind Spaces häufig verbreitet....
37 Minuten
Das Kapitel 16 (XML) des IT-Handbuchs für Fachinformatiker* ist das Thema der dreiundsiebzigsten Episode des Anwendungsentwickler-Podcasts. TL;DR XML steht für Extensible Markup Language und erlaubt dir, eigene Auszeichnungssprachen für strukturierte Daten festzulegen. Für deine Prüfung als Fachinformatiker:in Anwendungsentwicklung solltest du die Regeln für wohlgeformte Dokumente kennen und verstehen, wie du XML gegen ein Schema prüfst. Aus meiner Praxis gehören XML-Schema und XPath zum Handwerkszeug; beim Verarbeiten von Dateien hängt die Wahl zwischen DOM und SAX unter anderem von der Dateigröße ab. Kapitelmarken [00:00:20] Buchclub: XML im Handbuch für Fachinformatiker [00:00:52] XML beim Datenaustausch zwischen Unternehmen [00:03:38] Extensible Markup Language: Bedeutung und Grundidee [00:05:29] XML für Menschen und Maschinen lesbar machen [00:07:53] Tags, Elemente und Attribute [00:09:41] Regeln für wohlgeformte XML-Dokumente [00:12:21] Sonderzeichen und Entitätsreferenzen [00:13:52] Gültige Inhalte mit DTD und XML-Schema beschreiben [00:16:23] XML-Schema vertiefen und Literatur auswählen [00:17:50] XML-Schema und gültige Dokumente [00:19:15] Prüfungsfragen zu Wohlgeformtheit und Validität [00:21:04] Namensräume und Präfixe [00:23:05] Weltweit eindeutige Kennungen für Namensräume [00:24:49] XML-Dokumente mit XSLT umwandeln [00:26:57] Mit XPath auf Elemente und Attribute zugreifen [00:28:51] Grundlagen der XML-Programmierung [00:29:42] XML-Dateien mit DOM und SAX verarbeiten [00:31:31] Quelltextbeispiele und sprachübergreifende APIs [00:32:51] Das XML-Kapitel und ergänzende Literatur [00:34:13] Shownotes und Newsletter [00:35:15] Konferenz zur Softwareentwicklung im Mittelstand Inhalt XML ist - trotz der wachsenden Beliebtheit von JSON - immer noch eines der wichtigsten Austauschformate in der IT. Das entsprechende Kapitel des IT-Handbuchs für Fachinformatiker* enthält viele prüfungs- und praxisrelevante Inhalte. XML Der Aufbau von XML-Dokumenten Extensible nicht extended! Vorteile: Menschen- und maschinenlesbar Element vs. Tag Wohlgeformtheit: nur ein Wurzelelement, korrekte Schachtelung der Elemente, alle Elemente müssen geschlossen werden, nur erlaubte Elementnamen, Attributwerte immer in Anführungszeichen, Sonderzeichen durch Entitätsreferenzen ersetzen DTDs und XML Schema DTDs benutzt kein Mensch mehr (hoffentlich). Schemas sind der Standard. Kapitel zu DTD ist recht lang, Schema kommt zu kurz. Namensräume sind sehr wichtig in der Praxis. XSLT Gut zu wissen, in der Praxis und der Prüfung wahrscheinlich nicht allzu wichtig. XPath hingegen ist wichtig für die Praxis. Grundlagen der XML-Programmierung SAX vs. DOM ist absolut praxisrelevant. Literaturempfehlungen *(direkt beim Rheinwerk-Verlag bestellen*) Ich selbst habe vor mehreren Jahren mit einer älteren Auflage von Einstieg in XML* von Helmut Vonhoegen XML gelernt und es hat mir sehr gut gefallen. Das Buch ist umfangreich und gut verständlich geschrieben. * Links Permalink zu dieser Podcast-Episode RSS-Feed des Podcasts Zusammenfassung XML beim Datenaustausch In meinem Arbeitsumfeld verlangen viele Unternehmen XML als Austauschformat. Mit einem Schema lassen sich Schnittstellen verbindlich beschreiben, sodass beide Seiten ihre Dokumente prüfen können, bevor sie die Daten weiterverarbeiten. Als IT-Azubi begegnet dir XML deshalb in der Praxis und in Prüfungen. Bei Schnittstellen, über die Daten ohne vorgegebenes Schema ausgetauscht werden, können Änderungen an der Struktur schwer nachzuvollziehen sein. Für den Austausch zwischen Unternehmen lege ich Wert auf festgelegte Datentypen und darauf, Dokumente automatisch prüfen zu können. Was XML bedeutet XML heißt Extensible Markup Language, übersetzt etwa "erweiterbare Auszeichnungssprache". Als Entwickler:in kannst du damit eine eigene Sprache festlegen. XML gibt die Syntax vor, während du bestimmst, welche Elemente deine Dokumente enthalten und wie sie ineinander geschachtelt werden dürfen. Auch Attribute und erlaubte Werte kannst du vorgeben. Durch sprechende Namen wie Adresse oder Straße werden die Inhalte für Menschen verständlich. Ein Parser kann die festgelegte Syntax auswerten und die einzelnen Bestandteile erkennen. XML beschreibt dabei die Struktur und Bedeutung von Daten. Elemente und Attribute Ein Tag enthält einen Namen in spitzen Klammern, etwa . Zum vollständigen Element gehören das öffnende Tag, sein Inhalt sowie das schließende Tag: Moorweg. Attribute stehen als Schlüssel-Wert-Paare im öffnenden Tag. Im Beispiel Moorweg heißt das Attribut Typ und trägt den Wert Privatanschrift. Die Anführungszeichen gehören zur XML-Syntax. Wann ein Dokument wohlgeformt ist Für ein wohlgeformtes XML-Dokument hältst du die Syntaxregeln ein: Das Dokument enthält genau ein Wurzelelement. Alle Elemente sind korrekt geschachtelt. Bei schließt du zuerst B und anschließend A. Jedes Element wird geschlossen. Für leere Elemente gibt es die Kurzschreibweise . Die Elementnamen entsprechen den erlaubten Regeln. Sämtliche Attributwerte stehen in Anführungszeichen. Zeichen, die für die XML-Syntax eine besondere Bedeutung haben, werden im entsprechenden Kontext durch Entitätsreferenzen dargestellt. Eine Entitätsreferenz beginnt mit &, gefolgt vom Namen der Entität und einem Semikolon. Das im Podcast genannte Beispiel > steht für >. Besonders bei mathematischen Ausdrücken musst du darauf achten, dass der Parser ein Zeichen wie < korrekt als Inhalt erkennt. Auch wenn HTML5 Attributwerte ohne Anführungszeichen erlaubt, schreibe ich sie dort ebenfalls in Anführungszeichen. Wie du gültige Inhalte festlegst Mit einer DTD, einer Document Type Definition, oder einem XML-Schema beschreibst du, welche Inhalte ein Dokument enthalten darf. Gegen diese Vorgaben kannst du das Dokument prüfen. Ein syntaktisch korrektes Dokument mit Angaben zu einem Auto würde beispielsweise die Vorgaben einer Buchbestellung verfehlen. DTDs haben eine eigene Syntax. In meiner Praxis habe ich sie seit Jahren nicht mehr eingesetzt, weshalb ich dir empfehle, dich mit XML-Schema zu beschäftigen. Ein XML-Schema ist selbst ein XML-Dokument und bietet mehr Möglichkeiten, Vorgaben zu beschreiben. Ein valides Dokument ist immer wohlgeformt und erfüllt zusätzlich die Anforderungen der zugehörigen DTD oder des Schemas. Für die mündliche Prüfung frage ich solche Zusammenhänge ab: Ein Dokument kann wohlgeformt und valide sein, wenn es die XML-Syntax und die vorgegebenen Inhalte erfüllt. Ein wohlgeformtes Dokument kann die Schema-Vorgaben verletzen, etwa wenn ein Element Text enthält, obwohl eine ganze Zahl erwartet wird. Bei fehlerhafter XML-Syntax scheitert bereits das Parsen. Damit fehlt auch die Voraussetzung für ein valides Dokument. Beim Schreiben und Einlesen können beide Seiten ihre Dokumente gegen dasselbe Schema prüfen. Viele Frameworks stellen dafür Funktionen bereit. Namensräume Über Namensräume lassen sich gleichnamige Elemente verschiedenen fachlichen Bereichen zuordnen. Ein Element Name kann beispielsweise zu einem Buch oder zu einer Person gehören. Ein Präfix vor dem Elementnamen macht diese Zuordnung sichtbar: Bei abc:Straße verweist abc auf den zugehörigen Namensraum. Im Dokument wird festgelegt, welcher Namensraum zu diesem Präfix gehört. Die Kennung eines Namensraums sieht häufig wie eine URL aus. Sie dient als weltweit eindeutiger Name, wobei unter dieser Adresse keine erreichbare Webseite liegen muss. Eine eigene Domain hilft dabei, eindeutige Kennungen zu vergeben. Das Prinzip ähnelt Packages in Java beziehungsweise Namespaces in .NET. Für XML-Schema brauchst du dieses Verständnis ebenfalls. XSLT und XPath XSLT steht für Extensible Stylesheet Language Transformations. Die Sprache ist selbst in XML geschrieben und ermöglicht es, XML-Dokumente umzuwandeln, etwa in ein anderes XML-Format oder in eine CSV-Datei. Auch HTML kann daraus entstehen. Mit Schleifen und Fallunterscheidungen ist XSLT eine vollständige, Turing-vollständige Programmiersprache. Wegen der ausführlichen XML-Syntax empfehle ich sie für allgemeines Programmieren wenig. Fragen zu XSLT erwarte ich in der Prüfung kaum. Über XPath greifst du auf Elemente und Attribute im XML-Baum zu. Pfade bilden die Baumstruktur mit Schrägstrichen ab; @ kennzeichnet den Zugriff auf ein Attribut. XPath begegnet dir beim Arbeiten mit XSLT und beim Verarbeiten von XML in anderen Programmiersprachen. Für die Praxis empfehle ich dir, die Syntax kennenzulernen. In der Prüfung halte ich Fragen dazu für wenig wahrscheinlich. XML mit DOM und SAX verarbeiten DOM: Document Object Model DOM lädt das gesamte Dokument in den Speicher und bildet es als Baum ab. Du kannst anschließend auf beliebige Elemente zugreifen und dich frei durch die Struktur bewegen. Für kleine XML-Dateien arbeite ich damit. Der Speicherbedarf hängt vom vollständigen Dokument ab. SAX: Simple API for XML SAX liest das Dokument fortlaufend von Anfang bis Ende und verarbeitet es über Callback-Methoden. Dadurch bleibt der Speicherbedarf gering. Der Zugriff folgt der Leserichtung; für bereits gelesene Inhalte gibt es keinen freien Rücksprung. Bei großen Dateien setze ich SAX ein. In meinem Versicherungsumfeld werden beispielsweise XML-Dateien mit Hunderttausenden Datensätzen ausgetauscht. Solche Dateien können mehrere Gigabyte groß sein. Als Anwendungsentwickler:in solltest du erklären können, welcher Ansatz zu deinem konkreten Fall passt. Diesen Unterschied habe ich bereits in mündlichen Prüfungen abgefragt. Die grundlegende Arbeitsweise bleibt über Programmiersprachen hinweg ähnlich, auch wenn du die konkrete API und Syntax nachschlagen musst. Das Handbuch und weiterführende Literatur Im Handbuch für Fachinformatiker von Sascha Kersten werden die Themen verständlich eingeführt. Meine IT-Azubis konnten die Beispiele nachvollziehen, darunter auch jemand, der XML gerade erst kennenlernte....
33 Minuten
Die konkreten Punkte auf meinen Evaluierungsbögen für Auszubildende und Ausbilder sind das Thema der zweiundsiebzigsten Episode des Anwendungsentwickler-Podcasts. TL;DR Mit meinen Bewertungsbögen bekommst du als IT-Azubi regelmäßig Feedback dazu, wie du arbeitest und dich fachlich entwickelst. Du schätzt dich selbst ein und besprichst mit mir die einzelnen Punkte, damit du deinen Lernstand besser einordnen kannst. Außerdem bewertest du, wie ich dich betreue und wie du deine Ausbildung erlebst. Dafür führe ich wöchentlich halbstündige Einzelgespräche und alle sechs Monate ein längeres Gespräch anhand der Bögen. Kapitelmarken [00:00:20] Einstieg in die Bewertungsbögen [00:00:47] Umgang mit Menschen und Feedback [00:01:39] Aufgaben sorgfältig erledigen und Termine einhalten [00:03:27] Eigeninitiative und selbstständiges Arbeiten [00:05:18] Abläufe kritisch hinterfragen und automatisieren [00:06:38] Zuverlässigkeit und unangenehme Aufgaben [00:07:44] Aus eigenem Interesse dazulernen [00:09:19] Zusammenhänge erkennen und Neues verstehen [00:10:44] Kreativität und Probleme lösen [00:12:30] Lernstand in Schule und Betrieb bewerten [00:13:26] Systematisch vorgehen und Aufgaben planen [00:14:25] Eigene Ideen in den Betrieb einbringen [00:16:01] Selbst- und Fremdeinschätzung besprechen [00:17:14] Ausbildung und Ausbilder:in bewerten [00:18:26] Ansprechpersonen und Zeit für Betreuung [00:20:13] Interesse, Antworten und verständliche Erklärungen [00:22:15] Fachliche und soziale Kompetenz [00:23:00] Roter Faden und sinnvolle Aufgaben [00:24:14] Freiraum und passende Schwierigkeit [00:26:08] Schule und Betrieb miteinander verbinden [00:28:09] Arbeitsklima und Einbindung ins Unternehmen [00:30:51] Regelmäßige Gespräche und Erfahrungsaustausch Evaluierungsbögen Meine Evaluierungsbögen kannst du hier in Form von PDF-Dateien herunterladen. Wenn du sie als editierbare Word-Dateien* herunterladen möchtest, melde dich einfach für meinen Newsletter an. Dann bekommst du direkt den entsprechenden Download-Link. Selbstevaluierung des Azubis Evaluierung des Azubis Evaluierung des Ausbilders Literaturempfehlungen Das Konzept der One-on-Ones habe ich aus dem Manager Tools Podcast, den ich bereits seit vielen Jahren verfolge. Kürzlich sind die zentralen Inhalte der Ansätze von Manager Tools auch als Buch The Effective Manager* erschienen, das ich sehr empfehlen kann. Es fasst auf ein paar hundert Seiten die wichtigsten Aussagen von über 10 Jahren Podcast zusammen. * Links Permalink zu dieser Podcast-Episode RSS-Feed des Podcasts Bewertung von Auszubildenden (Evaluierungsbögen) - Anwendungsentwickler-Podcast #71 Zusammenfassung Wie ich die Gespräche organisiere Für das wöchentliche Einzelgespräch nehme ich mir eine halbe Stunde Zeit. Alle sechs Monate kommt ein längeres Gespräch hinzu, für das du und ich Bewertungsbögen ausfüllen. Die einzelnen Kriterien sind jeweils mit einem kurzen Satz erläutert. Du schätzt deine Arbeit selbst ein, während ich dieselben Kriterien aus meiner Perspektive bewerte. Anschließend gehen wir jeden Punkt durch und begründen, wie wir zu unserer Einschätzung gekommen sind. Dadurch lernst du, deine eigene Arbeit und ihre Wirkung auf andere besser einzuordnen. Meine Erfahrungen mit anderen IT-Azubis im jeweiligen Ausbildungsjahr helfen beispielsweise dabei, deinen Zeitbedarf einzuschätzen. Mein Bogen enthält die gleichen Fragen zum Ankreuzen wie deiner. Die offenen Fragen stehen auf deinem Bogen. Welche Kriterien ich bei dir bewerte Umgang mit Menschen Im Team zusammenarbeiten: Dazu gehört, dass du offen und freundlich mit deinen Kolleg:innen umgehst. Auch alltägliche Dinge wie Begrüßen und Verabschieden fließen ein. Mit Konflikten und Feedback umgehen: Rückmeldungen zu deinem Code helfen dir beim Lernen. Entscheidend ist, wie du darauf reagierst und ob du Hinweise annimmst. Aufgaben sorgfältig und rechtzeitig erledigen Gute Arbeit abliefern: Du prüfst deine Ergebnisse und holst dir Feedback dazu, ob du deine Aufgabe richtig gelöst hast. An schwierigen Aufgaben dranbleiben: Ich schaue darauf, wie ausdauernd du arbeitest, wenn Probleme auftreten. Deinen Zeitbedarf einschätzen: Du bekommst Rückmeldung dazu, ob die benötigte Zeit zu deiner Aufgabe und deinem Ausbildungsstand passt. Das hilft dir auch mit Blick auf die Abschlussprüfung. Termine einhalten: Dazu gehört, wichtige Aufgaben vorzuziehen, wenn ein Termin näher rückt. Überstunden werden im Gespräch als Beispiel erwähnt; gewünscht sind sie in meinem Betrieb grundsätzlich nicht. Dich aktiv einbringen Eigenständig Aufgaben finden: Du schaust, wo Arbeit anfällt, und bietest Kolleg:innen deine Hilfe an, etwa wenn in einer Besprechung ein Problem auftaucht. Selbstständig arbeiten: Mit zunehmender Erfahrung kannst du mehr Aufgaben eigenständig lösen. Wenn du festhängst, frag nach. Gerade im ersten Ausbildungsjahr helfen dir Fragen dabei, weiterzukommen; bei einfachen Grundlagen ist eine kurze Nachfrage sinnvoll. Mitdenken und Abläufe hinterfragen: Bei wiederkehrenden Aufgaben kannst du prüfen, ob sie sich automatisieren lassen. Auch etablierte Abläufe verdienen einen Blick darauf, ob sie sinnvoll sind. Zuverlässig sein: Ich bewerte, ob auf dich bei deinen Aufgaben Verlass ist. Gelegentlich unangenehme Aufgaben übernehmen: Im Arbeitsalltag fallen auch weniger interessante Tätigkeiten an. Dabei zählt, wie du mit ihnen umgehst. Deine Ausbildung soll dir zugleich die fachlichen Inhalte vermitteln. Aus eigenem Interesse dazulernen: Fachbücher und Blogartikel geben dir Gelegenheit, dich selbstständig mit Themen zu beschäftigen. In meiner Abteilung stehen dafür Bücher bereit, beispielsweise Clean Code und The Pragmatic Programmer. Zusätzlich organisiere ich Buchclubs. Zusammenhänge verstehen und Probleme lösen Über deinen Aufgabenbereich hinausblicken: Du berücksichtigst, welche Folgen deine Arbeit für andere Bereiche oder Kolleg:innen hat. Änderungen an zentralen Funktionen können mehrere Teile eines Systems betreffen. Neues verstehen: Ich schaue darauf, wie schnell du Lerninhalte und Aufgaben erfassen und umsetzen kannst. Kreative Lösungen finden: Dafür brauchst du Kenntnisse über verschiedene Lösungswege. Dieses Kriterium lässt sich gegen Ende der Ausbildung besser beurteilen, wenn du bereits mehr Grundlagen kennst. Schwierige Probleme lösen: Du denkst zunächst selbst über einen Lösungsweg nach und holst dir Hilfe, wenn du sie brauchst. Wie selbstständig du dabei vorgehst, hängt auch von deinem Ausbildungsstand ab. In der Berufs- oder Hochschule vorankommen: Hier fließen deine Noten ein. Die Hochschule ist berücksichtigt, weil ich auch duale Student:innen betreue. Im Betrieb dazulernen: Ich ordne deine Kenntnisse danach ein, was zum jeweiligen Zeitpunkt deiner Ausbildung zu erwarten ist. Diesen Bereich bewerte ich separat von deinen schulischen Leistungen. Aufgaben planen und eigene Ideen beitragen Beim Programmieren zerlegst du größere Probleme in kleinere Aufgaben und gehst diese systematisch an. Schon bei frühen Übungen zeigt sich, wie du deinen Code strukturierst. Für dein Abschlussprojekt brauchst du diese Fähigkeit ebenfalls, damit du die verfügbare Zeit sinnvoll einteilen kannst. Aus der Berufsschule oder eigenen Projekten bringst du Erfahrungen mit, die für den Betrieb interessant sein können. Ich möchte, dass du solche Ideen ansprichst, etwa wenn du zu Hause eine andere Programmiersprache ausprobiert hast. Gerade zum Ende der Ausbildung erwarte ich, dass du eigene Vorschläge einbringst. Wie du meine Arbeit und deine Ausbildung bewertest Auf einem weiteren Bogen gibst du mir Feedback zur Qualität deiner Ausbildung. Beim Ankreuzen steht das mittlere Smiley für den erwarteten Standard. Ein lachendes Smiley kennzeichnet etwas, das positiv auffällt; ein trauriges zeigt, wo etwas verbessert werden sollte. Wie ich dich betreue Neben deinem allgemeinen Eindruck von der Ausbildung bewertest du folgende Punkte: Ansprechpersonen und Zeit: Du brauchst jemanden, der dir weiterhilft und Zeit für deine Fragen hat. Wenn ich abwesend bin, können auch erfahrene Kolleg:innen diese Aufgabe übernehmen und dir weitere Perspektiven zeigen. Interesse an deiner Arbeit: Du beurteilst, ob ich mich mit deinen Aufgaben und Ergebnissen beschäftige. Auf Fragen eingehen: Zu einer Frage gehört eine nachvollziehbare Antwort. Wenn gerade wenig Zeit ist, sollte ich später darauf zurückkommen und die Hintergründe erläutern. Verständlich erklären: Du sollst nachfragen können, bis du verstanden hast, warum etwas auf eine bestimmte Weise funktioniert. Fachlich kompetent sein: Du bewertest, ob ich mich mit den Themen auskenne, die ich dir vermittle. Mit Menschen umgehen können: Auch wie ich mit dir spreche und Wissen vermittle, gehört auf den Bogen. Wie deine Ausbildung abläuft Ein nachvollziehbarer roter Faden: Die Inhalte sollten aufeinander aufbauen, sodass du die nötigen Grundlagen für deine Aufgaben kennst. Sinnvolle Aufgaben: Echte Projekte geben dir Gelegenheit, etwas zum Betrieb beizutragen. Freiraum beim Arbeiten: Du brauchst Zeit und Spielraum, um dich selbstständig mit einer Aufgabe auseinanderzusetzen. Passende Schwierigkeit: Aufgaben sollten etwas über deinen aktuellen Fähigkeiten liegen, sodass du dazulernst und sie bewältigen kannst. Dabei orientiere ich mich am beschriebenen Flow-Zustand. Dein Feedback hilft mir, den Ausbildungsplan oder die Projekte anzupassen. Berufs- oder Hochschule und Betrieb verbinden: Du beurteilst, wie sich die Inhalte aus dem Unterricht auf deine Arbeit übertragen lassen. Ich kann den Ausbildungsplan darauf abstimmen. In meinem Betrieb beginne ich früh mit dem Programmieren, wodurch manche Grundlagen später im Unterricht erneut vorkommen. Wie du dich im Betrieb fühlst Beim Arbeitsklima bewertest du, wie du den täglichen Umgang erlebst und ob du dich akzeptiert fühlst. Außerdem schaust du separat darauf, wie gut du in das Unternehmen und in deine Abteilung eingebunden bist. Zum Unternehmen gehört,...
29 Minuten
Die Evaluierung von Auszubildenden und Ausbildern ist Thema der einundsiebzigsten Episode des Anwendungsentwickler-Podcasts. TL;DR Mit wöchentlichen One-on-Ones und halbjährlichen Evaluierungsgesprächen begleite ich dich durch die IT-Ausbildung. Dabei sprechen wir über deine Arbeit und darüber, wie du dich fachlich weiterentwickelst. Du schätzt deine Fähigkeiten selbst ein, bekommst Feedback zu deinen Stärken sowie zu Lernlücken und gibst mir Rückmeldung zu meiner Arbeit als Ausbilder. Dafür verwende ich Fragebögen mit offenen Fragen und einer einfachen Smiley-Skala. Kapitelmarken [00:00:01] Einstieg: Leistung von IT-Azubis bewerten [00:01:16] One-on-Ones und Anregungen von Manager-Tools [00:04:45] Halbjährliche Evaluierungsgespräche im Überblick [00:05:44] Feedback für IT-Azubis und Ausbilder:innen [00:07:39] Fragebögen überarbeiten und Erfahrungen austauschen [00:09:03] One-on-Ones: Ablauf und freie Themenwahl [00:11:06] Zeit für deine Anliegen und mein Feedback [00:13:24] Nächste Aufgaben und Lernschritte besprechen [00:13:56] Wöchentliche Termine ab Ausbildungsbeginn [00:14:59] Evaluierungsgespräche mit drei Fragebögen [00:16:03] Bisherige Aufgaben und Erfahrungen reflektieren [00:17:36] Wünsche für kommende Themen und Projekte [00:18:59] Hilfreiche Erfahrungen und vorhandene Kenntnisse [00:20:34] Lernlücken erkennen und passende Förderung finden [00:22:34] Ziele priorisieren und persönliche Anliegen ansprechen [00:24:12] Kriterien mit einer Smiley-Skala bewerten [00:25:33] Bögen aufbewahren und den Ausbildungsverlauf festhalten [00:26:04] Bereiche der Bewertung und Ausblick auf die Fortsetzung [00:26:26] Evaluierungsbögen herunterladen und anpassen [00:27:14] Quellenangaben in der Projektpräsentation [00:27:56] Empfehlungen zu Domain-Driven Design [00:28:39] Fortsetzung mit den einzelnen Bewertungskriterien Inhalt Ich führe wöchentlich halbstündige Gespräche (O3 = One-on-Ones) mit jeder/m Auszubildenden. 10 Minuten für die/den Azubi/ne, 10 Minuten für mich, 10 Minuten für die Zukunftsplanung. In halbjährlichen Evaluierungsgesprächen gehen wir alle bisherigen Aufgaben des Azubis durch, besprechen Wünsche bzgl. zukünftiger Aufgaben, sprechen über evtl. vorhandene Lernschwierigkeiten und wie sie behoben werden können, Probleme mit Kollegen usw. Auch die Bewertung des Ausbilders ist Bestandteil dieses Gesprächs, damit beide Seiten etwas lernen können. Die Gespräche werden anhand eines Fragebogens mit offenen Fragen zur Ausbildung geführt, damit nichts vergessen wird und beide Seiten sich entsprechend vorbereiten können. Im Anschluss schreibe ich dann ein kurzes Protokoll mit "ToDo-Listen", die als Grundlage für das nächste Gespräch dienen. Durch die wöchentlichen Gespräche ist allerdings auch meist schon Vieles geklärt, sodass in den halbjährlichen Terminen eher langfristige Themen wie Prüfungsvorbereitung, potentielle Aufgaben nach der Ausbildung usw. behandelt werden. Evaluierungsbögen Meine Evaluierungsbögen kannst du hier in Form von PDF-Dateien herunterladen. Wenn du sie als editierbare Word-Dateien* herunterladen möchtest, melde dich einfach für meinen Newsletter an. Dann bekommst du direkt den entsprechenden Download-Link. Selbstevaluierung des Azubis Evaluierung des Azubis Evaluierung des Ausbilders Literaturempfehlungen Das Konzept der One-on-Ones habe ich aus dem Manager Tools Podcast, den ich bereits seit vielen Jahren verfolge. Kürzlich sind die zentralen Inhalte der Ansätze von Manager Tools auch als Buch The Effective Manager* erschienen, das ich sehr empfehlen kann. Es fasst auf ein paar hundert Seiten die wichtigsten Aussagen von über 10 Jahren Podcast zusammen. * Links Permalink zu dieser Podcast-Episode RSS-Feed des Podcasts One-on-Ones Part 1 | Manager Tools One-on-Ones Part 2 | Manager Tools One-on-Ones Part 3 | Manager Tools Zusammenfassung Wöchentlich Zeit für ein persönliches Gespräch Seit mehreren Jahren führe ich mit meinen IT-Azubis wöchentliche One-on-Ones, die jeweils eine halbe Stunde dauern. Die Idee stammt aus dem Podcast Manager-Tools. Solche Gespräche helfen dabei, einander kennenzulernen und eine gute Beziehung aufzubauen. In meinem Betrieb liegt die Rolle als Vorgesetzte:r bei der Abteilungs- beziehungsweise Bereichsleitung; ich begleite die Ausbildung als Ausbilder. Obwohl ich mit meinen Auszubildenden im selben Büro sitze und Fragen auch im Alltag beantworten kann, reserviere ich jede Woche Zeit für ein Gespräch unter vier Augen. Damit beginne ich bereits in der ersten Ausbildungswoche. Meist liegt der Termin am gleichen Wochentag zur gleichen Uhrzeit. Wenn etwas Dringendes dazwischenkommt, lässt er sich verschieben, wobei der wöchentliche Austausch verlässlich stattfinden soll. So laufen die 30 Minuten ab | Zeit | Inhalt | | --- | --- | | Erste zehn Minuten | Du bestimmst die Themen und sprichst beispielsweise über Fragen zu deinen Projekten oder über etwas aus deinem Privatleben. | | Zweite zehn Minuten | Ich gebe dir Feedback zu deiner Arbeit und bringe eigene Themen ein. Auch Persönliches kann hier Platz haben. | | Letzte zehn Minuten | Gemeinsam besprechen wir, welche Aufgaben bis zur nächsten Woche anstehen und worauf du beim Lernen deinen Schwerpunkt legst. | Die Zeitblöcke geben einen Rahmen vor. Wenn du länger erzählen möchtest, bekommt dein Anliegen mehr Raum innerhalb der halben Stunde. Der gesamte Termin bleibt bei 30 Minuten. Welche persönlichen Dinge du ansprichst, entscheidest du selbst. In meiner Praxis drehen sich die Gespräche überwiegend um die Arbeit, weil sich im Büroalltag bereits viele Gelegenheiten ergeben, über andere Themen zu sprechen. Am Ende geht es etwa um kommende Projekte oder um Technologien, die du dir als Nächstes anschaust. Etwa jedes halbe Jahr genauer auf die Ausbildung schauen Zusätzlich führe ich ungefähr alle sechs Monate ein längeres Evaluierungsgespräch. Dafür habe ich folgende Bögen zusammengestellt: Einen Bogen, auf dem du deine Arbeit und deine Fähigkeiten selbst einschätzt. Einen entsprechenden Bogen, auf dem ich dir Feedback gebe. Einen weiteren Bogen, mit dem du meine Arbeit als Ausbilder bewertest. Zu Beginn gehen wir deine Selbsteinschätzung durch. Offene Fragen beantwortest du mit eigenen Worten. Anschließend sprechen wir über die einzelnen Punkte und gleichen unsere Einschätzungen ab. Durch regelmäßiges Feedback kannst du besser einschätzen, wie weit du fachlich bist und wo du noch lernen musst. Dazu gehört auch die Frage, ob deine Kenntnisse für die Prüfung ausreichen. Deine Stärken verdienen ebenso Aufmerksamkeit, weil sie Hinweise darauf geben, welche Aufgaben später zu dir passen. Diese offenen Fragen beantwortest du Bisherige Aufgaben und eigene Interessen Was hast du seit dem letzten Gespräch gemacht und gelernt? Du schaust auf die vergangenen Monate zurück und hältst fest, welche Themen dir begegnet sind. Was ist dir positiv in Erinnerung geblieben und soll beibehalten werden? Hier kannst du beschreiben, welche Aufgaben dir gefallen haben. Welche Erfahrungen waren negativ und was soll sich ändern? Dabei geht es auch darum, welche Tätigkeiten du später übernehmen möchtest. Welche Themen oder Aufgaben wünschst du dir für die Zukunft? Deine Interessen fließen ein, wenn ich Projekte verteile. Der Ausbildungsplan und die verfügbare Zeit bestimmen mit, welche Wünsche sich umsetzen lassen. Was dir beim Arbeiten hilft und wo du Unterstützung brauchst Was hat deinen Erfolg gefördert oder erschwert? Du hältst fest, was dir bei Projekten geholfen hat und wo du auf Schwierigkeiten gestoßen bist, etwa bei einem Programmierkonzept oder einem Werkzeug. Welche Kenntnisse und Fähigkeiten konntest du einbringen? Dabei kannst du auch überlegen, wo Wissen aus der Berufsschule oder aus deiner bisherigen Schulzeit in deiner Arbeit vorkam. Wo fehlen dir Kenntnisse oder fällt dir das Lernen im Betrieb schwer? Deine eigene Einschätzung ergänze ich durch mein Feedback. Daraus ergeben sich passende nächste Lernschritte. Welche Tätigkeiten passen zu deinen Fähigkeiten? Du überlegst, in welchen Aufgabenbereichen du deine Stärken einbringen kannst und woran du gern arbeitest. Was würde dir beim Lernen helfen? Hier kannst du beispielsweise Bücher oder gezielte Übungsaufgaben vorschlagen. Auch Code Reviews kommen infrage. Nächste Schritte und persönliche Anliegen Welche künftigen Aufgaben oder Ziele sind dir besonders wichtig? Deine Antwort hilft mir, bei mehreren möglichen Projekten einen Schwerpunkt zu setzen. Gibt es Konflikte mit Mitarbeiter:innen oder Vorgesetzten? Im Gespräch unter vier Augen kannst du solche Schwierigkeiten ansprechen und Unterstützung beim Umgang damit bekommen. Hast du eigene Fragen? Hier ist Platz für Anliegen, die der Bogen bisher offenlässt. Feedback mit einer Smiley-Skala Für einzelne Kriterien verwende ich eine einfache Skala. Ein lachender Smiley steht für etwas, das positiv auffällt. Der neutrale Smiley bedeutet, dass alles in Ordnung ist. Mit dem traurigen Smiley kennzeichne ich einen Bereich, in dem du etwas verbessern solltest. Zu jedem Punkt gehört das Gespräch darüber, was bereits gut läuft und woran du konkret weiterarbeiten kannst. Die Kriterien sind folgenden Bereichen zugeordnet: Umgang mit Menschen Leistungsmotivation Engagement Geistige Tätigkeiten Planung und Organisation Die detaillierten Unterpunkte sowie die Fragen zur Bewertung meiner Arbeit als Ausbilder folgen in der nächsten Episode. Aus den Bögen verfasse ich etwa einmal pro Halbjahr einen kurzen Text, der den Ausbildungsverlauf festhält. Die ausgefüllten Bögen bewahre ich bei mir im Schrank auf. Für das schriftliche Protokoll dienen sie als Anhaltspunkte; die Personalakte enthält diese Bögen nicht. Vorlagen und ergänzende Quellen Meine Fragebögen habe ich aus verschiedenen Vorlagen und Anregungen von Manager-Tools zusammengestellt. Über die Jahre habe ich sie überarbeitet und Fragen entfernt, die sich in meinem Alltag kaum beantworten ließen. Du kannst mir eigene Erfahrungen oder Vorschläge pe
41 Minuten
Das Kapitel 20 (JavaScript und Ajax) des IT-Handbuch für Fachinformatiker* ist das Thema der siebzigsten Episode des Anwendungsentwickler-Podcasts. TL;DR Für deine IT-Ausbildung gehören die Grundlagen von JavaScript, das Document Object Model (DOM) und AJAX zum Webwissen, auch wenn du im Betrieb andere Aufgaben bearbeitest. Für die Prüfung empfehle ich dir, die Eigenschaften der Sprache und den Ablauf asynchroner Serveranfragen zu verstehen sowie deren Vor- und Nachteile erklären zu können. Das besprochene Buchkapitel zeigt außerdem, wie du JavaScript in HTML einbindest und mit jQuery DOM-Zugriffe oder AJAX-Anfragen vereinfachst. Kapitelmarken [00:00:01] Einstieg in den Buchclub [00:01:34] Kapitel 20: JavaScript und AJAX [00:02:29] Webwissen und Erwartungen in der Prüfung [00:06:39] JavaScript als eigenständige Sprache [00:07:52] Dynamische und schwache Typisierung [00:09:55] Programmierparadigmen und First-Class Functions [00:10:49] Objektorientierung mit Prototypen [00:12:44] Interaktive HTML-Seiten mit JavaScript [00:14:10] JavaScript einbinden und externe Dateien verwenden [00:15:15] Sprachgrundlagen, Arrays und Objekte [00:16:34] Funktionen für Praxis und Prüfung [00:17:27] Datum, Uhrzeit und Bilder [00:18:09] Browser-History und Single-Page-Apps [00:19:08] Pop-ups und störende Fenster [00:20:17] DHTML und das Document Object Model [00:21:53] DOM-Zugriffe und eindeutige HTML-IDs [00:24:47] DOM-Inhalte ergänzen und AJAX vorbereiten [00:25:30] AJAX als Prüfungsthema [00:26:11] AJAX und asynchrone Serveranfragen [00:27:59] XML und JSON als Austauschformate [00:30:11] JavaScript-Abhängigkeit und zusätzliche Requests [00:31:27] AJAX-Beispiele mit JavaScript und PHP [00:32:38] jQuery als Bibliothek für DOM und AJAX [00:35:35] Rückblick auf die prüfungsrelevanten Grundlagen [00:37:19] Literaturtipps und Callback-Hell [00:38:51] Shownotes und Pflichtenheft als Abschlussprojekt [00:39:39] Programmieraufgaben als Arbeitsprobe im Bewerbungsprozess Inhalt AJAX sollte jeder Anwendungsentwickler für die Prüfung kennen. JavaScript ist zwar eine sehr wichtige Programmiersprache in der Praxis, wird in der Prüfung aber wohl eher keine große Rolle spielen. Falls dein Abschlussprojekt eine Webanwendung ist, wirst du aber definitiv nicht drumherum kommen. JavaScript und Ajax JavaScript Im Frontend gibt es keine Alternative zu JavaScript. Daher sollte jeder (Web-)Entwickler JavaScript kennen. Spezielle programmiersprachenspezifische Fragen werden aber in der Prüfung eher nicht gestellt. Die grundlegenden Eigenschaften von JavaScript sollten bekannt sein: dynamisch und schwach typisiert, objektorientiert (aber prototypbasiert und klassenlos) bzw. Multiparadigmensprache (prozedural, funktional, objektorientiert). JavaScript hat nichts mit Java zu tun. JavaScript im HTML-Dokument Formulare und Event Handler Events sind ein wichtiges Konstrukt in der Programmierung, das jedem Entwickler bekannt sein sollte. Datums- und Uhrzeit-Funktionen Manipulation von Bildern Sehr speziell, eher wenig relevant für die Prüfung. Browser- und Fensteroptionen Sehr praxisrelevant. DHTML und DOM Das DOM und die Arbeit damit sollte jeder Entwickler kennen. Ajax AJAX ist eine verbreitete Technologie heutzutage und jeder (Web-)Entwickler sollte sich auf Fragen dazu in der Prüfung - mindestens im Fachgespräch - einstellen. jQuery Für die Prüfung wohl uninteressant, aber für die Praxis unerlässlich. Literaturempfehlungen *(direkt beim Rheinwerk-Verlag bestellen*) Die JavaScript-Bibel ist natürlich JavaScript: The Good Parts* von Douglas Crockford: * Links Permalink zu dieser Podcast-Episode RSS-Feed des Podcasts JavaScript – Wikipedia Typisierung (Informatik) – Wikipedia Douglas Crockford - Wikipedia, the free encyclopedia Zusammenfassung JavaScript in deiner IT-Ausbildung Mit Kapitel 20 des Handbuchs für Fachinformatiker:innen von Sascha Kersken setze ich meinen Buchclub fort. Als IT-Azubi lernst du darin JavaScript und AJAX für die Webentwicklung kennen. JavaScript führt im Browser auf dem Client die Logik einer Webanwendung aus. Zur Ausbildung als Fachinformatiker:in Anwendungsentwicklung gehört für mich, dass du dich mit dieser Plattform beschäftigst, auch wenn du im Betrieb beispielsweise Embedded Software entwickelst. Dazu reichen zunächst die grundlegenden Eigenschaften der Sprache und einige Codebeispiele. Bei Prüfungen rechne ich vor allem mit Fragen zu allgemeinen Konzepten und zum Ablauf einer Webanwendung. Einzelne Funktionsnamen oder sprachspezifische Parameter auswendig zu lernen, halte ich dafür für wenig sinnvoll. Bei Programmieraufgaben steht Pseudocode im Mittelpunkt. Wenn du eine Webanwendung als Abschlussprojekt entwickelst, solltest du die darin eingesetzten Technologien im Fachgespräch erklären können. Eigenschaften von JavaScript Anhand der Sprache kannst du mehrere grundlegende Begriffe aus der Softwareentwicklung nachvollziehen: Dynamische Typisierung: Eine Variable kann während der Laufzeit Werte verschiedener Datentypen aufnehmen, beispielsweise zunächst eine Zahl und später einen String. Schwache Typisierung: Die Sprache wandelt Datentypen implizit um. Ein Zahlenwert kann etwa als Wahrheitswert ausgewertet werden. Programmierparadigmen: JavaScript erlaubt prozedurales Programmieren. Auch funktional und objektorientiert kannst du damit arbeiten. First-Class Functions: Funktionen lassen sich in Variablen speichern. Du kannst sie außerdem als Parameter übergeben oder als Ergebnis einer anderen Funktion zurückgeben. Prototypen: Die im Kapitel beschriebene Objektorientierung arbeitet klassenlos mit Prototypen. Ein vorhandenes Objekt dient dabei als Grundlage für weitere Objekte; über Prototypen lässt sich auch Vererbung umsetzen. JavaScript ist eine eigenständige Programmiersprache. Der ähnliche Name zu Java geht laut der Episode auf dessen damalige Bekanntheit zurück. Die Syntax enthält C-ähnliche Elemente wie geschweifte Klammern. JavaScript und HTML Wenn du auf einen Button klickst oder mit einem Formular arbeitest, kann JavaScript darauf reagieren und Code ausführen. HTML zeichnet die Inhalte einer Seite aus; JavaScript ergänzt das Verhalten und ermöglicht beispielsweise Schleifen oder Verzweigungen. Du kannst JavaScript direkt in HTML-Elemente schreiben oder innerhalb des HTML-Dokuments einbinden. Ich empfehle dir externe JavaScript-Dateien, damit du die Logik unabhängig vom HTML bearbeiten kannst. Externe CSS-Dateien enthalten das Layout, während das HTML die Bedeutung der Inhalte beschreibt. Das Kapitel führt unter anderem durch folgende Themen: Vergleiche und Schleifen Arrays und Objekte Funktionen sowie das Arbeiten mit Strings Datum und Uhrzeit Bilder Browser- und Fensterfunktionen Auf Eigenschaften eines Objekts kannst du auch mit eckigen Klammern zugreifen, wodurch der Zugriff einer Array-Syntax ähnelt. Für die Praxis helfen dir die konkreten Beispiele, etwa zu substring oder indexOf. Für die Prüfung solltest du die dahinterstehenden Prinzipien erklären können. Über Browserfunktionen kannst du die History beeinflussen. Das spielt bei Single-Page-Apps eine Rolle, wenn Vorwärts- und Zurücknavigation innerhalb einer Seite funktionieren sollen. Häufig geöffnete Pop-ups und blockierende Fenster stören Anwender:innen bei der Arbeit. Für eigene Anwendungen empfehle ich dir, Inhalte innerhalb der Seite zu präsentieren. Das Document Object Model Wenn du per JavaScript einen eingegebenen Text auslesen möchtest, brauchst du Zugriff auf das entsprechende HTML-Element. Dafür steht dir das Document Object Model, kurz DOM, zur Verfügung. Es bildet ein Dokument als Baum im Speicher ab und stellt eine Programmierschnittstelle bereit. Über diese Schnittstelle kannst du Elemente und ihre Attribute lesen. Ebenso kannst du Inhalte verändern oder neue Elemente ergänzen. Das Konzept begegnet dir bei HTML und XML und gehört für mich zum Grundwissen als Anwendungsentwickler:in. Das Buch zeigt beispielsweise getElementById und getElementsByTagName. Eine ID muss innerhalb eines HTML-Dokuments eindeutig sein, damit du damit gezielt auf ein Element zugreifen kannst. Valides, semantisch korrektes HTML erleichtert dir das Arbeiten mit JavaScript und CSS. Die ausführlichen Codebeispiele zeigen auch, wie du den Dokumentenbaum durchläufst oder ausgibst. Wenn du JavaScript praktisch einsetzt, empfehle ich dir, diese Beispiele auszuprobieren. AJAX: Ablauf und Prüfungswissen Bei einem typischen AJAX-Ablauf liest JavaScript einen Wert aus einem Formularfeld aus und schickt ihn an den Server. Sobald dessen Antwort eintrifft, verarbeitet JavaScript das Ergebnis und ergänzt damit den DOM. Die gesamte Seite muss dabei nicht neu geladen werden. AJAX steht für Asynchronous JavaScript and XML. Durch die asynchrone Anfrage bleibt die Anwendung während der Wartezeit bedienbar. Sobald die Antwort vorliegt, kann eine Callback-Funktion sie verarbeiten. Das ist besonders bei langsamen Verbindungen relevant. Ursprünglich wurden die Daten dabei als XML übertragen. In der Episode beschreibe ich JSON als inzwischen vorherrschendes Format. JSON bedeutet JavaScript Object Notation und lässt sich in JavaScript mit wenig Code verarbeiten. Für dieselben Inhalte fällt häufig weniger Datenvolumen an, weil die wiederholten öffnenden und schließenden XML-Tags entfallen. Für deine Prüfung solltest du auch die Bedingungen und Folgen des Einsatzes kennen: JavaScript muss aktiviert sein, damit die AJAX-Funktion im Browser ausgeführt werden kann. Viele einzelne Anfragen können den Server stärker beanspruchen. Wenn jedes Feld eines Formulars separat geprüft wird, entstehen entsprechend viele Requests. Die übertragene Datenmenge kann sinken, weil nur benötigte Inhalte ausgetauscht werden. Komprimierte Antworten sind ebenfalls zu berücksichtigen, wenn du die Datenmenge und die Zahl der Requests bewertest. Fragen zum Ablauf sowie zu Vor- und Nachteilen von AJAX kamen bereits in schriftlichen Prüfungen vor....
32 Minuten
Heute morgen habe ich die dritte Episode des Fachinformatiker-Podcasts bei fachinformatiker.de veröffentlicht. Hör doch mal rein! Einstieg in die Ausbildung - Fachinformatiker-Podcast #3 Der Einfachheit halber habe ich die MP3 auch an diesen Beitrag angehängt. Dadurch erscheint sie automatisch im Feed des Anwendungsentwickler-Podcasts. Für den Fachinformatiker-Podcast habe ich diesen RSS-Feed angelegt, damit du ihn nicht nur auf der Website, sondern auch im Podcatcher anhören kannst: http://fiae.link/FIPodcastRSS Es geht um einen guten Einstieg in die Ausbildung als neuer Azubi (ähnlich wie in Podcast-Episode 21 des Anwendungsentwickler-Podcasts). Ich gebe folgende Tipps: Stell viele Fragen. Verstehe alles, was du tust. Nimm deine/n Ausbilder/in in die Pflicht. Bring dich von Anfang an ein und warte nicht auf Arbeit. Lerne so viele Kollegen wie möglich kennen. Nutze jede Gelegenheit, um neue Technologien kennenzulernen. Baue dir direkt eine Leseliste für Neuigkeiten auf (z.B. Blogs, c't*). Fundiertes Wissen vermitteln hauptsächlich Bücher (Buchclub zum Handbuch für Fachinformatiker). Sieh das Berichtsheft nicht als lästige Pflicht, sondern mach das Beste draus. Das Gleiche gilt für die Berufsschule. Achte von Anfang an auf einen ergonomischen Arbeitsplatz. Du kannst gar nicht früh genug anfangen, dich auf die Prüfung vorzubereiten. Wenn dein Unternehmen dich nicht gut betreut, such dir ein anderes und leg Beschwerde bei deiner IHK ein.
34 Minuten
Einen kurzen Rückblick auf meine "Highlights" der Fachgespräche der Sommerprüfung 2016 gibt die neunundsechzigste Episode des Anwendungsentwickler-Podcasts. TL;DR Bei den Fachgesprächen zur Sommerprüfung 2016 sind mir wiederholt Lücken im Grundwissen und bei den Technologien aufgefallen, die IT-Azubis in ihren Projekten eingesetzt haben. Für dein Fachgespräch solltest du technische Grundlagen ebenso erklären können wie deinen Stundensatz und die Methoden, mit denen du gearbeitet hast. Dazu gehören etwa Datenschutz, Softwaretests, MVC und agile Prozesse. Alles, was du in deiner Projektdokumentation oder deinem Code zeigst, kann zu Rückfragen führen, für die du fachlich begründete Antworten brauchst. Kapitelmarken [00:00:01] Informationen zum Fachgespräch [00:00:57] Erfahrungen aus der Sommerprüfung 2016 [00:01:46] Datenschutz und personenbezogene Daten [00:05:26] Datensicherung und Backups [00:06:39] Datensicherheit und Zugriffsrechte [00:08:43] Stundensatz und wirtschaftliches Grundwissen [00:10:03] Testverfahren und Softwarequalität [00:11:59] MVC und fachliche Validierung [00:14:32] Zeichensätze und Encoding [00:15:54] Kanban und das WIP-Limit [00:18:41] Scrum und agile Grundlagen [00:19:42] Kardinalitäten und Beispiele für 1:1-Beziehungen [00:22:16] Generische Klassen und Typsicherheit [00:24:12] Technologien im eigenen Projekt erklären [00:26:11] Objektorientierung und Prüfungsausschuss [00:28:02] UML und das fehlende Deployment-Diagramm [00:30:44] Pointer im Objective-C-Projekt [00:32:51] Weiterführende Materialien und Checklisten Inhalt Der Datenschutz ist für viele Prüflinge ein Mysterium. Genauso wie der (eigene) Stundensatz. Grundlegende Testverfahren und weitere Verfahren der Qualitätssicherung wie Code Reviews sind häufig nicht bekannt. MVC ist der Architekturklassiker, der fast nie sauber erklärt werden kann. Basiswissen zum Encoding ist nicht vorhanden. Kanban ersetzt so langsam Scrum. Aber niemand kann es erklären. Nicht einmal die Basics wie das WIP-Limit. Seltsamerweise arbeiten alle inzwischen agil, aber niemand weiß, was das ist. Grundlegende Werte (z.B. Feedback, Mut) und Praktiken (z.B. TDD, Pair Programming) sind völlig unbekannt. Sinnvolle Beispiele für 1:1-Beziehungen können nicht genannt werden. Jeder nutzt Generics, aber niemand kann sie erklären. Highlights Trotz Einsatz von Java EE waren JPA und JSF dem Prüfling nicht bekannt. Basisfragen zur Objektorientierung konnten trotz Wiederholung in der Berufsschule eine Woche zuvor (!) nicht beantwortet werden. Das in der Doku erwähnte "Deployment-Diagramm" (mit 3h eingeplant) war dem Prüfling gar nicht bekannt. Der Objective-C-Programmierer konnte keine Pointer erklären, obwohl in seinem Code-Beispiel mindestens 10 verwendet wurden. Links Permalink zu dieser Podcast-Episode RSS-Feed des Podcasts Erläuterung der Gehaltsabrechnung - Häufige Fragen im Fachgespräch - Anwendungsentwickler-Podcast #46 Zusammensetzung des Stundensatzes - Häufige Fragen im Fachgespräch - Anwendungsentwickler-Podcast #47 ISO/IEC 9126 – Wikipedia Zeichensätze und -kodierung - Anwendungsentwickler-Podcast #32 Manifesto for Agile Software Development Weitere Infos zum FachgesprächDu suchst noch mehr Tipps rund um das Fachgespräch? Dann schau doch mal in diese Artikel- und Podcast-Kategorie: Alle Artikel rund um das Fachgespräch.Kennst du schon meine Hörbücher zur Vorbereitung auf das Fachgespräch? Unter dasperfektefachgespraech.de kannst du sie herunterladen. In insg. über 10 Stunden gehe ich über 200 Fragen im Detail durch und gebe Tipps für die Beantwortung.Und wenn du dich für meinen Newsletter einträgst, bekommst du immer direkt alle Neuigkeiten von dieser Seite in dein Postfach geliefert.Jetzt anmelden! Zusammenfassung Erfahrungen aus der Sommerprüfung 2016 Bei den Fachgesprächen zur Sommerprüfung 2016 habe ich mehrfach erlebt, dass IT-Azubis grundlegende Fachbegriffe durcheinandergebracht haben. Auch bei Methoden und Technologien aus dem eigenen Abschlussprojekt fehlten häufig die Kenntnisse, um Rückfragen zu beantworten. Für dein Fachgespräch als angehende:r Fachinformatiker:in Anwendungsentwicklung erwarte ich, dass du die eingesetzten Verfahren verstehst und deine Entscheidungen begründen kannst. Datenschutz und der Umgang mit Daten Bei internen Webanwendungen zur Zeiterfassung verarbeitest du personenbezogene Daten, beispielsweise die Arbeitszeiten von Mitarbeiter:innen. Dafür musst du erklären können, wie du diese Daten schützt. Im Fachgespräch werden häufig folgende Begriffe abgefragt: Datenschutz Personenbezogene Daten lassen sich einer konkreten Person zuordnen. Dazu zählen beispielsweise Namen und Anschriften, aber auch Kreditkartennummern oder IP-Adressen. Datenschutz schützt solche Daten vor dem Missbrauch durch Dritte. Schon ein Webserver, der Zugriffe mit IP-Adressen protokolliert, verarbeitet personenbezogene Daten. Damit hängen Pflichten wie eine Datenschutzerklärung zusammen; gegebenenfalls brauchst du auch das Einverständnis der Besucher:innen. Die im Rückblick angesprochenen Cookie-Abfragen stehen ebenfalls im Zusammenhang mit Datenschutzvorgaben. Datensicherung Mit einem Backup sicherst du Daten, damit du sie nach einem Verlust wiederherstellen kannst. Ein Brand oder eine defekte Festplatte sind Beispiele für solche Fälle. Auch als Anwendungsentwickler:in musst du dich damit beschäftigen, etwa wenn deine Webanwendung eine Datenbank verwendet. Zu den genannten Prüfungsthemen gehören das Großvater-Vater-Sohn-Prinzip sowie vollständige und inkrementelle Backups. Datensicherheit Wenn du Zugriffe auf Daten regelst, geht es um Datensicherheit. Dabei können unberechtigte Zugriffe sowohl von außen als auch innerhalb eines Unternehmens kommen. Ein Beispiel sind getrennte Tabellen für Gehaltsdaten und Login-Informationen: Ein:e Administrator:in soll ein Passwort ändern können, während Gehaltsdaten nur für entsprechend berechtigte Sachbearbeiter:innen zugänglich sind. Passwörter müssen vor Zugriffen auf ihren Klartext geschützt sein. Weitere angesprochene Themen sind: physische Zutrittskontrollen, Zwei-Faktor-Authentifizierung, Authentifizierung und Autorisierung, Verschlüsselungsverfahren. Für das Fachgespräch solltest du die jeweiligen Begriffe erklären und ihren Zweck im eigenen Projekt beschreiben können. Stundensatz und wirtschaftliche Fragen In einer Projektdokumentation wurde für einen IT-Azubi ein Stundensatz von 120 Euro angesetzt. Eine solche Angabe muss sich fachlich begründen lassen und zum Projekt passen. Du solltest erklären können, wie viel deine Arbeitsstunde kostet und wie dieser Betrag zustande kommt. Wirtschaftliche Fragen gehören zur Ausbildung und werden im Fachgespräch gestellt. Zum Stundensatz und zur Gehaltsabrechnung habe ich eigene Podcast-Episoden veröffentlicht. Software testen und Qualität prüfen Bei den Prüfungen konnten viele IT-Azubis lediglich Blackbox- und Whitebox-Tests nennen. Für dein Fachgespräch brauchst du Kenntnisse über weitere Verfahren und solltest die Tests beschreiben können, die du selbst durchgeführt hast. Angesprochen werden unter anderem: Pfadüberdeckung und Anweisungsüberdeckung, Schreibtischtests, Unit-Tests, Integrationstests, Abnahmetests, Code-Reviews. Wenn du ein Code-Review dokumentierst, solltest du erklären können, wie es ablief und welche Ergebnisse daraus entstanden sind. Auch die Eigenschaften guter Software können abgefragt werden. Dazu verweise ich auf die entsprechende ISO-Norm, deren Inhalte du für die Prüfung kennen solltest. MVC und fachliche Logik Bei Anwendungen mit Model-View-Controller solltest du erklären können, welche Aufgaben die Komponenten haben und wie sie zusammenarbeiten: Im Model liegt die fachliche Logik einschließlich der fachlichen Regeln, mit denen Eingaben geprüft werden. Die View zeigt die Daten an. Der Controller verbindet Model und View. Eine fachliche Regel wäre beispielsweise, dass eine Versicherung nur Personen bis zu einem bestimmten Alter aufnimmt. Diese Prüfung gehört ins Model, damit sie auch beim Austausch anderer Komponenten erhalten bleibt. Zusätzlich kann die View Eingaben prüfen, beispielsweise mit JavaScript in einer Webanwendung. So erhältst du früh eine Rückmeldung, während die fachlichen Regeln im Model weiterhin gelten. Für das Fachgespräch solltest du auch begründen können, wie MVC dabei hilft, Komponenten auszutauschen und wiederzuverwenden. Zeichensätze und Encoding In Quellcodebeispielen und gezeigten Oberflächen waren mehrfach Umlaute beschädigt. Solche Fehler solltest du anhand der verwendeten Zeichensätze und Kodierungen erklären können. ASCII und Unicode gehören zum Grundwissen für Anwendungsentwickler:innen. Beim Lesen einer Textdatei oder bei Ein- und Ausgaben musst du wissen, wie die Daten kodiert sind. Ebenso solltest du die unterschiedlichen Zeilenumbrüche der Betriebssysteme kennen. Zum Encoding habe ich eine eigene Episode veröffentlicht. Kanban, Scrum und agile Prozesse In vielen Projekten der Sommerprüfung 2016 wurde Kanban angegeben, wobei häufig schon grundlegende Fragen unbeantwortet blieben. Wenn du mit Kanban arbeitest, solltest du das WIP-Limit kennen: Es begrenzt den Work in Progress, also die Arbeit, die gerade im Prozess steckt. Das Kanban-Board macht den Arbeitsfluss sichtbar. Im angesprochenen Einsatz mit mehreren Beteiligten lassen sich damit Engpässe erkennen. Für dein Abschlussprojekt solltest du begründen können, weshalb der gewählte Prozess zu deiner Arbeitsweise passt. Bei Scrum gehört beispielsweise die Rolle des Scrum Masters zu den Grundlagen. Beschreibst du deine Arbeit als agil, solltest du die gemeinsamen Werte und Prinzipien agiler Prozesse kennen, darunter das Agile Manifest. Die Methoden, die du in deiner Dokumentation angibst, müssen sich auch in deinem Vorgehen erklären lassen. Beziehungen im Datenbankmodell Für Datenbankmodelle werden häufig Beispiele zu Kardinalitäten gefragt. Du solltest 1:n- und m:n-Beziehungen erklären können und auch ein sinnvolles Beispiel für eine 1:1
35 Minuten
Das Kapitel 18 (Webseitenerstellung mit (X)HTML und CSS) des IT-Handbuch für Fachinformatiker* ist Thema der achtundsechzigsten Folge des Anwendungsentwickler-Podcasts. TL;DR Im siebten Teil meines Buchclubs zum IT-Handbuch für Fachinformatiker:innen von Sascha Kersten gehe ich mit dir die Grundlagen von HTML5 und CSS durch, die du als IT-Azubi für Webprojekte und Prüfungen brauchst. Dazu gehören korrektes HTML, barrierearme Webseiten und passende Formularelemente sowie CSS-Selektoren, externe Stylesheets und das Box-Modell. Für die Praxis empfehle ich dir UTF-8, relative Maßangaben und CSS für das Seitenlayout. JavaScript und AJAX folgen in einem weiteren Buchclub-Teil. Kapitelmarken [00:00:01] Einstieg in den Buchclub [00:00:26] HTML, CSS und JavaScript für das Webfrontend [00:01:43] XHTML und korrektes HTML [00:03:06] HTML mit einem Validator prüfen [00:04:59] Grundstruktur eines HTML-Dokuments [00:06:24] HTML5 und Doctype [00:07:13] HTML-Entitäten und UTF-8 [00:10:53] Links, Anker und URL-Fragmente [00:12:17] Bilder und barrierearme Webseiten [00:15:04] Tabellen und Seitenlayout [00:18:16] Formulare und passende Eingabeelemente [00:19:28] HTML5-Eingabetypen und Bedienbarkeit [00:21:02] CSS-Grundlagen und Prüfungsbezug [00:22:22] CSS-Regeln und Selektoren [00:23:44] Klassen und eindeutige IDs [00:24:27] Erweiterte Selektoren und Hover [00:25:35] CSS einbinden und externe Stylesheets [00:27:32] Relative Maßangaben für responsive Webseiten [00:29:21] Farben in CSS [00:29:51] Das CSS-Box-Modell [00:32:06] Weitere CSS-Eigenschaften für die Praxis [00:33:04] Ausblick auf JavaScript und AJAX [00:33:41] Lernzielkontrolle und Buchempfehlung [00:34:33] Ausblick auf die Fachgespräche Inhalt Das Kapitel enthält viele wichtige Grundlagen zur Webentwicklung. Insbesondere HTML5 und CSS3 sollte jeder Anwendungsentwickler für die Prüfung kennen. Webseitenerstellung mit (X)HTML und CSS HTML und XHTML Aufbau und Syntax von HTML-Dokumenten sollten jedem Prüfling bekannt sein. Entities sind veraltet (bei Unicode als Zeichensatz überflüssig). Die wichtigsten Tags - gerade auch die Neuerungen in HTML5 - sollten geläufig sein. Eigentlich gilt das für alle genannten. Cascading Style Sheets (CSS) CSS ist eine weitere wichtige Technologie, die man z.B. auch im Bereich XML nutzen kann. Grundlegende Begriffe wie Selektor, Regel und Attribut sollte man kennen. Unterschied absolute/relative Angaben ist wichtig. Die Neuerungen in CSS3 sollten auch bekannt sein. Literaturempfehlungen *(direkt beim Rheinwerk-Verlag bestellen*) * Links Permalink zu dieser Podcast-Episode RSS-Feed des Podcasts HTML - Anwendungsentwickler-Podcast #33 Zusammenfassung HTML und CSS im Buchclub Im siebten Teil meines Buchclubs zum IT-Handbuch für Fachinformatiker:innen von Sascha Kersten arbeite ich mit dir Kapitel 18 zur Webseitenerstellung mit HTML und CSS durch. Als Fachinformatiker:in Anwendungsentwicklung brauchst du diese Grundlagen, wenn du Oberflächen für Webanwendungen entwickelst. Das ebenfalls angekündigte Kapitel 20 zu JavaScript und AJAX folgt in einem weiteren Buchclub-Teil. JavaScript übernimmt die Logik im Frontend; AJAX gehört auch zu den Themen, nach denen ich bei Webprojekten in mündlichen Prüfungen frage. HTML-Syntax und Dokumentstruktur Bei XHTML gelten die Regeln von XML: Tags werden korrekt geschlossen und verschachtelt, während Attributwerte in Anführungszeichen stehen. Browser versuchen bei HTML auch fehlerhaften Quelltext darzustellen. Für meine IT-Azubis gehört deshalb von Anfang an dazu, korrektes HTML zu schreiben und den Quelltext mit einem Validator zu prüfen. Als Beispiel dient das Firefox-Plugin HTML Validator, das Regelverstöße anzeigt. Unter dem Wurzelelement html stehen head und body. Im head hinterlegst du Metainformationen wie den Seitentitel und bindest Stylesheets ein. Der body enthält die Inhalte der Seite. Die gebräuchlichen Tags und ihre Bedeutung solltest du kennen. Ihre englischen Namen helfen dir beim Lernen: p steht für "Paragraph" und zeichnet einen Absatz aus. Mit ul, kurz für "Unordered List", erstellst du eine ungeordnete Liste. Der Name a stammt von "Anchor". Das Element wird für Hyperlinks und Anker verwendet. Bilder bindest du mit img ein. Ein Fragment am Ende einer URL, hinter dem Zeichen #, ermöglicht den Sprung zu einer Stelle innerhalb eines Dokuments, etwa einer Überschrift. Für neue Webseiten empfehle ich dir HTML5. Der Doctype lautet . Bei älteren Anwendungen können Vorgaben für alte Browser eine Rolle spielen. Die wichtigen HTML5-Funktionen werden von den meisten Browsern unterstützt, wobei einzelne Funktionen unterschiedlich verfügbar sind. Entitäten und UTF-8 Damit Zeichen mit einer besonderen Bedeutung als Inhalt erscheinen, werden sie bei Bedarf als Entitäten geschrieben. Beispielsweise steht < für
26 Minuten
Einen kurzen Rückblick auf meine "Highlights" der Projektpräsentationen zur Sommerprüfung 2016 gibt die siebenundsechzigste Episode des Anwendungsentwickler-Podcasts. TL;DR Aus meinen Prüfungen im Sommer 2016 nehme ich vor allem mit, dass du die 15 Minuten für deine Projektpräsentation sorgfältig planen und ausfüllen solltest. Zeige alle Projektphasen mit ihren technischen und wirtschaftlichen Aspekten, während du einzelne Diagramme und Codeausschnitte kurz erläuterst. Gut lesbare, geprüfte Folien und fachlich sauberer Code geben dem Prüfungsausschuss eine Grundlage für das anschließende Fachgespräch. Beide Prüfungsteile fließen in eine gemeinsame Note ein. Kapitelmarken [00:00:00] Informationen zur Projektpräsentation [00:00:31] Rückblick auf die Sommerprüfung 2016 [00:01:06] Präsentation und Fachgespräch: Ablauf und gemeinsame Note [00:03:58] Sicher auftreten und Blickkontakt halten [00:05:09] Zeit für die einzelnen Projektphasen einteilen [00:06:26] Use-Case-Diagramme und weitere Artefakte zeigen [00:08:19] Einen Überblick über alle Projektphasen geben [00:09:55] Technische Inhalte und Entscheidungen vorstellen [00:11:15] Textfolien und Cliparts [00:12:41] Tabellen und Kostenrechnungen verständlich darstellen [00:13:46] Rechtschreibung und Folien prüfen [00:14:26] Die vorgesehenen 15 Minuten ausfüllen [00:16:03] Bilder mit Wasserzeichen und Urheberrechte [00:17:18] Projektkosten und Datenschutz [00:18:33] Projektbeginn erst nach genehmigtem Antrag [00:20:30] Quelltext zeigen und leere Catch-Blöcke vermeiden [00:22:59] Ausblick auf die Folge zum Fachgespräch [00:23:42] Weiterführende Artikel und Glossare [00:24:34] Newsletter und Checklisten zur Projektpräsentation Inhalt Guter Augenkontakt und sicheres Auftreten bei den meisten Prüflingen. Viele Prüflinge halten sich zu lange mit einzelnen Projektphasen/Problemen auf. Oft so gut wie keine Technik auf den Folien. Immer noch erstaunlich viele grottige Textfolien... ...natürlich aufgehübscht mit Cliparts. Teils werden riesige, kaum zu erkennende Tabellen auf die Folien gepackt. Rechtschreibfehler auf Folien gehen gar nicht. Erstaunlich oft nur 10 Minuten Präsentation. Und wichtige Inhalte fehlen leider. Bilder mit Wasserzeichen werden pixelig hochskaliert auf den Folien verwendet. Highlights "Kosten dürfen aufgrund des Datenschutzes nicht gezeigt werden." "Das Projekt ist seit einem Jahr im Einsatz." "Dieser leere catch-Block war notwendig." Links Permalink zu dieser Podcast-Episode RSS-Feed des Podcasts Cliparts werten die Folien auf! - Mythen der Projektpräsentation Einhaltung der Vortragszeit (15 Minuten) bei der Projektpräsentation Die perfekte 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 Ablauf der mündlichen Prüfung Bei meiner IHK beginnt die mündliche Prüfung mit der 15-minütigen Projektpräsentation, in der du dein Projekt normalerweise ohne Unterbrechung vorstellst. Anschließend stellt dir der Prüfungsausschuss Fragen im Fachgespräch, die sich häufig auf dein Projekt beziehen. Auf dem Zeugnis steht eine gemeinsame Note für beide Teile. Den Ablauf beschreibe ich anhand meiner IHK und meiner Erfahrungen aus dem Sommer 2016. Die einzelnen IHKs können ihre Prüfungen unterschiedlich organisieren. Deine Präsentation kannst du mehrfach proben, bis du sicher durch die Inhalte kommst. Welche Fragen die Prüfer:innen im Fachgespräch stellen, erfährst du erst während der Prüfung. Die ausführlichen Erfahrungen zum Fachgespräch folgen in einer eigenen Episode. Sicher auftreten und die Zeit einteilen Viele IT-Azubis haben in meinen Prüfungen deutlich gesprochen und Blickkontakt zu den Prüfer:innen gehalten. Wenn du beim Präsentieren aufgeregt bist und deine Stimme etwas zittert, gehört das zur Prüfungssituation. Durch wiederholtes Üben kannst du dich auf deinen Vortrag vorbereiten. Plane die Zeit so, dass alle Projektphasen vorkommen. Vier oder fünf Minuten für eine einzelne Phase nehmen bereits einen großen Teil der verfügbaren Zeit ein. Auch die wirtschaftlichen Aspekte brauchen Platz, wenn du dein technisches Projekt vorstellst. Für die Unternehmensvorstellung reichen die Angaben, die zum Verständnis deines Projekts beitragen. Ausführliche Informationen über Standorte oder Produkte beanspruchen Prüfungszeit. Bewertet werden deine eigenen Leistungen, etwa wie du dein Projekt geplant und programmiert hast. Diagramme und Projektartefakte gezielt zeigen Ein Use-Case-Diagramm gibt einen Überblick darüber, was dein System leisten soll. Zeige es kurz und erläutere ausgewählte Anwendungsfälle. Wenn du jeden eingezeichneten Use Case ausführlich durchgehst, bleibt wenig Zeit für weitere Inhalte. Mit einem Klassen- oder Sequenzdiagramm kannst du fachliche Entscheidungen sichtbar machen. Auch die Architektur und ein ER-Modell zeigen, welche Gedanken hinter deiner Lösung stecken. Stelle passende Artefakte aus den verschiedenen Projektphasen vor und greife einzelne interessante Stellen auf. Große Diagramme lassen sich während eines kurzen Vortrags nur begrenzt erfassen. Für Quelltext gilt dasselbe: Wähle einen aussagekräftigen Ausschnitt, dessen Funktion du kurz erläutern kannst. Ein zentraler Algorithmus bietet fachlichen Gesprächsstoff. Klassen, die hauptsächlich Getter und Setter enthalten, zeigen wenig von deiner eigenen Problemlösung. Die Technik nachvollziehbar machen Als angehende:r Fachinformatiker:in Anwendungsentwicklung solltest du zeigen, welche Technik hinter deinem Projekt steckt. Dazu gehören die eingesetzte Programmiersprache und die Plattform sowie die Gründe für deine Auswahl. In einigen Präsentationen blieb für mich sogar offen, in welcher Sprache das Programm geschrieben worden war. Technische Artefakte auf deinen Folien helfen mir, deine Arbeit einzuschätzen und passende Fragen für das Fachgespräch zu stellen. Dafür musst du die Technik deines Projekts fachlich beherrschen, auch wenn die Präsentation nur einen Ausschnitt davon zeigt. Verständliche und geprüfte Folien Bei den Folien sind mir mehrere wiederkehrende Probleme aufgefallen: Textreiche Folien: Wenn viele Stichpunkte und Halbsätze gleichzeitig erscheinen, müssen die Prüfer:innen während deines Vortrags viel lesen. Aussagekräftige Grafiken aus deinem Projekt vermitteln Zusammenhänge anschaulich. Cliparts: Dekorative Bilder wie ein Geldstapel bei der Kostenrechnung tragen wenig zum Verständnis bei. Wähle Grafiken, die einen inhaltlichen Zusammenhang zeigen. Große Tabellen: Kürze eine umfangreiche Kostenrechnung auf die wesentlichen Zahlen. Die Prüfer:innen sollen sie innerhalb weniger Sekunden erfassen können. Viele Zwischenschritte verleiten dazu, während deines Vortrags nachzurechnen. Sprachliche Fehler: Prüfe deine Folien sorgfältig auf Rechtschreibung und Grammatik. Achte außerdem auf die Satzzeichen und bitte dein:e Ausbilder:in, die Folien gegenzulesen. Bilder aus dem Internet: Hochskalierte, pixelige Bilder mit Wasserzeichen sehen schlecht aus. Wenn du geschützte Bilder ohne Erlaubnis übernimmst, verletzt du Urheberrechte und lieferst Anlass für Fragen im Fachgespräch. Die verfügbaren 15 Minuten ausfüllen Mehrere IT-Azubis haben nur etwa zehn Minuten präsentiert. Bei einem umfangreichen Projekt fehlen dadurch häufig Inhalte, die sich in den verbleibenden fünf Minuten zeigen ließen. Übe deinen Vortrag mit Blick auf die Zeit, bis du auf die vorgesehenen 15 Minuten kommst. Mein Rechenbeispiel mit zehn von fünfzehn Minuten veranschaulicht, wie viel Zeit dabei verloren geht. Eine Note wird daraus nicht automatisch nach einer mathematischen Formel abgeleitet. Fachliche Fehler aus den Prüfungen Projektkosten und Datenschutz Ein:e Prüfungsteilnehmer:in begründete fehlende Projektkosten mit Datenschutz. Datenschutz schützt personenbezogene Daten vor Missbrauch durch Dritte. Die genannten betrieblichen Kostensätze fallen unter betriebliche Angaben. Wenn dein Betrieb solche Zahlen vertraulich behandeln möchte, kannst du das mit Geheimhaltung begründen. Diese Aussage führte im Fachgespräch zu Fragen über Datenschutz und wirtschaftliche Aspekte, bei denen fachliche Lücken sichtbar wurden. Projektbeginn vor der Genehmigung Beginne dein Prüfungsprojekt erst, nachdem der Projektantrag genehmigt wurde. In einer Präsentation wurde erwähnt, dass das Projekt bereits seit Monaten im Einsatz sei, obwohl es zu diesem Zeitpunkt noch gar nicht hätte umgesetzt werden dürfen. Ein vorzeitig umgesetztes Projekt verletzt die Prüfungsvorgaben und kann zum Durchfallen führen. Auch Einträge im Berichtsheft können zeigen, wann du daran gearbeitet hast. Leere Catch-Blöcke In einem gezeigten Algorithmus wurde eine Hardwareabfrage durch einen Try-Catch-Block umschlossen. Der Catch-Block war leer, obwohl die präsentierte Lösung als Fehlerbehandlung beschrieben wurde. Ein leerer Catch-Block verschluckt den Fehler. Dadurch erfahren Benutzer:innen und Administrator:innen nichts davon. Im Catch-Block muss eine passende Reaktion erfolgen, etwa indem du den Fehler behandelst oder protokollierst. Prüfe den Code, den du zeigen möchtest, besonders sorgfältig. Als Prüfer schaue ich mir solche Ausschnitte genauer an und greife sie im Fachgespräch auf. Du solltest erklären können, warum dein Code so aufgebaut ist und wie er mit Fehlern umgeht. Weiterführende Inhalte von mir Auf dieperfekteprojektpräsentation.de findest du weitere Informationen zur Projektpräsentation. Die erwähnten Artikel zu Cliparts und zur Vortragszeit sind in den Shownotes unter anwendungsentwicklerpodcast.de/.67 verlinkt. Im Blog gibt es außerdem einen Artikel dazu, wann ein Glossar in der Projektdokumentation erforderlich ist. In den betrachteten Dokumentationen nahmen häufig überflüssige Glossare zusätzl
44 Minuten
Die Kapitel 14, 15 und 19 (Server für Webanwendungen, Weitere Internet-Serverdienste und Webserveranwendungen) des IT-Handbuchs für Fachinformatiker sind Thema der sechsundsechzigsten Folge des Anwendungsentwickler-Podcasts. TL;DR Im Buchclub zum Handbuch für Fachinformatiker bespreche ich die Kapitel zu Webservern und ihren Anwendungen. Für dich als IT-Azubi gehören die Abläufe von HTTP und die Grundlagen zentraler Serverdienste zum prüfungsrelevanten Wissen; konkrete Einstellungen für Apache oder PHP haben vor allem praktischen Wert. Ein eigener Server und ein kleines Webprojekt helfen dir, die Zusammenhänge zu verstehen. Außerdem geht es um den Einstieg in PHP, Unit-Tests und REST sowie um Begriffe wie Wiki und CMS, die du als Fachinformatiker:in erklären können solltest. Kapitelmarken [00:20] Buchclub zu Webservern und Webanwendungen [01:24] Kapitel 14 und die Relevanz für die IHK-Prüfung [05:02] HTTP-Kommunikation und Methoden [07:25] HTTP-Header [08:12] HTTP-Statuscodes [09:23] Apache installieren und konfigurieren [11:29] Mit einem eigenen Server Praxiserfahrung sammeln [13:15] Virtuelle Server und Kosten für ein Übungsprojekt [16:57] Virtual Hosts und mehrere Domains [18:53] Weitere Webserver im Überblick [19:51] PHP installieren und einrichten [20:15] Kapitel 15: DNS und wichtige Einträge [23:08] LDAP und zentrale Verzeichnisdienste [25:01] FTP und inetd [25:56] Kapitel 19: Einstieg in PHP und Webanwendungen [28:32] Arrays, Funktionen und objektorientiertes PHP [30:34] Datenbankzugriff mit PHP [31:52] Unit-Tests und Mock-Objekte mit PHPUnit [33:48] REST-APIs und Fragen im Fachgespräch [35:17] Gestrichenes Kapitel zu Ruby on Rails [37:21] CMS, Blogs und Wikis [40:41] Ausblick auf den nächsten Buchclub [41:41] Links und Beispiel einer Projektpräsentation [42:55] Newsletter Inhalt Die drei Kapitel enthalten viele sinnvolle und hilfreiche Informationen für die Praxis, z.B. für die Einrichtung eines eigenen Linux-Servers. Für die IHK-Prüfung waren davon aber nicht ganz so viele Bereiche interessant, da dort weniger konkrete Produkte abgefragt werden. Server für Webanwendungen HTTP im Überblick Erklärung von HTTP ist gut verständlich. HTTP sollte man kennen, insb. die verschiedenen Methoden. Einige Header und Statuscodes gehören zum Grundwissen eines Webentwicklers. Der Webserver Apache DER Webserver schlechthin. Für die Prüfung: Virtual Hosts und .htaccess-Datei. PHP installieren und einrichten Klasse, wenn man damit zu tun hat. Ansonsten wenig prüfungsrelevant. Weitere Internet-Serverdienste Namens- und Verzeichnisdienste Produktspezifika sind nicht prüfungsrelevant. DNS-Eintragstypen sind wichtig sowie LDAP-Grundwissen. Sonstige Server FTP hat meiner Meinung nach keine Praxisrelevanz mehr. inetd ist unwichtig. Webserveranwendungen PHP Ich denke, jeder Entwickler sollte mal eine Webanwendung gebaut haben. PHP ist dafür sehr gut geeignet und leicht zu lernen. Konkrete Inhalte für die Prüfung gibt es nicht. PHP-Beispiele verwenden noch "alten" Datenbankzugriff. HTML direkt aus PHP ausgeben ist auch nicht mehr ganz zeitgemäß. Schön ist die Vorstellung von PHPUnit. Eine REST-API implementieren Aktuelles und praxisrelevantes Thema. Leider zu wenig REST und zu viel PHP. Anstatt XML würde ich heute auf JSON setzen. Ruby on Rails In der neuen Auflage leider gestrichen. Weitere Technologien im Überblick In der neuen Auflage leider gestrichen. Literaturempfehlungen *(direkt beim Rheinwerk-Verlag bestellen*) In der nächsten Episode geht es um die Kapitel 18 und 20. Es gibt also die volle Breitseite HTML, CSS und JavaScript. :-) Dein eigener Webserver Hast du auch schon einen eigenen Webserver? Wenn du mit dem Gedanken spielst, empfehle ich für den Einstieg 1blu*. Da bekommst du im ersten Jahr für 53,40 EUR einen kompletten vServer inkl. Domain und SSL-Zertifikat. ACHTUNG: Danach wird es etwas teurer: 7,90 EUR/Monat also 94,80 EUR/Jahr. Für meine Studierendenprojekte an der PHWT nutze ich das Angebot bereits seit ein paar Jahren und bislang hat immer alles gut geklappt. Jedes Jahr lasse ich die Studierenden eine neue Recherche nach der günstigsten Lösung bei entsprechender Leistung durchführen und wir landen immer wieder bei 1blu*. Kennst du einen noch besseren Hoster, den du anderen Azubis empfehlen kannst? Dann schreib mir gerne einen Kommentar! Links Permalink zu dieser Podcast-Episode RSS-Feed des Podcasts Moderne Webentwicklung mit Java EE 7: Ein Experiment (mein Vergleich zu Ruby on Rails) Zusammenfassung Die Kapitel im Buchclub Für die 66. Episode habe ich mit meinen IT-Azubis die Kapitel 14 und 15 sowie Kapitel 19 aus Sascha Kerstens Handbuch für Fachinformatiker durchgearbeitet. Sie behandeln Server für Webanwendungen, weitere Internetdienste und Anwendungen auf Webservern. Meine Azubis fanden die Inhalte verständlich, wobei viele Details einzelne Produkte betreffen. Für die IHK-Prüfung erwarte ich vor allem Fragen zu allgemeinen Abläufen und Konzepten. Die konkreten Schritte, mit denen du Apache installierst oder PHP einrichtest, ordne ich als Praxiswissen ein. HTML und CSS kommen als allgemeine Webgrundlagen auch in Prüfungen vor. Sprachspezifische JavaScript-Fragen halte ich für unwahrscheinlich. HTTP verstehen Wenn du im Browser eine URL eingibst, solltest du als Fachinformatiker:in Anwendungsentwicklung erklären können, was im Hintergrund passiert. Das Kapitel zu HTTP beschreibt diesen Ablauf und vermittelt Grundlagen, die auch beim Arbeiten mit REST wichtig sind. REST ist grundsätzlich unabhängig vom Protokoll, wird in der Praxis häufig mit HTTP umgesetzt. Zum Lernen gehören folgende Bereiche: HTTP-Methoden: Neben GET und POST kommen etwa PUT und DELETE vor, die für CRUD-Operationen bei REST eine Rolle spielen. Auch OPTIONS und HEAD solltest du einordnen können. HTTP-Header: Sie steuern beispielsweise, welches Format eine Anwendung anfordert oder ausliefert. Wenn du Fehler bei Webanwendungen untersuchst, helfen dir Kenntnisse über Header und das Verhalten von Caches. Statuscodes: Zu den Beispielen gehören 200 für eine erfolgreiche Anfrage und 404 für eine fehlende Ressource. 401 betrifft die Authentifizierung; 500 weist auf einen Fehler auf der Serverseite hin. Die umfangreichen Tabellen im Buch eignen sich zum Nachschlagen. Beim Lernen würde ich mich auf das Verhalten von HTTP und häufige Statuscodes konzentrieren. Versionsangaben zu sämtlichen Methoden und vollständige Headerlisten auswendig zu lernen, geht für die Prüfung zu weit. Apache einrichten und praktisch lernen Wenn du Apache selbst betreibst, helfen dir die beschriebenen Direktiven und lauffähigen Beispiele dabei, seine Konfigurationsdateien zu verstehen. Gerade beim Einstieg gibt dir das Buch Orientierung zwischen den vielen möglichen Einstellungen. Für die konkreten Schritte beim Installieren greife ich auf aktuelle Internetquellen zurück, weil gedruckte Anleitungen schnell veralten. Ich empfehle dir, als kleines Praxisprojekt einen eigenen Server aufzusetzen. Dabei lernst du Linux-Befehle und erfährst, wie du Dienste einrichtest. Achte dabei auch darauf, den Server abzusichern. Mit Apache und PHP kannst du beispielsweise WordPress oder TYPO3 betreiben; eine eigene Domain bietet außerdem die Möglichkeit, einen Mailserver einzurichten. Ein virtueller Server als Übungsumgebung Für meine Projekte mit Studierenden suche ich nach günstigen virtuellen Servern, auf denen sich eigene Dienste installieren lassen. Dazu gehören etwa Git-Hosting mit Gogs oder das Projektwerkzeug Redmine. Der Server braucht dafür ausreichend Speicher und Rechenleistung. In den beschriebenen Projekten fiel die Wahl wiederholt auf 1blu. Das in der Episode genannte Einstiegsangebot kostete in den ersten sechs Monaten jeweils einen Euro, danach 7,90 Euro pro Monat. Für das erste Jahr ergaben sich ungefähr 54 Euro; eine Domain und ein SSL-Zertifikat waren enthalten. Bei dauerhaft 7,90 Euro monatlich liegen die jährlichen Kosten bei ungefähr 100 Euro. Diese Preisangaben beziehen sich auf den Stand der Episode. Virtual Hosts Mit Virtual Hosts kannst du mehrere Domains mit unterschiedlichen Inhalten auf einem Webserver betreiben. Über ServerName legst du fest, für welche Domain ein Eintrag gilt. DocumentRoot verweist auf das Verzeichnis, aus dem die Website ausgeliefert wird. Zusätzlich lassen sich beispielsweise Zugriffsrechte oder Logdateien pro Domain einstellen. Zu Virtual Hosts habe ich bereits eine Frage in einer schriftlichen Abschlussprüfung gesehen. Das Prinzip gibt es auch bei anderen Webservern. Für einen Überblick solltest du neben Apache beispielsweise IIS und Nginx kennen. Das Buch erwähnt außerdem Lighttpd und Tomcat, wobei Tomcat eher als Application Server einzuordnen ist. Nginx fehlt in der besprochenen Auflage. DNS und zentrale Verzeichnisse DNS und seine Einträge Im Kapitel zu weiteren Internetdiensten wird DNS anhand von BIND behandelt. Für die Prüfung steht für mich das Prinzip der Namensauflösung im Vordergrund. Die konkreten BIND-Einstellungen sind produktspezifisch. Die folgenden DNS-Einträge solltest du erklären können: A: Ordnet einem Domainnamen eine IP-Adresse zu. PTR: Ermöglicht die umgekehrte Zuordnung von einer IP-Adresse zu einem Namen. MX: Gibt den Mailserver einer Domain an. CNAME: Verweist als Alias auf einen anderen Namen. Wenn mehrere Namen darüber auf einen gemeinsamen A-Eintrag zeigen, lässt sich die IP-Adresse an einer Stelle ändern. NS: Benennt den zuständigen Nameserver. Das Buch führt außerdem SOA als weiteren Eintragstyp auf. Konkrete Prüfungsfragen zu diesen Recordtypen habe ich bislang selbst noch keine gesehen; ihre Bedeutung gehört für mich zum IT-Grundwissen. LDAP Für Intranetanwendungen kannst du über LDAP, das Lightweight Directory Access Protocol, auf ein zentrales Verzeichnis zugreifen. Das Kapitel zeigt dies anhand von OpenLDAP. Auch Microsoft Active Directory unterstützt LDAP. Wenn du deine Anwendung an ein solches Verzeichnis anbindest,...
39 Minuten
Einen kurzer Rückblick auf meine "Highlights" der Projektdokumentationen zur Sommerprüfung 2016 gibt die fünfundsechzigste Episode des Anwendungsentwickler-Podcasts. TL;DR Bei meinen Prüfungen im Sommer 2016 sind mir häufig kopierte Inhalte und Lücken in der Projektdokumentation begegnet. Für deine Abschlussarbeit brauchst du eigene Formulierungen, sauber belegte Quellen und nachvollziehbare Gründe für deine technischen Entscheidungen. Halte dich an die Vorgaben deiner IHK und zeige anhand konkreter Ergebnisse, was du entwickelt hast. Alles, was du über dein Vorgehen und deinen Code schreibst, muss zu deinem Projekt passen und sich im Fachgespräch erklären lassen. Kapitelmarken [00:00:18] Rückblick auf die mündlichen Prüfungen 2016 [00:02:39] Prüfungsbereiche und Gewichtung von Teil A [00:03:44] Plagiate in Dokumentation und Präsentation [00:09:08] Zeit für die Dokumentation mit der IHK klären [00:10:48] Erlaubten Seitenumfang ausschöpfen [00:12:26] Fehlende Inhalte und Screenshots [00:13:57] Realistische Stundensätze für die Kostenrechnung [00:15:00] Technologien passend zum Projekt auswählen [00:16:14] Betriebliche Systeme verständlich beschreiben [00:18:02] Vorhandene Software und Eigenentwicklung abwägen [00:21:00] Projektablauf stimmig dokumentieren [00:22:55] Code-Reviews durchführen und Ergebnisse erklären [00:24:59] Anforderungen an die Entwickler:innen-Dokumentation [00:26:11] Kurze Projekttitel und lesbare Kopfzeilen [00:27:02] Sprache und Layout prüfen [00:28:22] Commit-Regeln als vermeintliche Entwickler:innen-Dokumentation [00:29:05] Amortisationsrechnung verständlich halten [00:29:55] Open-Closed-Prinzip verstehen und belegen [00:33:30] Fachbegriffe und Kanban im Fachgespräch erklären [00:35:13] Einheitliche Sprache im Quellcode [00:37:32] Ausblick auf Präsentation und Fachgespräch Inhalt Plagiate nehmen Überhand. Insbesondere von dieser Seite. Dringende Warnung: Das kann die Note und/oder die Prüfung kosten! Viele Dokumentationen nutzen die verfügbare Seitenzahl nicht aus. Zentrale Inhalte fehlen (z.B. Benutzerdoku, Screenshots, Code-Beispiele). Azubis scheinen heutzutage richtig Geld zu verdienen, gemessen an bis zu 120 EUR Stundensatz. Der Einsatz von in den Unternehmen etablierten Technologien wird nicht begründet, sondern einfach hingenommen. Jeder Prüfer sollte sich mit den Details der Plattformen der Prüflinge auskennen. Das kann man jawohl erwarten. Es werden offensichtlich am Markt verfügbare Softwareprodukte (schlecht) nachprogrammiert. Der Projektablauf ist in sich nicht stimmig (z.B. angeblich agil entwickelt, aber riesiges Klassendiagramm vorab erstellt). Bei Code Reviews kommt seltsamerweise nie etwas heraus. Der Azubi-Code ist anscheinend immer perfekt. Highlights "Der Objektkatalog in Visual Studio reicht als Entwicklerdoku." Projekttitel über 3 Zeilen (!) in der Kopfzeile. Suche ",", ersetze durch "". Die Entwicklerdoku ist eine Ansammlung von Regeln für die Formulierung von Commit-Nachrichten. Eine hochmathematische Amortisationsrechnung mit Formeln über eine ganze Seite (hätte auf 3 Zeilen reduziert werden können). "Ich habe das Open-Closed-Prinzip umgesetzt. Weiß aber nicht wie." Der gesamte Programmcode war auf Englisch, aber die zentrale Entität war auf Deutsch benannt. Links Permalink zu dieser Podcast-Episode RSS-Feed des Podcasts Verwendung von fremden Vorlagen für die Projektdokumentation Verdacht auf Täuschungsversuch! Was nun? Warum ein sprechender Kurztitel für das Abschlussprojekt sinnvoll ist Ist die Projektdokumentation Teil der Bearbeitungszeit des IHK-Abschlussprojekts? SOLID (object-oriented design) Weitere Infos zur ProjektdokumentationDu suchst noch mehr Tipps rund um die Projektdokumentation? Dann schau doch mal in diese Artikel- und Podcast-Kategorie: Alle Artikel rund um die Projektdokumentation.Kennst du schon meine Microsoft Word-/LibreOffice-Vorlage für die Projektdokumentation? Unter dieperfekteprojektdokumentation.de kannst du sie herunterladen.Und wenn du dich für meinen Newsletter einträgst, kannst du dir jetzt sofort meine Checkliste für die Projektdokumentation herunterladen.Jetzt anmelden! Zusammenfassung Erfahrungen aus den Prüfungen 2016 Bei meinen Prüfungen im Sommer 2016 habe ich viele Projektdokumentationen gelesen, deren Schwächen sich wiederholt haben. Daraus ergeben sich konkrete Hinweise für deine Abschlussarbeit als Fachinformatiker:in Anwendungsentwicklung. Im damals beschriebenen Teil A entfielen 50 Prozent der Note auf die Dokumentation; die übrigen 50 Prozent ergaben sich aus Projektpräsentation und Fachgespräch zusammen. Eigene Texte und belegte Quellen Wenn du fremde Sätze oder Absätze übernimmst, musst du die Quellen sauber angeben. Übernommene Inhalte ohne Quellenbeleg sind Plagiate, die zu Punktabzug und in schweren Fällen zum Nichtbestehen führen können. Auch die Person, deren Arbeit kopiert wurde, kann dadurch Schwierigkeiten bekommen. Prüfer:innen kennen öffentlich verfügbare Beispiele und können nach auffälligen Textstellen suchen. An den Berufsschulen, mit denen ich zusammenarbeite, kamen bereits Plagiatsscanner zum Einsatz. Solche Programme erkennen auch Texte, bei denen einzelne Wörter ersetzt oder Sätze umgestellt wurden. Formuliere die Inhalte deiner Dokumentation selbst. Das gilt ebenso für allgemeine Kapitel, etwa zur Kostenplanung oder zur Amortisationsrechnung. Vorgaben deiner IHK Erkundige dich bei deiner IHK, welche Regeln für deine Projektarbeit gelten. Bei meiner IHK gehörte das Schreiben der Projektdokumentation damals nicht zu den vorgesehenen 70 Projektstunden für die Anwendungsentwicklung beziehungsweise den 35 Stunden in anderen IT-Berufen. Andere IHKs handhabten das anders. Kläre deshalb, wie viel Zeit du für deine Dokumentation einplanen darfst. Für den Umfang waren bei meiner IHK höchstens 15 Seiten Fließtext und 25 Seiten Anhang vorgesehen. Einige eingereichte Arbeiten blieben deutlich darunter; eine bestand aus zwölf Seiten ohne Anhang. Dabei fehlten Inhalte, die für die Bewertung relevant waren. Schöpfe den erlaubten Rahmen mit passenden Inhalten aus und halte die Grenzen deiner IHK genau ein. Ergebnisse deines Projekts zeigen Damit ich deine Arbeit bewerten kann, brauche ich konkrete Einblicke in das entwickelte Programm. Zu den häufig fehlenden Inhalten gehörten: eine Dokumentation für Benutzer:innen, Screenshots der Anwendung, Codebeispiele, Diagramme und weitere Artefakte aus dem Projekt. Screenshots helfen dabei, Beschreibungen der Oberfläche nachzuvollziehen. Wenn du etwa über einen Button oder die Bedienbarkeit schreibst, sollte sichtbar sein, worauf du dich beziehst. Anhand der beigefügten Ergebnisse lässt sich außerdem besser erkennen, welche Software du erstellt hast. Kosten nachvollziehbar berechnen Für die Kostenrechnung brauchst du realistische Stundensätze, deren Herkunft du erklären kannst. In einer Arbeit wurden beispielsweise 120 Euro pro Stunde für einen IT-Azubi angesetzt, ohne dass sich dieser Wert im Fachgespräch begründen ließ. Auch sehr niedrige Ansätze wie 3,50 Euro pro Stunde habe ich gesehen. Sprich mit dem Rechnungswesen oder deiner Führungskraft über einen passenden Wert. Halte die Rechnung verständlich: Eine Amortisationsrechnung lässt sich mit überschaubaren Rechenschritten darstellen, wenn die zugrunde liegenden Werte klar sind. Eine Seite voller komplizierter Formeln erschwert das Lesen, wenn sich dieselbe Rechnung kurz ausdrücken lässt. Technische Entscheidungen begründen Wenn du eine Programmiersprache oder ein Framework auswählst, beschreibe, warum es zu deinem Projekt passt. Auch Technologien, die dein Ausbildungsbetrieb regelmäßig einsetzt, brauchen einen nachvollziehbaren Bezug zu den Anforderungen. Erkläre betriebsinterne Plattformen und fachliche Besonderheiten so, dass Prüfer:innen dein Problem und die gewählte Lösung verstehen können. Ich kann beispielsweise allgemeine Kenntnisse zur Objektorientierung mitbringen, während mir Details deiner internen Systeme oder deiner Branche erst durch deine Beschreibung zugänglich werden. Vorhandene Software prüfen Bevor du eine eigene Lösung entwickelst, prüfe verfügbare Produkte. Gerade für Aufgaben wie Zeiterfassung oder Projektverwaltung gibt es bereits Software am Markt, teilweise kostenlos als Open Source. Dein Projekt soll wirtschaftlich sinnvoll sein und deinem Ausbildungsbetrieb weiterhelfen. Eine pauschale Aussage über spezielle Anforderungen reicht als Grund für eine Eigenentwicklung nicht aus. Zeige konkret, welche Anforderungen vorhandene Produkte erfüllen und wo Lücken bestehen. Dafür kann eine Nutzwertanalyse geeignet sein, in der du verfügbare Lösungen mit einer Eigenentwicklung vergleichst und deine Entscheidung belegst. Den tatsächlichen Projektablauf beschreiben Deine Dokumentation muss zu dem passen, was du gemacht hast. Bei einigen Arbeiten wurde ein agiles Vorgehen behauptet, während der beschriebene Ablauf mit einer langen vorgelagerten Analyse- und Entwurfsphase einem Wasserfallmodell entsprach. Wähle die Kapitel deshalb passend zu deinem eigenen Projekt. Wenn du ein Code-Review dokumentierst, solltest du erläutern können, wer deinen Code geprüft hat, wie die Person dabei vorgegangen ist und welches Feedback daraus entstand. Im Fachgespräch frage ich nach solchen Angaben. Beschreibe durchgeführte Schritte und ihre Ergebnisse so konkret, dass du sie erklären kannst. Entwickler:innen-Dokumentation und Form Aus kommentiertem Code erzeugte Dokumente, etwa mit Javadoc oder XML-Kommentaren in C#, habe ich als Entwickler:innen-Dokumentation akzeptiert. Ein automatisch gefüllter Objektkatalog in Visual Studio enthält dagegen allein durch das Schreiben von Klassen noch keine entsprechende zusätzliche Dokumentationsarbeit. Regeln für Commit-Nachrichten beschreiben ebenfalls etwas anderes als die entwickelte Software. Achte beim fertigen Dokument auch auf die Lesbarkeit: Verwende einen kurzen Projekttitel für die Kopfzeile, damit er dort übersichtlich bleibt. ...
25 Minuten
Da ich gerade frisch von der Korrektur der Klausuren komme, gehe ich in der vierundsechzigsten Episode des Anwendungsentwickler-Podcasts die Inhalte der schriftlichen Sommerprüfung 2016 durch. TL;DR Bei der schriftlichen Sommerprüfung 2016 zum/zur Fachinformatiker:in Anwendungsentwicklung standen viele bekannte Prüfungsthemen auf dem Aufgabenblatt. In GH1 ging es unter anderem um Projektmanagement und UML; Zeit kosteten vor allem die Programmieraufgabe mit geschachtelten Schleifen und eine komplexe SQL-Abfrage. GH2 enthielt viele Rechenaufgaben sowie Grundlagen zu Netzwerken und E-Mails. Aus meinen Erfahrungen beim Korrigieren leite ich für dich ab: Übe mit früheren Prüfungen, achte auf die Syntax deiner Diagramme und lies genau, wonach eine Aufgabe fragt. Kapitelmarken [00:00:01] Schriftliche Sommerprüfung 2016 [00:00:26] Sommerpause und Projektdokumentationen [00:01:25] Erfahrungen beim Korrigieren der schriftlichen Prüfung [00:02:13] GH1: Projektmanagement und Netzplan [00:03:29] GH1: Programmieraufgabe mit geschachtelten Schleifen [00:05:15] GH1: UML-Diagramme und typische Fehler [00:07:49] GH1: Tabellenmodell mit Primär- und Fremdschlüsseln [00:08:43] GH1: SQL-Abfragen und geschachtelte SELECTs [00:09:55] GH1: Aufgabenwahl und Ergebnisse [00:11:06] GH2: Rechenaufgaben und AIDA [00:11:59] GH2: Datentypen, Speicherbedarf und DSL [00:13:20] GH2: NAS, SAN und Netzwerkskizze [00:15:02] GH2: E-Mails und englische Texte [00:16:00] IMAP und POP3 [00:17:16] Phishing-Mails und Spam-Mails [00:18:38] Backup und Archivierung [00:19:34] GH2: Nachkalkulation und Zinsrechnung [00:20:36] Prüfungsschwierigkeit und Vorbereitung mit alten Prüfungen [00:22:20] IHK-Statistiken und Auswertung der Aufgaben [00:23:10] Sommerpause bis Juli 2016 [00:23:52] Podcastfolgen und Hörbuch fürs Fachgespräch [00:24:52] Themenwünsche und Feedback Inhalt Insgesamt eine absolut machbare Prüfung. Eigentlich keine überraschenden Inhalte. Viel Standardwissen, auf das man sich sehr gut vorbereiten konnte. Ganzheitliche Aufgabe I Die Klassiker: Projektmanagement, UML, Programmierung, Tabellenmodell, SQL Erschreckend wenige Prüflinge beherrschen die Basis-UML-Diagramme! Programmieraufgabe war recht umfangreich. Tabellenmodell war absoluter Standard. Ganzheitliche Aufgabe II Viel anwendbares Mathe- und Rechnungswesen-Know-How gefragt. Wenig Nischenwissen nötig. Erschreckend wenige Prüflinge können Phishing und Spam bzw. Backup und Archivierung auseinanderhalten. Literaturempfehlungen Die Klassiker zur Vorbereitung auf die schriftliche Prüfung. * * Links Permalink zu dieser Podcast-Episode RSS-Feed des Podcasts Weitere Hilfen zur IHK-PrüfungDu suchst noch mehr Tipps rund um die Vorbereitung auf die schriftliche IHK-Prüfung? Dann schau doch mal in diese Artikel- und Podcast-Kategorie: Alle Artikel rund um die schriftliche IHK-Prüfung.Und kennst du schon meine Übungsaufgaben für die Abschlussprüfung? Unter dieperfekteihkpruefung.de kannst du sie herunterladen. Zusammenfassung Schriftliche Sommerprüfung 2016 Bei der IHK habe ich Aufgaben der schriftlichen Sommerprüfung 2016 korrigiert und dabei die Aufgabenblätter samt Musterlösungen gesehen. Meine Erfahrungen betreffen Ganzheitliche Aufgabe 1 (GH1) und Ganzheitliche Aufgabe 2 (GH2). Die Aufgaben aus Wirtschafts- und Sozialkunde lagen mir zu diesem Zeitpunkt noch nicht vor. GH1: Fachthemen der Anwendungsentwicklung Projektmanagement Im ersten Handlungsschritt ging es um Lastenheft und Pflichtenheft, einschließlich der Frage, wer welches Dokument verfasst. Außerdem solltest du einen Netzplan mit Vorgänger- und Nachfolgerbeziehungen zeichnen. In einem Kalender war einzutragen, wann einzelne Mitarbeiter:innen ihre Aufgaben bearbeiten müssen, damit das Projekt rechtzeitig fertig wird. Solche Aufgaben kamen bereits in früheren Prüfungen vor. Wenn du für dein Abschlussprojekt einen Netzplan zeichnest, kannst du dabei gleich die korrekte Syntax für die schriftliche Prüfung üben. Programmieraufgabe Für den zweiten Handlungsschritt gab es 25 Punkte. Die Musterlösung enthielt drei ineinander geschachtelte Schleifen, bei denen du unter Zeitdruck den Überblick behalten musstest. Beim Korrigieren brauchen solche Aufgaben viel Zeit, weil die Prüfer:innen unterschiedliche Lösungswege einzeln nachvollziehen müssen. Viele Prüflinge hatten mit dieser Aufgabe Schwierigkeiten. Ich hätte diesen Handlungsschritt wegen des Zeitaufwands gestrichen. UML-Diagramme Den dritten Handlungsschritt habe ich selbst korrigiert. Gefordert waren: ein Zustandsdiagramm, ein Klassendiagramm mit einer einzigen Klasse samt Attributen und Methoden, ein Sequenzdiagramm. Beiblätter erläuterten die Syntax aller gefragten Diagrammtypen mit Beispielen. In den Antworten fehlten dennoch häufig grundlegende Elemente, etwa die Umrandung einer Klasse oder die richtigen Zeichen für die Sichtbarkeit: + für public und - für private. Auch beim Übertragen der geforderten Logik gingen Punkte verloren. Für deine Prüfung solltest du diese fünf UML-Diagrammtypen beherrschen: Zustandsdiagramm, Klassendiagramm, Sequenzdiagramm, Use-Case-Diagramm und Aktivitätsdiagramm. Übe das Zeichnen so oft, dass du die Syntax sicher anwenden kannst. Tabellenmodell und SQL Eine weitere Aufgabe verlangte ein kleines Tabellenmodell mit ungefähr fünf Tabellen. Es ging um einen bekannten Zusammenhang mit Bestellungen, Bestellpositionen und Artikeln. Du solltest die Tabellen mit Primär- und Fremdschlüsseln angeben; Beziehungen mussten dabei nicht zusätzlich eingezeichnet werden. Im SQL-Handlungsschritt kamen ein UPDATE und mehrere SELECT-Abfragen vor, darunter Abfragen mit WHERE sowie weiteren üblichen Klauseln wie ORDER BY oder GROUP BY. Eine Musterlösung enthielt drei ineinander geschachtelte SELECT-Anweisungen. Für diese Abfrage war innerhalb der knappen Prüfungszeit mehr Aufwand nötig. Ich habe GH1 insgesamt als machbar eingeschätzt. Der örtliche Durchschnitt fiel beim Korrigieren weniger gut aus, als ich angesichts der Aufgaben erwartet hatte. Konkrete interne Ergebnisse habe ich nicht veröffentlicht. GH2: Allgemeine IT-Themen und Rechnungswesen Rechnen und Marketing Der erste Handlungsschritt bestand größtenteils aus kleinen Rechenaufgaben, etwa zur Prozentrechnung. Außerdem wurde das Marketingmodell AIDA abgefragt: Attention, Interest, Desire, Action. Datentypen, Speicherbedarf und DSL Du solltest passende Datentypen für Datenbankinhalte bestimmen und den benötigten Speicher berechnen. Auch die Zeit, die eine Datenmenge bei vorgegebener Geschwindigkeit zum Übertragen braucht, war gefragt. Bei den Einheiten solltest du die Schreibweise kennen: Binäre Einheiten wie Tebibyte (TiB) rechnen mit Schritten von 1024, dezimale Einheiten wie Terabyte (TB) mit 1000. Die Hinweise zum Korrigieren ließen hier auch Rechnungen mit der jeweils anderen Einheit zu. Weitere Teilaufgaben behandelten DSL-Varianten, darunter ADSL sowie SDSL und VDSL. Wenn mir die nötigen DSL-Kenntnisse gefehlt hätten, hätte ich diesen Handlungsschritt zum Streichen erwogen. NAS, SAN und Netzwerke Anhand eines Bildes solltest du erkennen, ob ein NAS oder SAN dargestellt war. Dazu gehörte, die Abkürzungen korrekt ausschreiben zu können: NAS: Network Attached Storage SAN: Storage Area Network Weitere Rechenaufgaben schlossen sich an. Eine Netzwerkskizze musste mit Angaben zu VPN und Routern sowie IP-Adressen ergänzt werden. Dafür musstest du die passenden Informationen aus dem Aufgabentext entnehmen. E-Mails und englische Texte Im vierten Handlungsschritt ging es unter anderem um E-Mails und Verschlüsselung. Mehrere Antworten ließen sich aus einem englischen Text entnehmen. Lies dafür den ganzen relevanten Abschnitt, damit deine Antwort die Frage trifft. Beim Thema IMAP und POP3 zeigten sich häufig Lücken. Bei IMAP liegen die E-Mails zentral auf dem Server, sodass du mit mehreren Clients darauf zugreifen kannst. Ordner lassen sich auf dem Server anlegen; auch ein zentrales Backup ist dadurch möglich. Gefragt waren außerdem Phishing-Mails und Spam-Mails. Viele Prüflinge vermischten die Begriffe oder beschrieben Webseiten. Achte beim Antworten darauf, welches konkrete Thema die Frage nennt. Backup und Archivierung Ein Backup hält Daten bereit, damit du sie nach einem Datenverlust wiederherstellen kannst. Beim Archivieren bewahrst du Geschäftsdokumente langfristig und rechtssicher auf, möglichst unveränderlich. Dabei können gesetzliche Aufbewahrungsfristen eine Rolle spielen. Kalkulation und Zinsen Der letzte Handlungsschritt enthielt eine Nachkalkulation, für die es 15 Punkte gab. Gefragt war der Rechenweg vom Fertigungsmaterial bis zum Verkaufspreis, einschließlich Kosten wie Vertrieb und Verwaltung. Hinzu kamen Zinsrechnung und weitere einfache Rechnungen. Für deine Prüfung üben Mit früheren Prüfungen kannst du wiederkehrende Aufgaben kennenlernen und gezielt bearbeiten. Dazu gehören die korrekte UML-Syntax und das Ausschreiben gebräuchlicher IT-Abkürzungen. Bei Fachbegriffen solltest du erklären können, was sie bedeuten und welche Eigenschaften dazugehören. GH2 enthielt viele Rechenaufgaben und bekannte Grundlagen. Unter den 90 Minuten Prüfungszeit können auch solche Aufgaben schwierig werden, besonders wenn Prüfungsangst hinzukommt. Die IHK veröffentlicht später Prüfungsstatistiken. Nach meinem damaligen Kenntnisstand wurden auch Ergebnisse einzelner Handlungsschritte erfasst, damit die Verantwortlichen prüfen können, wie schwierig die Aufgaben waren. Sommerpause und Material fürs Fachgespräch Für die anstehenden mündlichen Prüfungen musste ich noch Projektdokumentationen lesen. Deshalb habe ich eine Sommerpause angekündigt; die nächste Episode sollte am 4. Juli 2016 erscheinen. Für dein Fachgespräch findest du auf meiner Website Podcastfolgen zu häufigen Fragen. Unter dasperfektefachgespräch.de habe ich außerdem ein knapp fünfstündiges Hörbuch mit über 100 Fragen zur Programmierung und Objektorientierung sowie Tipps zum Antworten vorgestellt. Transkription der gesamten Episode ...
31 Minuten
Gerade rechtzeitig zur Sommerprüfung 2016 habe ich ein Hörbuch zur Vorbereitung auf das Fachgespräch aufgenommen. In fast 5 Stunden (4:45 um genau zu sein ;-) ) gehe ich über 100 Fragen durch, die im Fachgespräch zu den Themengebieten Programmierung und Objektorientierung gestellt werden könnten. Wenn du Interesse am Hörbuch hast, schau doch mal auf der Website vorbei: Das perfekte Fachgespräch. Um dir einen Eindruck der Inhalte zu vermitteln, habe ich für diesen Beitrag eine separate Podcast-Episode aufgenommen, die ein komplettes Probekapitel des Buchs enthält. Ich beantworte darin die folgenden Fragen: Was ist ein Objekt? Was ist eine Klasse? Was ist der Unterschied zwischen Objekt und Klasse? Was sind die Member einer Klasse? Was sind statische Member? Was sind Vor-/Nachteile von statischen Methoden? Was bedeutet Instantiierung? Wie instantiiert man ein Objekt? Was ist eine Instanzvariable? Wie kann man Instanzvariablen initialisieren? Was ist ein Feld? Was ist eine Methode? Was bedeutet es, eine Nachricht an ein Objekt zu senden? Wie referenziert man im Code das aktuelle Objekt? Hör doch mal rein! Über Feedback zum Hörbuch würde ich mich sehr freuen! Ich hoffe, ich kann damit ein paar Prüflingen die Angst vor dem Fachgespräch und den bösen Prüfern nehmen! :-) Links Permalink zu dieser Podcast-Episode RSS-Feed des Podcasts Weitere Infos zum FachgesprächDu suchst noch mehr Tipps rund um das Fachgespräch? Dann schau doch mal in diese Artikel- und Podcast-Kategorie: Alle Artikel rund um das Fachgespräch.Kennst du schon meine Hörbücher zur Vorbereitung auf das Fachgespräch? Unter dasperfektefachgespraech.de kannst du sie herunterladen. In insg. über 10 Stunden gehe ich über 200 Fragen im Detail durch und gebe Tipps für die Beantwortung.Und wenn du dich für meinen Newsletter einträgst, bekommst du immer direkt alle Neuigkeiten von dieser Seite in dein Postfach geliefert.Jetzt anmelden!
46 Minuten
Da viele Prüflinge großen Respekt vor dem Fachgespräch haben, gibt es in der dreiundsechzigsten Episode des Anwendungsentwickler-Podcasts einige Tipps zur Vorbereitung auf diesen Teil der mündlichen Prüfung. TL;DR Für dein Fachgespräch empfehle ich dir, die Grundlagen deiner Ausbildung frühzeitig und regelmäßig zu wiederholen sowie dein Abschlussprojekt bis ins Detail durchzugehen. Zu den möglichen Fragen gehören allgemeine Themen der Anwendungsentwicklung, wirtschaftliche Grundlagen und alles, was du in deiner Dokumentation oder Präsentation erwähnst. Übe deine Antworten laut und simuliere das Gespräch mit deinem/deiner Ausbilder:in, damit du Fachbegriffe verständlich erklären und auf Nachfragen eingehen kannst. Auch Datenschutz, Backups, Datensicherheit und Usability gehören auf deinen Lernplan. Kapitelmarken [00:00:01] Hinweise zum Fachgespräch [00:00:37] Vorbereitung und Erwartungen an die mündliche Prüfung [00:03:05] Mögliche Themen und Fragen über das Projekt hinaus [00:06:31] Lernmaterialien und Wissen aus der schriftlichen Prüfung [00:08:28] Überblick über wahrscheinliche Fachthemen [00:10:23] Grundlagen der Programmierung [00:10:49] Objektorientierung und die Frage nach Klasse und Objekt [00:12:36] Datenbankmodellierung und Normalisierung [00:12:58] SQL und mögliche Aufgaben im Fachgespräch [00:13:40] Wirtschaftlichkeit und Projektkosten [00:14:40] Projektmanagement [00:15:23] Das eigene Abschlussprojekt als Gesprächseinstieg [00:16:21] Fachbegriffe und eingesetzte Technologien erklären [00:17:32] Projektablauf und Zeitplanung wiederholen [00:18:16] Schnittstellen und Beteiligte im Unternehmen [00:19:18] Datenschutz und Sicherheit im Projekt [00:20:15] Technische Entscheidungen und mögliche Alternativen [00:22:40] Quelltext und Sprachkonstrukte verstehen [00:23:41] Häufig vergessene Prüfungsthemen [00:24:32] Wirtschaftliche Grundlagen [00:24:47] Datenschutz [00:25:58] Datensicherung und Backups [00:26:41] Datensicherheit [00:27:15] Usability und ergonomische Oberflächen [00:30:00] Anforderungen und Gewicht des Fachgesprächs [00:30:45] Frühzeitig und regelmäßig lernen [00:31:49] Eine Mindmap zum Abschlussprojekt erstellen [00:33:37] Die Themensammlung gemeinsam ergänzen [00:34:18] Das Fachgespräch simulieren und Feedback einholen [00:37:03] Antworten laut üben [00:38:13] Fachliche Konzepte verstehen und frei erklären [00:39:15] Anknüpfungspunkte in der Präsentation setzen [00:41:00] Ruhig bleiben und mit schwierigen Fragen umgehen [00:42:56] Feedback und Shownotes [00:43:35] Kurze Projektnamen für die Präsentation [00:44:13] Verständliche Commit-Messages [00:44:44] Newsletter und Checklisten Inhalt Nachdem die schriftliche Prüfung geschafft ist, stehen viele Prüflinge vor der nächsten großen Aufgabe: der Vorbereitung auf die mündliche Prüfung. Nach der Projektpräsentation, die man komplett in der eigenen Hand hat, steht das mit Spannung erwartete Fachgespräch an. Jedes Mal, wenn es wieder auf die Prüfungszeit zugeht, häufen sich die Fragen in den einschlägigen Foren: Was werden die Prüfer fragen? Welche Themen kommen dran? Wie soll ich mich vorbereiten? Um nicht immer wieder dasselbe erzählen zu müssen, schreibe ich im Folgenden mal zusammen, wie man sich sinnvollerweise auf das Fachgespräch vorbereiten sollte. Mögliche Themen im Fachgespräch Grundsätzlich können die Prüfer im Fachgespräch alle möglichen Themengebiete der Prüfung abfragen. Es gibt also nicht - wie häufig behauptet wird - eine Einschränkung auf die Themen des eigenen Abschlussprojekts. Man muss sich letztlich auf alle potentiellen Themen vorbereiten. Aber das hat man als Prüfling ja auch schon für die schriftliche Prüfung getan. Und zwar hoffentlich mit ausreichend Vorlauf, sodass die Inhalte nicht am Tag nach der Prüfung wieder aus dem Kopf verschwunden sind. Denn bis zur mündlichen Prüfung vergehen durchaus mehrere Wochen. Und wenn dann alles Gelernte wieder weg ist, darf man nochmal von vorne anfangen. Aber dazu mehr hier: Vorbereitung auf die schriftliche Abschlussprüfung. Also gilt genau wie für die schriftliche Prüfung meine Empfehlung: Fang früh an zu lernen und wiederhole die Inhalte regelmäßig. Dadurch kannst du sie nicht nur in der schriftlichen Prüfung abrufen, sondern auch in der mündlichen. Und ganz nebenbei kannst du sie vielleicht sogar im Arbeitsalltag anwenden, was ja letztlich das Ziel der Ausbildung sein sollte. ;-) Alle Themengebiete der Prüfung sind möglich. Keine Einschränkung auf die Themen des eigenen Abschlussprojekts. Wahrscheinliche Themen im Fachgespräch Ich kann natürlich nicht für alle Prüfungsausschüsse sprechen, aber es kristallisieren sich meiner Meinung nach einige Standardthemen heraus, mit denen man als Anwendungsentwickler/in im Fachgespräch rechnen sollte. Ich halte es für unwahrscheinlich (und auch unsinnig), Anwendungsentwickler über strukturierte Verkabelung oder Netzwerktopologien zu befragen. Ich würde mich als Prüfer stattdessen auf die Kernkompetenzen konzentieren. Und das sind meiner Meinung nach: Programmierung (Datenstrukturen, Schleifen usw.) Objektorientierung (Vererbung, Kapselung, Polymorphie usw.) Datenbankmodellierung (ERM, Tabellenmodell, Normalisierung usw.) SQL Wirtschaftlichkeit Projektmanagement Zu fast allen Bereichen habe ich in meiner Podcast-Serie zu den häufigsten Fragen im Fachgespräch schon Episoden aufgenommen. Es wäre fahrlässig, sich nicht auf diese Themen vorzubereiten. Standardthemen Programmierung (Datenstrukturen, Schleifen usw.) Objektorientierung (Vererbung, Kapselung, Polymorphie usw.) Datenbankmodellierung (ERM, Tabellenmodell, Normalisierung usw.) SQL Wirtschaftlichkeit Projektmanagement Mögliche Themen sammeln Aber es gibt auch noch einen großen anderen Bereich an potentiellen Themen, den man nicht unterschätzen sollte: das eigene Abschlussprojekt. Obwohl die Prüfer nicht auf Fragen aus dem Bereich des Projekts begrenzt sind, werden viele sicherlich das Projekt als Aufhänger nehmen, um ins Fachgespräch einzusteigen. Daher sollte man sein Projekt in- und auswendig beherrschen und z.B. alle verwendeten Fachbegriffe einwandfrei erklären können. Eigene Projektdokumentation und -präsentation Eine einfache Aufgabe in Vorbereitung auf das Fachgespräch ist es daher, die eigene Projektdokumentation und insb. die -präsentation auf mögliche Prüfungsinhalte zu durchforsten. Dazu zählen insb.: Verwendete Fachbegriffe (insb. Definitionen für Abkürzungen) Verwendete Technologien (z.B. ORM, MVC, ERM) Details zum Projektablauf (z.B. Zeitplanung, Vorgehensmodell) Schnittstellen des Projekts (fachlich und technisch) Datenschutz und -sicherheit bezogen auf das Projekt (wird häufig vergessen) Alternativen zu eingesetzten Technologien (z.B. AngularJS anstatt Ember.js, JSON anstatt XML, REST anstatt SOAP) Pro-/Contra-Bewertung der verwendeten Technologien (z.B. Performance, Kosten, Komplexität) Im Fachinformatiker-Forum habe ich den Tipp gelesen, sich auf Basis der eigenen Artefakte eine Mindmap aller potentiellen Themen zu erstellen, indem man zunächst einfach nur die verwendeten Begriffe, Technologien usw. in einen Zusammenhang stellt und im nächsten Schritt dann den Assoziationen freien Lauf lässt: Was fällt dir noch zu den Begriffen ein? (z.B. REST zu SOAP, JSON zu XML) Was sind mögliche Ergänzungen? (z.B. AJAX bei Webprojekt, Rich Client) Was sind Gegensätze oder Alternativen zu den Begriffen? (z.B. Java vs. .NET, Web vs. Fat Client) Am besten führst du dieses Brainstorming nicht alleine durch, sondern holst dir andere ITler zur Hilfe: Ausbilder/in, Mitschüler/innen, Mitazubis, Kollegen/innen, Chef/in usw. Mehr Köpfe kommen sicherlich auf mehr Ideen. Gerade auch scheinbar Unbeteiligte bringen dich vielleicht auf Ideen: der Chef fragt nach der Amortisation, die Kunden nach der Usability, die Kollegen nach verwendeten Design Patterns usw. Häufige Themenbereiche Wenn du trotzdem noch weitere Anregungen brauchst, dann schau mal in den üblichen Foren nach: fachinformatiker.de Dort wirst du sicherlich einige Beiträge finden, in denen mögliche Fragen zu verschiedenen Projekten diskutiert werden. Und ich habe z.B. mal eine Liste mit Fragen zu einem PHP-Projekt erstellt, die dir vielleicht auch weiterhilft. Häufig vergessene Themen Wie bereits angedeutet, gibt es auch immer wieder Themen, die die Prüflinge gerne man "vergessen". Ob absichtlich oder aus Versehen, sei mal dahingestellt. ;-) Hier kommt eine (unvollständige) Liste: Wirtschaft (Stundensatz, Gehaltsabrechnung, Sozialversicherung usw.) Datenschutz ("Das brauchen wir nicht!") Backup ("Machen die Admins!") Sicherheit ("Ist nur ne interne Anwendung!") Usability ("Der OK-Button ist grün. Das reicht!") Die Prüfer steuern Man kann als Prüfling auch ein wenig Einfluss auf die Fragen der Prüfer nehmen. Wenn man z.B. bestimmte Sachverhalte in der Projektpräsentation (die direkt vor dem Fachgespräch stattfindet) besonders betont, kann das die Prüfer dazu anregen, mal nachzufragen. Dann sollte man sich aber natürlich auch bestens in diesem Bereich auskennen! Ich habe schon oft die Geschichte vom Prüfling erzählt, der in der Präsentation den Satz brachte "Ich habe als Architekturprinzip MVC verwendet. Vielleicht werde ich ja gleich dazu befragt." und dann aber keine Ahnung vom Thema hatte. Das war schon recht witzig. Auch nett war der Prüfling, der unter Extreme Programming Programmieren ohne Regeln verstand. Gerade in den Quelltext, der an der Dokumentation hängt, schaue ich als Prüfer immer sehr gerne. Dort finde ich nämlich meist viele Sachen, die der Prüfling zwar verwendet, aber gar nicht verstanden hat. Und moderner Quelltext strotzt nur so vor Lamdas, LINQ-Abfragen, generischen Klassen usw. Und all das sollte man - fachlich korrekt - erklären können. Die mündliche Prüfung simulieren Zu guter Letzt bleibt noch zu empfehlen, die mündliche Prüfung - am besten mehrfach - zu simulieren. Dafür steht dir dein/e Ausbilder/in sicherlich zur Seite. ...