IT-Berufe-Podcast

IT-Berufe-Podcast

Download on the App Store

IT-Berufe-Podcast episodes

  • Objektorientierung Teil 1 (Lernzielkontrolle) – Anwendungsentwickler-Podcast #43
    Die grundlegenden Begrifflichkeiten rund um Klasse und Objekt sind die Inhalte der dreiundvierzigsten Episode des Anwendungsentwickler-Podcasts.
    TL;DR
    Mit Beispielen aus meiner Lernzielkontrolle kannst du die Grundlagen der Objektorientierung für deine Prüfung und deinen Alltag als Fachinformatiker:in Anwendungsentwicklung wiederholen. Eine Klasse beschreibt als Bauplan die Attribute und Methoden ihrer Objekte, deren eigene Werte den jeweiligen Zustand bilden. Dazu gehören die Begriffe Instanz und Kapselung sowie das Prinzip YAGNI, nach dem du nur benötigte Eigenschaften und Funktionen programmierst. Du erfährst außerdem, wie du mit Instanzvariablen und statischen Membern arbeitest, welche Probleme null verursacht und wie du Klassen mit Java-Packages beziehungsweise .NET-Namespaces gruppierst.
    Kapitelmarken
    [00:00:01] Erste Lernzielkontrolle zur Objektorientierung
    [00:00:26] Objektorientierung in Prüfung und Berufspraxis
    [00:01:36] Die Zahl 42 und Per Anhalter durch die Galaxis
    [00:02:08] Klassen und Objekte am Beispiel eines Monitors
    [00:05:09] Die Domäne passend zur Anwendung modellieren
    [00:07:00] YAGNI: Nur benötigten Code programmieren
    [00:07:45] Instanz als anderer Begriff für Objekt
    [00:08:22] Objekte mit new erzeugen
    [00:09:09] Instanzvariablen definieren und verwenden
    [00:11:02] Individuelle Werte und der Zustand eines Objekts
    [00:12:05] Seiteneffekte durch veränderlichen Zustand
    [00:13:08] Daten und Methoden gemeinsam kapseln
    [00:14:29] Standardwerte von Instanzvariablen
    [00:15:29] Null-Pointer-Fehler und ihre Ursachen
    [00:17:12] Die Bedeutung von null bei Referenztypen
    [00:19:21] Zugriff auf Instanzvariablen mit dem Punktoperator
    [00:19:58] Statische Variablen und der Begriff Feld
    [00:22:24] Klassenvariablen über den Klassennamen ansprechen
    [00:23:19] Methoden aufrufen und ihre Signatur bestimmen
    [00:24:42] Methodenaufrufe als Nachrichten an Objekte
    [00:26:08] Statische Methoden und der statische Kontext
    [00:27:30] Member als Oberbegriff für Felder und Methoden
    [00:28:25] Zusammengehörige Klassen in Java-Packages gruppieren
    [00:29:41] Klassen aus anderen Packages importieren
    [00:31:23] Namespaces in C# und Visual Basic
    [00:32:13] Weihnachtspause und weitere Lernmaterialien
    [00:33:18] Feedback und Kontaktmöglichkeiten
    [00:34:19] Fachgespräch vorbereiten und Legacy-Systeme weiterentwickeln
    [00:35:04] Newsletter und Ausblick auf die nächste Lernzielkontrolle
    Inhalt
    Objektorientierung
    Was ist eine Klasse?
    Eine Klasse ist ein Bauplan für Objekte. Sie definiert alle Attribute und Methoden ihrer Objekte.
    Was ist ein Objekt?
    Ein Ding der realen Welt, das Eigenschaften und Funktionen besitzt.
    Was ist eine Instanz?
    Ein anderes Wort für Objekt.
    Was bedeutet Instantiierung?
    Das Erzeugen eines Objekts aus einer Klasse.
    Was macht das Schlüsselwort new?
    Instantiiert ein Objekt.
    Was ist eine Instanzvariable und wie definiert man sie?
    Eine Variable mit individuellem Wert für jedes Objekt. Sie werden auf Ebene der Klasse definiert.
    Wie werden Instanzvariablen initialisiert?
    Mit Standardwerten, wenn man keine eigenen angibt.
    Was ist null?
    Der Standardwert für Referenztypen.
    Wie greift man auf Instanzvariablen zu?
    Objektname + . + Variablenname + Parameter
    Was ist ein Feld?
    Der Oberbegriff für alle Variablen einer Klasse (static und Instanzvariablen).
    Was ist eine Methode?
    Funktionen von Objekten heißen Methoden.
    Wie ruft man eine Instanzmethode auf?
    Objektname + . + Methodenname + Parameter
    Was ist die Methodensignatur?
    Der Name der Methode sowie Datentyp und Position ihrer Parameter bilden die Signatur einer Methode.
    Was bedeutet es, eine Nachricht an ein Objekt zu senden?
    Eine Methode aufzurufen.
    Was sind statische Methoden und wie ruft man sie auf?
    Statische Methoden sind über eine Klasse aufrufbar und benötigen kein Objekt. Sie werden über den Klassennamen und den .-Operator aufgerufen.
    Was sind die Member einer Klasse?
    Oberbegriff für Felder und Methoden (static und Instanzvariablen) einer Klasse.
    Was ist ein Package?
    Ein Package dient der Gruppierung zusammengehöriger Klassen und ist vergleichbar mit einem Ordner im Dateisystem.
    Was macht das Schlüsselwort import?
    Importiert ein Package und macht seine Inhalte in der aktuellen Klasse verfügbar.
    Literaturempfehlungen
    3 Klassen und Objekte - Rheinwerk Computing :: Java ist auch eine Insel
    Lesson: Classes and Objects (The Java™ Tutorials > Learning the Java Language)
    *(direkt beim Rheinwerk-Verlag bestellen*)
    *(direkt beim Rheinwerk-Verlag bestellen*)
    *
    *
    Links
    Permalink zu dieser Podcast-Episode
    RSS-Feed des Podcasts
    Java Fields | tutorials.jenkov.com
    Vorbereitung auf das Fachgespräch
    Innovationen in Legacy-Systemen
    Der schlimmste Fehler in der Informatik
    Zusammenfassung
    Objektorientierung in der IT-Ausbildung
    Für dein Fachgespräch als angehende:r Fachinformatiker:in Anwendungsentwicklung solltest du die Begriffe der Objektorientierung sicher beherrschen. Dazu lassen sich viele Fragen stellen, mit denen Prüfer:innen auch dein tieferes Verständnis prüfen können. In meinem Ausbildungsalltag greife ich das Thema regelmäßig auf, weil es ebenso beim Programmieren gebraucht wird. Viele verbreitete Programmiersprachen arbeiten objektorientiert.
    Klassen und Objekte
    An meinem Monitor kannst du nachvollziehen, was ein Objekt ausmacht: Er hat Eigenschaften wie seine Helligkeit und bietet Funktionen, etwa das Einschalten. In der Objektorientierung heißen diese Eigenschaften Attribute, während die Funktionen als Methoden bezeichnet werden.
    Eine Klasse ist der Bauplan für solche Objekte. Sie legt fest, welche Attribute und Methoden alle zugehörigen Objekte besitzen. Wenn ich mehrere Monitore in einem Raum betrachte, hat jeder eine Helligkeit, deren konkreter Wert je nach Monitor unterschiedlich sein kann. Die Klasse Monitor beschreibt die gemeinsamen Eigenschaften und Funktionen dieser einzelnen Monitorobjekte.
    Für ein Telefon würde ich eine eigene Klasse mit den dazu passenden Attributen und Methoden modellieren. Auf diese Weise lassen sich die Dinge des fachlichen Bereichs, der Domäne eines Programms, in Software abbilden.
    Welche Teile der Domäne gehören ins Programm?
    Bei einer Autowaschanlage brauche ich die Maße eines Autos, damit sich die Bürsten passend bewegen können. Für eine Autovermietung ist beispielsweise der Mietpreis relevant. Welche Attribute und Methoden eine Klasse Auto erhält, hängt deshalb davon ab, was die jeweilige Anwendung braucht.
    Als Entwickler:in wählst du die passenden Teile der Domäne aus. Dein Modell enthält die Eigenschaften und Funktionen, mit denen dein Programm arbeiten soll.
    Das Prinzip YAGNI, ausgeschrieben "You ain't gonna need it", hilft dir dabei: Programmiere etwas erst, wenn feststeht, dass es gebraucht wird. Jeder zusätzliche Teil des Codes bringt später Arbeit mit sich, etwa wenn du ihn pflegen oder überarbeiten musst.
    Instanzen erzeugen
    Wenn du in einer Prüfungsfrage auf das Wort Instanz stößt, ist damit ein Objekt gemeint. Die Begriffe werden gleichwertig verwendet; entsprechend kannst du eine Instanzmethode auch Objektmethode nennen.
    Bei der Instanzierung erzeugst du aus einer Klasse ein Objekt. Dafür wird in vielen objektorientierten Sprachen new verwendet. In meinen Beispielen sieht das so aus:
    Java oder C#: new Auto()
    Ruby: Auto.new
    Die Schreibweise hängt von der Programmiersprache ab.
    Instanzvariablen und der Zustand eines Objekts
    Damit mein Monitor seine Helligkeit speichern kann, braucht er eine Variable für diesen Wert. Eine Instanzvariable gehört zu einem konkreten Objekt. Jedes Monitorobjekt besitzt damit seinen eigenen Helligkeitswert, auch wenn die Klasse für alle dieselbe Variable mit demselben Datentyp definiert.
    Im gezeigten Klassenaufbau deklarierst du Instanzvariablen direkt im Klassenblock. Auf sie können die Methoden des Objekts zugreifen. Ob die Variable am Anfang oder am Ende der Klasse steht, spielt dabei keine Rolle. Eine innerhalb einer Methode deklarierte lokale Variable gilt im Bereich dieser Methode.
    Aus den aktuellen Werten seiner Instanzvariablen ergibt sich der Zustand eines Objekts. Wenn sich diese Werte ändern, können spätere Methodenaufrufe andere Ergebnisse liefern. Bei komplexen Objekten mit voneinander abhängigen Attributen wird es dadurch schwierig, Fehler nachzuvollziehen. Die funktionale Programmierung versucht, solche veränderlichen Zustände und die damit verbundenen Seiteneffekte zu vermeiden.
    Kapselung
    In meiner Klasse kann ich die Daten zusammen mit den Methoden definieren, die mit diesen Daten arbeiten. Dieses Zusammenfassen zu einer Einheit beschreibt hier den Begriff Kapselung. Dadurch lässt sich eine Klasse mitsamt ihren Daten und Funktionen an anderer Stelle wiederverwenden.
    Standardwerte und null
    Bei einer Instanzvariable wie int a wird in den besprochenen Beispielen automatisch ein Standardwert gesetzt. Welcher Wert das ist, hängt vom Datentyp und von der Programmiersprache ab:
    | Datentyp | Genannter Standardwert |
    | --- | --- |
    | Zahlentyp | 0 |
    | Boolescher Typ | false |
    | Referenztyp | null |
    Lokale Variablen brauchen vor dem Lesen einen gesetzten Wert. Bei den beschriebenen Instanzvariablen übernimmt die Sprache das Setzen des Standardwerts, sofern du selbst keinen Wert angibst.
    Mit null drückst du bei einer Referenz aus, dass sie auf kein Objekt verweist. Wenn ich dann beispielsweise über diese Referenz die Länge eines Autos abfragen möchte, entsteht ein Null-Pointer-Fehler. In größeren Programmen können die Stellen, an denen eine Variable deklariert, gesetzt und später gelesen wird, weit auseinanderliegen. Das erschwert die Suche nach der Ursache. Ich empfehle dir deshalb, den Umgang mit null möglichst zu vermeiden.
    Für Java werden dazu folgende Beispiele behandelt:
    String ist ein Referenztyp. Ein leerer String ist ein gültiger String; eine Referenz mit dem Wert null verweist auf kein Stringobjekt.
    Auch Integer mit großem I ist ein Referenztyp....
    37 min
  • Algorithmen und Methoden (Lernzielkontrolle) – Anwendungsentwickler-Podcast #42
    Mit den Themen Algorithmen und Methoden setze ich in der zweiundvierzigsten Episode des Anwendungsentwickler-Podcasts meine Reihe der Lernzielkontrollen zur Einführung in die Programmierung mit Java fort.
    TL;DR
    Mit meiner Lernzielkontrolle zu Algorithmen und Methoden kannst du dein Wissen als IT-Azubi prüfen. Ein Algorithmus beschreibt wiederholbar, wie du ein Problem löst; seine Grundbausteine sind Sequenzen, Verzweigungen und Wiederholungen. An Java-Beispielen geht es um Bedingungen und Schleifen sowie darum, wie du Code in Methoden wiederverwendest. Dazu gehören eindeutige Methodensignaturen und das Überladen von Methoden, außerdem Rückgabewerte, Parameter und der Aufruf von Instanzmethoden oder statischen Methoden.
    Kapitelmarken
    [00:00:20] Lernzielkontrolle zu Algorithmen und Methoden
    [00:01:31] Was ist ein Algorithmus?
    [00:02:14] Lösungswege zuerst auf Papier entwickeln
    [00:03:33] Grundbausteine eines Algorithmus
    [00:04:20] Sequenzen und Verzweigungen
    [00:05:17] Fallunterscheidungen mit switch und Polymorphie
    [00:06:27] Aufbau einer if-Abfrage
    [00:07:51] Kopfgesteuerte und fußgesteuerte Schleifen
    [00:09:22] Die for-Schleife und Endlosschleifen
    [00:11:13] Collections mit For-Each durchlaufen
    [00:13:29] Schleifen mit continue und break steuern
    [00:15:31] Aufbau und Ablauf einer for-Schleife
    [00:17:18] Code mit Methoden wiederverwenden
    [00:17:53] Funktionen und Prozeduren
    [00:19:45] Methoden mit Extract Method erzeugen
    [00:20:18] Methodenaufbau und Signatur
    [00:22:57] Parametertypen und eindeutige Signaturen
    [00:24:56] Checked Exceptions und Antworten in der Prüfung
    [00:26:23] Methoden überladen
    [00:27:30] Rückgabewerte mit return und void
    [00:29:02] Parameter mit Call by Value übergeben
    [00:31:08] Call by Reference und ref in C#
    [00:32:18] Objekte und kopierte Referenzen als Parameter
    [00:34:34] Änderungen über Rückgabewerte nachvollziehen
    [00:35:35] Instanzmethoden und Klassenmethoden aufrufen
    [00:37:21] Statische Methoden mit static definieren
    [00:38:14] Objekte mit new erzeugen
    [00:39:01] Shownotes und Quellen zum Lernen mit Java
    [00:40:42] Legacy Code testen und fremde Projektvorlagen verwenden
    [00:41:55] Feedback und Kontakt
    [00:42:33] Podcast abonnieren und Newsletter
    [00:43:30] Ausblick auf die Objektorientierung
    Inhalt
    Algorithmen
    Was ist ein Algorithmus?
    Die wiederholbare Beschreibung zur Lösung eines Problems.
    Welche drei grundlegenden Bestandteile kann eine Algorithmus haben?
    Sequenz, Verzweigung und Wiederholung.
    Aus welchen Teilen besteht ein if-Statement?
    if (bool) { } else { }
    Welche Schleifen gibt es in Java?
    while, do while, for, "foreach".
    Was machen die Statements continue und break?
    Sie setzen die Schleife mit der nächsten Iteration fort bzw. beenden sie.
    Wie definiert man eine for-Schleife in Java?
    for (Initialisierung; Prüfung; Aktion) { }
    Methoden
    Wann und warum schreibt man Methoden?
    Um Algorithmen wiederverwenden zu können.
    Was macht die return-Anweisung?
    Beendet die Methode und gibt den angegebenen Wert zurück.
    Was bedeutet das Schlüsselwort void?
    Einen leeren Return-Wert.
    Was ist die Signatur einer Methode und welche Bestandteile hat sie?
    Die Signatur einer Methode besteht aus dem Namen der Methode und der Anzahl und den Datentypen ihrer Parameter. In Java zählen auch Checked Exceptions zur Signatur.
    Welche Teile der Methodensignatur müssen eindeutig sein?
    Name und Anzahl/Datentyp der Parameter.
    Was bedeutet das Überladen von Methoden?
    Gleicher Name, andere Parameter.
    Welche Auswirkung hat die Änderung des Wertes eines Methodenparameters für den Aufrufer?
    Keine. Parameter werden by value übergeben und sind nur innerhalb der Methode gültig.
    Was ist der Unterschied zwischen call by value und call by reference?
    Beim call by value werden die Werte der Parameter einer Methode kopiert und sind nur innerhalb der Methode verfügbar. Änderungen wirken sich nicht auf den Aufrufer aus. Beim call by reference wird eine Referenz auf Variablen als Parameter übergeben. Änderungen an diesen Variablen sind damit auch dem Aufruf bekannt.
    Wie ruft man eine Instanzmethode auf?
    Durch den .-Operator an einem Objekt.
    Was macht das Schlüsselwort static?
    Definiert eine Klasse, Methode oder Variable als statisch. Dieses Element hängt damit nicht an einem Objekt, sondern an einer Klasse.
    Was macht das Schlüsselwort new?
    Instantiiert eine Klasse (erzeugt ein Objekt).
    Literaturempfehlungen
    13 Datenstrukturen und Algorithmen - Rheinwerk Computing :: Java ist auch eine Insel
    2.8 Methoden einer Klasse - Rheinwerk Computing :: Java ist auch eine Insel
    The Java™ Tutorials
    *(direkt beim Rheinwerk-Verlag bestellen*)
    *(direkt beim Rheinwerk-Verlag bestellen*)
    Links
    Permalink zu dieser Podcast-Episode
    RSS-Feed des Podcasts
    Referenzparameter – Wikipedia
    Signatur (Programmierung) – Wikipedia
    Zusammenfassung
    Algorithmen verstehen
    Wenn du eine Aufgabe programmieren möchtest, brauchst du zuerst einen Lösungsweg, den du selbst nachvollziehen kannst. Ein Algorithmus ist eine wiederholbare Beschreibung, wie sich ein Problem lösen lässt. Du kannst ihn auch auf Papier ausführen.
    In meiner Ausbildung lasse ich IT-Azubis ihre Lösung zunächst mit eigenen Worten beschreiben. Wenn du beim Programmieren festhängst, zeichne dir beispielsweise das Array auf, das du sortieren möchtest, und verschiebe die Elemente auf dem Papier. So kannst du die einzelnen Schritte durchgehen, bevor du sie in Code übersetzt.
    Die Grundbausteine
    Mit diesen Bausteinen lassen sich berechenbare Probleme abbilden:
    Sequenz: Befehle werden nacheinander ausgeführt. Bei a = 1; b = 3; c = a + b; folgt jeder Schritt auf den vorherigen.
    Verzweigung: Eine Bedingung bestimmt, welchen Weg das Programm einschlägt. Dafür gibt es beispielsweise if und switch.
    Wiederholung: Eine Schleife führt einen Codeblock wiederholt aus.
    Bei Fallunterscheidungen mit switch besteht die Gefahr, dass sich dieselbe Logik an mehreren Stellen verteilt. Kommt ein Fall hinzu, musst du diese Stellen anpassen. Ich bevorzuge für solche Aufgaben in objektorientiertem Code eine Lösung über Polymorphie.
    Bedingungen mit if
    In Java steht die Bedingung in runden Klammern hinter if. Ist sie wahr, wird der zugehörige Block ausgeführt, dessen geschweifte Klammern den Code zusammenhalten. Ein optionaler else-Block legt fest, was bei einer falschen Bedingung passiert.
    if ist in Java ein Statement ohne Rückgabewert. Andere Programmiersprachen kennen dafür auch Ausdrücke, die einen Wert liefern.
    Schleifen
    while
    Bei einer kopfgesteuerten, auch abweisenden Schleife wird die Bedingung vor dem Schleifenrumpf geprüft. Eine while-Schleife führt ihren Block aus, solange die Bedingung wahr ist. Ist sie bereits beim ersten Prüfen falsch, gibt es null Durchläufe.
    do-while
    Die fußgesteuerte beziehungsweise akzeptierende Schleife prüft ihre Bedingung am Ende. In Java beginnt sie mit do, worauf der Codeblock folgt; anschließend steht while mit der Bedingung. Dadurch läuft der Block mindestens einmal.
    for
    Eine for-Schleife ist kopfgesteuert und fasst häufig benötigte Schritte im Schleifenkopf zusammen. Das Beispiel for (int i = 0; i < 10; i++) zählt von 0 bis 9.
    Zuerst wird i einmalig angelegt und auf 0 gesetzt. Vor jedem Durchlauf prüft die Schleife i < 10. Nach dem Schleifenrumpf erhöht i++ den Zähler, bevor die Bedingung erneut geprüft wird. Die Bestandteile im Schleifenkopf sind durch Semikolons getrennt.
    for und while lassen sich ineinander umformen. Auch leere Bestandteile sind bei for möglich: for (;;) ergibt eine Endlosschleife.
    Achte bei deinen Schleifen darauf, dass das Abbruchkriterium erreicht werden kann. Bleibt die Bedingung dauerhaft wahr, läuft die Schleife weiter.
    for-each
    Wenn du jedes Element eines Arrays oder einer Collection bearbeiten möchtest, empfehle ich dir eine For-Each-Schleife. Sie übernimmt das Durchlaufen der Elemente, sodass du dich auf den jeweiligen Inhalt konzentrieren kannst. Fehler beim Verwalten eines Zählers oder bei den Arraygrenzen entfallen damit.
    In Java verwendet auch diese Schleife das Schlüsselwort for, etwa in for (String s : strings). Jedes Element steht im Schleifenrumpf über die temporäre Variable s bereit. C# hat dafür das Schlüsselwort foreach; in Ruby gibt es die Methode each.
    Wenn du zusätzlich den Index brauchst, etwa für die Ausgabe oder um auf ein benachbartes Element zuzugreifen, verwende ich eine klassische for-Schleife.
    continue und break
    Mit continue überspringst du den restlichen Code des aktuellen Durchlaufs. Danach wird die Schleife fortgesetzt; bei einer klassischen for-Schleife folgt zunächst die Aktion im Schleifenkopf.
    break verlässt die Schleife vollständig. Das Programm setzt hinter ihr fort. Bei der Suche nach einem Wert kannst du damit nach einem Treffer die verbleibenden Durchläufe sparen.
    In Natural heißen die entsprechenden Statements ESCAPE TOP und ESCAPE BOTTOM.
    Code in Methoden wiederverwenden
    Wenn du denselben Code mehrfach brauchst, fasse ich ihn als Methode zusammen. Sie gibt einem Codebereich einen Namen, über den du ihn an verschiedenen Stellen aufrufen kannst. Eine Methode zum Berechnen des Alters kann beispielsweise das Geburtsdatum und das aktuelle Datum erhalten und das Alter zurückgeben.
    Doppelter Code führt dazu, dass du Änderungen an mehreren Stellen einpflegen musst. Wird dabei eine Stelle übersehen, können Fehler entstehen, die schwer zu finden sind. Meine Faustregel lautet deshalb: Sobald ich Code mehr als einmal brauche, mache ich daraus eine Methode. Eclipse unterstützt das über Refactor → Extract Method und erzeugt dabei auch passende Parameter und einen Rückgabewert.
    In prozeduralen Sprachen bezeichnet eine Funktion einen benannten Codebereich mit Rückgabewert. Eine Prozedur hat keinen Rückgabewert. In Java heißen beide Varianten Methoden.
    Aufbau und Signatur
    Bei einer Methode steht der Rückgabetyp vor dem Namen. Dahinter folgen die Parameter in runden Klammern.
    Die Signatur kennzeichnet eine Methode eindeutig....
    45 min
  • Tipps zur Bewerbung um eine Ausbildung als Anwendungsentwickler/in – Anwendungsentwickler-Podcast #41
    Viele angehende Anwendungsentwickler/innen könnten Hilfe bei der Gestaltung ihrer Bewerbung um eine Ausbildungsstelle gebrauchen. Daher gebe ich in der einundvierzigsten Episode des Anwendungsentwickler-Podcasts einige praktische Tipps zum Bewerbungsverfahren.
    TL;DR
    Für deine Bewerbung als Fachinformatiker:in Anwendungsentwicklung empfehle ich dir, den Beruf vorher kennenzulernen und erste kleine Programme auszuprobieren. Ein Praktikum zeigt dir, wie ein Betrieb arbeitet, und hilft dir, einen passenden Ausbildungsplatz zu finden. In deinen Unterlagen sollte deutlich werden, warum du programmieren möchtest; deine Kontaktdaten und mehrere Schulzeugnisse gehören ebenfalls dazu. Für das Gespräch bereitest du eigene Fragen vor, informierst dich über das Unternehmen und klärst, wie du später zur Arbeit und zur Schule kommst.
    Kapitelmarken
    [00:00:00] Bewerbungstipps für die Ausbildung
    [00:01:23] Erfahrungen aus dem Auswahlverfahren und duales Studium
    [00:03:25] Beruf und Arbeitsalltag kennenlernen
    [00:06:20] Anwendungsentwicklung unabhängig vom Geschlecht
    [00:07:08] Erste kleine Programme ausprobieren
    [00:08:54] Praktikum und passende Entwicklungsbereiche
    [00:11:28] Ausbildung oder Studium wählen
    [00:12:50] Alternativen und persönliche Voraussetzungen klären
    [00:14:12] Ausbildungsbetriebe finden und Kontakte knüpfen
    [00:16:10] Berufliche Ziele überlegen
    [00:17:27] Bewerbungsunterlagen und erwartete Vorkenntnisse
    [00:19:30] Den Berufswunsch nachvollziehbar begründen
    [00:21:16] Kontaktdaten angeben und erreichbar sein
    [00:23:24] Unterbrechungen im Lebenslauf erklären
    [00:25:12] Mehrere Schulzeugnisse beilegen
    [00:27:23] Hobbys im Lebenslauf angeben
    [00:28:48] Natürlich schreiben und Zukunftspläne realistisch halten
    [00:29:52] Elektronisch bewerben
    [00:30:38] Alle Unterlagen in einer PDF-Datei verschicken
    [00:31:33] Das Vorstellungsgespräch vorbereiten
    [00:31:56] Über das Unternehmen informieren
    [00:33:48] Smalltalk üben und aktuelle IT-Themen verfolgen
    [00:36:41] Eigene Fragen für das Gespräch vorbereiten
    [00:39:02] Arbeitsweg und Wohnort klären
    [00:41:31] Angebotene Termine wahrnehmen
    [00:43:38] Passende Kleidung wählen
    [00:44:59] Mit etwas Zeitpuffer ankommen
    [00:46:03] Weiterführende Artikel und Links
    [00:47:10] Fragen, Feedback und Newsletter
    [00:49:10] Ausblick auf die Lernzielkontrolle zu Algorithmen
    Inhalt
    Viele Inhalte aus Podcast-Episode 5 (Bewerbung nach der Ausbildung) gelten auch schon bei der Bewerbung um eine Ausbildungsstelle.
    Vorbereitung
    Informiere dich über Inhalte und Anforderungen des Berufs.
    Probiere aus zu programmieren, wenn du es noch nie (z.B. in der Schule) gemacht hast (z.B. mit AntMe! oder der Hour of Code). Hast du Spaß daran?
    Absolviere ein Praktikum im IT-Bereich. Am besten in der Anwendungsentwicklung.
    Informiere dich über den Ablauf der Ausbildung/des Studiums (Inhalte, zeitliche Organisation).
    Informiere dich über potentielle Ausbildungsunternehmen, z.B. auf Jobmessen, Bewerbertagen, bei Bekannten und Verwandten oder im Internet.
    Mache dir Gedanken über Karrieremöglichkeiten.
    Überlege dir mögliche Alternativen zur Ausbildung/zum Studium.
    Bewerbungsschreiben
    Mache dein Interesse am Beruf deutlich und lege überzeugend dar, warum der Beruf der richtige für dich ist.
    Gib deine persönliche Handynummer und E-Mail-Adresse gut auffindbar an.
    Verschweige nichts. Lass insb. keine Lücken im Lebenslauf entstehen.
    Reiche deine vollständigen Bewerbungsunterlagen ein.
    Lege mehrere Zeugnisse bei, sodass eine Entwicklung erkennbar ist.
    Gib gerne deine Hobbys an (sie liefern Gesprächsstoff für das Bewerbungsgespräch und zeigen ggfs. dein Interesses am Beruf).
    Verwende keine hochtrabenden Formulierungen. Du bewirbst dich auf eine Ausbildung und nicht auf eine Führungsposition.
    Bewirb dich elektronisch (falls das möglich und erwünscht ist).
    Verschicke deine Bewerbung als eine (!) PDF-Datei (z.B. mittels PDFCreator) und nicht als 10 Word- und JPG-Dateien.
    Vorstellungsgespräch
    Bereite dich auf das konkrete Unternehmen vor (Mitarbeiterzahl, Produkte, wichtige Rahmendaten usw.).
    Recherchiere das aktuelle Tagesgeschehen (liefert potentielle Gesprächsthemen).
    Übe ein wenig Smalltalk.
    Recherchiere aktuelle IT-Themen (Hardware, Windows, Handys usw.).
    Bereite eigene Fragen vor (z.B. zu Vergütung, Arbeitszeit, Schule, Ausbilder, Arbeitsalltag).
    Plane ggfs. deinen Arbeitsweg zum Unternehmen/zur Berufschule/zur Hochschule?
    Plane ggfs. deine Unterkunft während der Ausbildung/des Studiums.
    Nimm dir angebotene Termine bestmöglich wahr und mache die Schule nicht zum Problem. Die Unternehmen haben oft nur wenige Termine frei.
    Ziehe vernünftige Kleidung an (nicht zu hochgestochen, aber auch nicht zu locker).
    Sei pünktlich, aber nicht überpünktlich.
    Literaturempfehlungen
    *
    Links
    Permalink zu dieser Podcast-Episode
    RSS-Feed des Podcasts
    Zusammenfassung
    Den Beruf kennenlernen
    Aus dem Auswahlverfahren für einen Ausbildungsplatz 2016 habe ich Tipps für dich zusammengestellt. Sie gelten auch, wenn du dich für ein duales Studium interessierst, das die Ausbildung als Fachinformatiker:in Anwendungsentwicklung einschließt. Für eine Stelle nach der Ausbildung findest du weitere Hinweise in Episode 5.
    Was dich im Arbeitsalltag erwartet
    Als Anwendungsentwickler:in verbringst du viel Zeit am Computer und löst Probleme, indem du Software schreibst. An einer Aufgabe arbeitest du teilweise mehrere Wochen oder Monate. Dazu kommen Gespräche mit Kolleg:innen und Kund:innen, etwa über Anforderungen oder darüber, wie die Software aussehen soll.
    Sprich mit einem/einer Entwickler:in oder deiner Informatiklehrkraft über den Arbeitsalltag. So kannst du einschätzen, ob dir diese Arbeit gefällt. Der Beruf steht dir unabhängig von deinem Geschlecht offen; ich wünsche mir mehr Bewerberinnen in der Informatik.
    Erste Programme ausprobieren
    Mit einer kleinen Programmieraufgabe findest du heraus, ob dir das Denken und Arbeiten beim Programmieren Spaß macht. Dafür gibt es kostenfreie Angebote im Internet, teilweise direkt im Browser. Ich nenne beispielsweise Hour of Code, AntMe! und Rails for Zombies.
    Professionell programmieren lernst du während der Ausbildung. Erste eigene Versuche helfen dir dabei, deine Berufswahl auf Erfahrungen zu stützen.
    Ein Praktikum machen
    In einem Praktikum erlebst du, wie Software in einem Unternehmen entsteht. Du lernst das Arbeitsumfeld kennen und siehst, welche Anwendungen der Betrieb entwickelt. Wenn dich Webentwicklung interessiert, suche gezielt nach einem Unternehmen, das in diesem Bereich arbeitet.
    Du kannst auch für die Ferien nach einem Praktikumsplatz fragen. Selbst ein kurzer Einblick in die Anwendungsentwicklung hilft dir später, deinen Berufswunsch zu begründen. Bei mir erhöht ein freiwilliges Praktikum in diesem Bereich die Chance, dass ich dich zum Gespräch einlade.
    Einen passenden Ausbildungsweg und Betrieb finden
    Zur Softwareentwicklung führen unterschiedliche Wege. Die Ausbildung als Fachinformatiker:in Anwendungsentwicklung dauert regulär drei Jahre und findet im Betrieb und in der Berufsschule statt. Für ein duales Studium kommen unter anderem Wirtschaftsinformatik oder Medieninformatik infrage. Informiere dich über die Inhalte der jeweiligen Studiengänge und darüber, wie sie zu deinen Interessen passen.
    Überlege auch, welche Alternative für dich infrage kommt, falls du deinen gewünschten Platz nicht bekommst. Ein Vollzeitstudium kann eine solche Möglichkeit sein. Wenn du mehrere Wege offenhältst, kannst du ein Angebot danach beurteilen, wie gut es zu dir passt.
    Bei deiner Suche helfen dir folgende Fragen:
    Welche Software möchtest du später entwickeln?
    Wie lange möchtest du lernen, und kommt eine kürzere Ausbildung für dich infrage?
    Kannst du für deinen Ausbildungsplatz umziehen?
    Wie erreichst du den Betrieb und die Berufsschule?
    Möchtest du dich später fachlich vertiefen oder als Teamleiter:in beziehungsweise Projektleiter:in arbeiten?
    Kontakte zu Unternehmen findest du auf Jobmessen und an Bewerbertagen. Manche Angebote ermöglichen dir, Bewerbungsgespräche zu üben oder deine Unterlagen prüfen zu lassen. Frage auch bei Hochschulen und Berufsschulen nach entsprechenden Veranstaltungen.
    Als weitere Anlaufstellen nenne ich Xing und fachinformatiker.de. Über persönliche Kontakte erfährst du ebenfalls von Ausbildungsbetrieben und bekommst leichter einen ersten Zugang zu einem Unternehmen.
    Deine Bewerbungsunterlagen schreiben
    Den Berufswunsch begründen
    Beschreibe, warum du Anwendungsentwickler:in werden möchtest und welche Erfahrungen dich zu diesem Wunsch gebracht haben. Dafür eignen sich eigene Programmierprojekte, Informatikunterricht oder ein Praktikum. Wenn du bisher andere Berufsfelder kennengelernt hast, braucht dein Wechsel zur Anwendungsentwicklung eine nachvollziehbare Begründung.
    Ich suche bei IT-Azubis nach Interesse am Beruf und danach, ob sie sich mit dem Arbeitsalltag beschäftigt haben. Das fachliche Wissen gehört zur Ausbildung. Bei einem Betrieb, der bereits umfassende Programmierkenntnisse verlangt, würde ich genauer prüfen, ob er dir eine gute Ausbildung bietet. Solche Erwartungen können darauf hindeuten, dass du früh als günstige Arbeitskraft eingesetzt werden sollst.
    Gut erreichbar sein
    Gib deine Handynummer und eine passende E-Mail-Adresse an. Ich empfehle dir, beide auf jeder Seite gut sichtbar in der Kopfzeile oder Fußzeile zu platzieren.
    Rufe deine E-Mails regelmäßig ab und beantworte Nachrichten. Gerade während deiner Schulzeit lässt sich ein Termin auf diesem Weg leichter vereinbaren.
    Deinen Lebenslauf nachvollziehbar machen
    Erkläre längere Unterbrechungen knapp, beispielsweise mit einem Hinweis auf einen Krankenhausaufenthalt oder einen Umzug. Persönliche Einzelheiten kannst du dabei für dich behalten. Eine kurze Angabe hilft mir, den zeitlichen Ablauf zu verstehen.
    Lege mehrere Schulzeugnisse bei, damit ich erkennen kann, wie sich deine Leistungen entwickelt haben. Wenn du Abitur machst, eignen sich dafür die Zeugnisse aus der Oberstufe.
    ...
    50 min
  • Die hilfreichsten (Windows-)Tools für Softwareentwickler – Anwendungsentwickler-Podcast #40
    Als Software-Entwickler kann man sich mit zahlreichen Tools das Leben einfacher machen. In der vierzigsten Episode des Anwendungsentwickler-Podcasts stelle ich 23 hilfreiche (Windows-)Tools vor.
    TL;DR
    Mit den Windows-Tools aus meinem Arbeitsalltag kannst du als IT-Azubi wiederkehrende Aufgaben schneller erledigen und deine Entwicklungsumgebung einrichten. Textbausteine und eine erweiterte Zwischenablage sparen dir Tipparbeit, während Git deine Änderungen nachvollziehbar macht und passende Editoren dich beim Programmieren unterstützen. Für Aufgaben am System stelle ich dir unter anderem Everything zur Dateisuche und Process Explorer für gesperrte Dateien vor. Dazu kommen Werkzeuge für virtuelle Testumgebungen sowie RSS-Reader und Podcatcher, mit denen du neue Fachinhalte verfolgen kannst.
    Kapitelmarken
    [00:00:01] Windows-Tools für den Entwicklungsalltag
    [00:01:56] Explorer++: Ordner über Tabs und Favoriten erreichen
    [00:02:53] CLCL: Mehrere Inhalte in der Zwischenablage speichern
    [00:04:03] AutoHotkey: Textbausteine und Makros einrichten
    [00:05:50] KeePass: Eigene Passwörter für jeden Account
    [00:07:27] Texteditoren: Vim, Notepad++ und PSPad
    [00:10:46] MarkdownPad: Texte schreiben und als Vorschau sehen
    [00:12:30] Excel: Texte bearbeiten und SQL-Anweisungen erzeugen
    [00:13:50] Git: Quelltext und Dokumente versionieren
    [00:14:53] posh-git: Git-Status in PowerShell anzeigen
    [00:15:59] WinMerge: Dateien vergleichen und zusammenführen
    [00:16:57] Die passende IDE und ihre Shortcuts
    [00:18:44] Browser mit Entwicklungswerkzeugen
    [00:19:37] Enterprise Architect und Violet UML
    [00:21:38] Everything: Dateien schnell finden
    [00:23:14] Process Explorer: Prozesse und gesperrte Dateien untersuchen
    [00:24:35] IrfanView: Bilder ansehen und Screenshots bearbeiten
    [00:25:39] 7-Zip: Archive erstellen und entpacken
    [00:26:16] TreeSize: Große Ordner aufspüren
    [00:27:09] PuTTY und WinSCP: Auf Linux-Systeme zugreifen
    [00:28:21] f.lux und Twilight: Bildschirmfarben am Abend anpassen
    [00:30:13] VirtualBox: Betriebssysteme und Netzwerke testen
    [00:31:32] RSS-Reader: Neue Artikel gesammelt verfolgen
    [00:32:44] BeyondPod: Podcasts abonnieren und schneller hören
    [00:34:38] Buchtipps zu Vim und Git
    [00:35:49] Shownotes und Buch zu testgetriebenem Entwickeln mit C#
    [00:37:09] Eric Lippert über problematische C#-Sprachfeatures
    [00:37:43] Feedback und Newsletter mit Projektchecklisten
    [00:39:01] Ausblick: Bewerbungen für die IT-Ausbildung
    Inhalt
    Produktivität bei der täglichen Arbeit
    Explorer++ oder ein anderer Explorer-Ersatz
    Sollte Favoriten und mehrere Tabs unterstützen.
    CLCL
    Multi-Clipboard für Copy/Paste.
    AutoHotkey
    Text-Vervollständigung z.B. für Code-Snippets oder andere häufig benötigte Texte.
    KeePass
    Verwaltet alle Passwörter. Inkl. Browser-Integration.
    Vim, Notepad++, PSPad oder irgendein anderer Editor
    Das Schweizer Taschenmesser für Entwickler. Sollte Regular Expressions beherrschen.
    MarkdownPad*
    Zum Schreiben jeglicher Dokumentation.
    Excel*
    Für viele wiederkehrende Bearbeitungen hilfreich.
    Git
    Die beste Versionsverwaltung der Welt ;-)
    posh-git
    Erweitert die PowerShell um eine nützliche Git-Integration
    WinMerge
    Ein sehr gutes Merge-Tool für Windows.
    Eclipse, Visual Studio* oder eure Lieblings-IDE
    Hilft, produktiv zu entwickeln.
    Browser mit Development Tools
    Unerlässlich für die Webentwicklung
    Enterprise Architect* oder eine andere Modellierungssoftware
    Nicht nur für die Abschlussprüfung ist die Modellelierung oder Dokumentation der programmierten Software wichtig.
    System-Tools
    Everything
    Die schnellste Dateisuche für Windows.
    Process Explorer
    Findet z.B. Prozesse, die Dateien blockieren.
    IrfanView
    Schneller und leichtgewichtiger Bildanzeiger mit rudimentären Bearbeitungsfunktionen.
    7-Zip (deutsche Version)
    Packt und entpackt alles.
    TreeSize
    Findet die Speicherfresser auf der Festplatte.
    PuTTY
    Terminalemulation für den Zugriff auf Linux-Server.
    WinSCP
    Dateiübertragung per SCP, FTP usw.
    Sonstiges
    f.lux
    Damit man auch nach einer langen Coding-Session ruhig schlafen kann.
    VirtualBox oder eine andere Virtualisierungssoftware
    Zum Testen der programmierten Software oder zur Simulation einer komplexen Umgebung unerlässlich.
    RSSOwl, Tiny Tiny RSS oder ein anderer RSS-Reader
    Um auf dem Laufenden zu bleiben.
    BeyondPod* oder ein anderer Podcatcher
    Um immer die neusten Podcast-Folgen im Zugriff zu haben.
    Literaturempfehlungen
    *
    *
    Links
    Permalink zu dieser Podcast-Episode
    RSS-Feed des Podcasts
    Was sollte ich alles machen, wenn ich Windows neu installiere?
    Podcasts für Softwareentwickler - Anwendungsentwickler-Podcast #26
    Kostenlose Informationsquellen zur Softwareentwicklung - Anwendungsentwickler-Podcast #22
    Kostenpflichtige Informationsquellen zur Softwareentwicklung - Anwendungsentwickler-Podcast #23
    Zusammenfassung
    Wiederkehrende Aufgaben am Windows-PC
    Für meine tägliche Arbeit als Softwareentwickler habe ich über die Jahre verschiedene Werkzeuge gesammelt. Die meisten sind kostenfrei; einige Programme kosten Geld. Als IT-Azubi kannst du damit häufige Handgriffe verkürzen und Aufgaben rund um deine Software bearbeiten.
    Explorer++: Mehrere Tabs halten verschiedene Verzeichnisse offen. Über Favoriten erreichst du häufig benötigte Ordner schnell. Ich lege dort beispielsweise meinen Workspace ab.
    CLCL: Diese erweiterte Zwischenablage speichert mehrere kopierte Inhalte. Bei mir sind 30 Einträge eingestellt. Mit Strg+V fügst du den zuletzt kopierten Inhalt ein; für ältere Einträge öffnest du eine Auswahlliste über einen konfigurierbaren Shortcut. Ich habe dafür Strg+Alt+V eingerichtet.
    AutoHotkey: Kürzel werden automatisch durch hinterlegte Texte ersetzt, etwa durch eine Grußformel oder deine E-Mail-Adresse. Seltene Zeichenfolgen mit einem zusätzlichen # helfen dabei, versehentlich ersetzte Texte zu vermeiden. Das kostenfreie Werkzeug unterstützt außerdem Makros und kann Windows fernsteuern. Im Forum findest du Hilfe zu den Funktionen.
    KeePass: Deine Passwörter liegen in einer Datenbank, die du mit einem Master-Passwort öffnest. Der eingebaute Generator erstellt lange Passwörter, sodass du für jeden Account ein eigenes hinterlegen kannst. Über die Browser-Anbindung lassen sich Zugangsdaten per Klick oder Shortcut einfügen. Ich verwende für meine Accounts jeweils unterschiedliche, generierte Passwörter.
    Texte bearbeiten und Daten vorbereiten
    Wenn ich Quelltext umforme oder eine CSV-Datei bearbeite, greife ich häufig zu einem Texteditor. Durch Suchen und Ersetzen lassen sich beispielsweise vorhandene Attribute einer Java-Klasse für weiteren Code aufbereiten.
    Vim: Mein bevorzugter Editor lässt sich über die Tastatur bedienen. Auch beim Navigieren können die Finger auf der Grundposition des Zehnfingersystems bleiben. Die Bedienung braucht Übung, weil viele Tasten eigene Befehle auslösen. Zum Beenden gehört beispielsweise der Befehl :q.
    Notepad++ und PSPad: Beide habe ich zusätzlich installiert. Wenn ich mit regulären Ausdrücken suche und ersetze, arbeite ich gern mit einer sichtbaren Vorschau und gehe die Treffer schrittweise durch.
    MarkdownPad: Während du Markdown schreibst, zeigt dir der Editor eine HTML-Vorschau. Markdown zeichnet Texte mit einer einfachen Syntax aus: Ein # kennzeichnet beispielsweise eine Überschrift, ein Sternchen kann einen Listenpunkt erzeugen. Auch Links und Bilder lassen sich einfügen.
    Excel: Mit Formeln kannst du größere Mengen Text bearbeiten. Ich erzeuge damit beispielsweise SQL-Anweisungen aus CSV-Daten, wenn eine Datenbank diese Dateien nicht direkt importieren kann. Ebenso lassen sich Texte ergänzen oder umformen. Das entsprechende Programm aus OpenOffice kann diese Aufgaben ebenfalls übernehmen.
    Markdown lässt sich in andere Formate umwandeln, darunter HTML und LaTeX. Ich schreibe damit auch für meinen Blog und mein Wiki. Da Markdown aus reinem Text besteht, kannst du Änderungen mit Git verfolgen.
    Quelltext verwalten und entwickeln
    Mit Git speichere ich die Entwicklung meines Quelltexts und meiner Markdown-Texte. Das dezentrale Versionsverwaltungssystem arbeitet lokal, sodass du dafür keine Serververbindung brauchst. Du kannst frühere Stände wiederherstellen und Änderungen zwischen Versionen vergleichen.
    posh-git: Die PowerShell-Erweiterung zeigt Informationen zu deinem Git-Repository direkt im Prompt an, etwa geänderte oder neue Dateien. Einstellungen können helfen, die Anzeige zu beschleunigen. Die Erweiterung ist für PowerShell gedacht.
    WinMerge: Dateien lassen sich visuell vergleichen und Änderungen zusammenführen. Dabei kannst du beispielsweise Leerraum oder Zeilenenden ignorieren. Per Shortcut überträgst du Inhalte zwischen den Seiten. WinMerge lässt sich als Merge-Werkzeug in Git einbinden.
    Bei der IDE richtet sich die Wahl nach deiner Programmiersprache. Für Java kommen beispielsweise Eclipse oder IntelliJ infrage; auch NetBeans wird genannt. Im .NET-Umfeld arbeite ich mit Visual Studio. Eine passende IDE ergänzt Code und zeigt Fehler früh an. Refactoring-Funktionen helfen dir, vorhandenen Code zu überarbeiten. Für häufige Funktionen lerne oder konfiguriere ich Shortcuts, damit ich sie direkt über die Tastatur erreiche.
    Wenn du Webanwendungen entwickelst, brauchst du einen Browser mit Entwicklungswerkzeugen. Ich verwende Firefox mit Erweiterungen. Auch Chrome bietet Unterstützung, beispielsweise um unterschiedliche Displaygrößen für responsive Websites nachzubilden. Internet Explorer beziehungsweise Edge werden ebenfalls als Möglichkeiten genannt.
    Software und Prozesse modellieren
    Mit Enterprise Architect erstelle ich Modelle für Software und Prozesse. Das kostenpflichtige Werkzeug unterstützt Entity-Relationship-Modelle sowie UML-Diagramme. Auch BPMN und EPK gehören zum Funktionsumfang.
    Aus Klassendiagrammen lässt sich Code erzeugen; vorhandener Code kann wiederum als Klassendiagramm dargestellt werden. Enterprise Architect unterstützt außerdem Code aus Zustandsdiagrammen für
    41 min
  • Zahlen und Zeichen (Lernzielkontrolle) – Anwendungsentwickler-Podcast #39
    Die Verarbeitung von Zahlen und Zeichen in Java wird in der neununddreißigsten Episode des Anwendungsentwickler-Podcasts behandelt.
    TL;DR
    Mit meiner Lernzielkontrolle zu Zahlen und Zeichen in Java kannst du dein Grundlagenwissen als IT-Azubi prüfen. Du erfährst, wie Zahlenliterale und Datentypen funktionieren, was bei Ganzzahldivision und Überläufen passiert und weshalb Gleitkommazahlen beim Rechnen ungenau sein können. Dazu kommen char und String, Escape-Sequenzen sowie der Zusammenhang zwischen Zeichen und Zahlenwerten. Für präzise Dezimalberechnungen steht dir BigDecimal zur Verfügung; bei primitiven Datentypen und ihren Wrapper-Klassen begegnen dir außerdem Boxing und Unboxing.
    Kapitelmarken
    [00:00:20] Lernzielkontrolle zu Zahlen und Zeichen
    [00:01:43] Zahlenliterale in verschiedenen Zahlensystemen
    [00:04:14] Ganzzahlige Datentypen und Wertebereiche
    [00:06:45] Standardtyp int und das Suffix L für long
    [00:08:26] Zahlen mit Unterstrichen lesbarer schreiben
    [00:10:03] Ganzzahldivision und Cast auf double
    [00:12:10] Überläufe bei ganzzahligen Datentypen
    [00:15:19] Gleitkommazahlen mit double und float
    [00:17:33] Ungenauigkeiten von Gleitkommazahlen
    [00:20:50] Präzise Dezimalberechnungen und BigDecimal
    [00:22:11] Genauigkeitsverlust beim Cast von double auf int
    [00:23:27] Einzelne Zeichen und Strings
    [00:24:29] Escape-Sequenzen für besondere Zeichen
    [00:29:05] Zeichenwerte, ASCII und Cäsar-Verschlüsselung
    [00:32:25] Primitive Datentypen, Wrapper und Boxing
    [00:34:13] Shownotes und Themenliste für die Abschlussprüfung
    [00:35:36] Mehrere Programmiersprachen kennenlernen
    [00:36:28] Kontakt, Feedback und Newsletter
    [00:38:06] Ausblick auf Werkzeuge für Entwickler:innen
    Inhalt
    Zahlen
    Welche Präfixe kennt Java zur Eingabe von Zahlen in verschiedenen Zahlensystemen?
    0b für Binär-, 0 für Oktal- und 0x für Hexadezimalzahlen.
    Welche ganzzahligen Datentypen gibt es in Java?
    byte (8bit), short (16bit), int (32bit), long (64bit).
    Was ist der Standarddatentyp für Ganzzahlen in Java?
    Integer.
    Wie zwingt man Java zur Verwendung eines anderen Datentyps für numerische Variablen?
    Mit den entsprechenden Suffixen (z.B. L für Long).
    Wie kann man sehr große Zahlen besser lesbar eingeben?
    Mit _ als Trennzeichen.
    Worauf muss man bei der Division zweier Integer-Werte achten?
    Das Ergebnis ist auch ein Integer, also ggfs. falsch.
    Was ist ein Overflow?
    Wenn eine numerische Variable einen Wert zugewiesen bekommt, der zu groß für ihren Wertebereich ist, "läuft sie über" und beginnt bei der kleinsten negativen Zahl weiterzuzählen.
    Was ist der Standarddatentyp für Dezimalzahlen in Java?
    Double.
    Wie gibt man eine Dezimalzahl in Java ein?
    Mit . als Tausendertrennzeichen.
    Warum könnte die mangelnde Präzision von Gleitkommazahlen ein Problem sein?
    Weil mathematische Berechnungen ggfs. ein falsches Ergebnis produzieren.
    Warum kann man einer Integer-Variablen keinen Double-Wert zuweisen?
    Weil das einen Genauigkeitsverlust zur Folge hätte.
    Zeichen
    Wie gibt man einen char in Java ein?
    In einfachen Anführungszeichen ('').
    Was ist ein String?
    Ein Datentyp, der beliebige alphanumerische Zeichen speichern kann.
    Wie schreibt man Strings in Java?
    In normale Anführungszeichen ("").
    Wie escapet man Zeichen in Java?
    Mit einem Backslash (\).
    Welche wichtigen besonderen Zeichen sollte man kennen?
    Zeilenumbruch \n und Tabstop \t.
    Wie hängen char und int zusammen?
    Man kann sie implizit ineinander umwandeln. Der Zahlwert steht für die ASCII-Position der Buchstaben.
    Was sind primitive Datentypen?
    Datentypen, die nur einen simplen Wert aufnehmen können und keine Methoden besitzen.
    Literaturempfehlungen
    2 Imperative Sprachkonzepte - Rheinwerk Computing :: Java ist auch eine Insel
    4 Der Umgang mit Zeichenketten - Rheinwerk Computing :: Java ist auch eine Insel
    The Java™ Tutorials
    *(direkt beim Rheinwerk-Verlag bestellen*)
    *(direkt beim Rheinwerk-Verlag bestellen*)
    Links
    Permalink zu dieser Podcast-Episode
    RSS-Feed des Podcasts
    Letzte Woche auf der Website: Liste möglicher Themen der IHK-Abschlussprüfung und Muss man mehr als eine Programmiersprache beherrschen?.
    Ascii Table - ASCII character codes and html, octal, hex and decimal chart conversion
    9.2 Wrapper-Klassen und Autoboxing - Rheinwerk Computing :: Java ist auch eine Insel
    Zusammenfassung
    Zahlen in Java schreiben
    Mit dieser Lernzielkontrolle schließe ich meine erste Reihe zu den Java-Grundlagen vorerst ab. Nach Variablen und logischen Operatoren kannst du hier dein Wissen über Zahlen und Zeichen prüfen.
    Im Quellcode kannst du ganze Zahlen in verschiedenen Zahlensystemen schreiben:
    | Zahlensystem | Schreibweise |
    | --- | --- |
    | Dezimal | Zahl ohne besonderes Präfix |
    | Binär | 0b vor der Zahl |
    | Oktal | führende 0 |
    | Hexadezimal | 0x vor der Zahl |
    Bei einer führenden Null interpretiert Java ein ganzzahliges Literal als Oktalzahl. Dort sind die Ziffern von 0 bis 7 erlaubt, weshalb eine enthaltene 8 oder 9 einen Compilerfehler verursacht. Hexadezimalzahlen können zusätzlich die Zeichen a bis f enthalten.
    Wenn du solche Werte mit println ausgibst, erscheint ihr Dezimalwert. Beispielsweise ergibt 0b01 bei der Ausgabe 1.
    Ganzzahlige Datentypen und Wertebereiche
    Für ganze Zahlen stehen dir vier primitive Datentypen zur Verfügung:
    | Datentyp | Bitlänge |
    | --- | --- |
    | byte | 8 Bit |
    | short | 16 Bit |
    | int | 32 Bit |
    | long | 64 Bit |
    Mit den 8 Bit eines byte lassen sich 256 verschiedene Werte darstellen. Sein Wertebereich reicht von -128 bis 127. Bei den ganzzahligen Datentypen liegt der kleinste negative Wert betragsmäßig jeweils um eins über dem größten positiven Wert, weil auch die Null einen Platz braucht.
    Ein int bietet insgesamt ungefähr 4,2 Milliarden verschiedene Werte, davon etwa 2,1 Milliarden im positiven Bereich. Für eine eigene positive ID für jeden Menschen auf der Erde reicht dieser Bereich daher nicht aus. Ein long bietet dafür genügend Platz. Eine IPv6-Adresse mit ihren 128 Bit überschreitet wiederum die Länge eines einzelnen long.
    Literale und lesbare Zahlen
    Ganzzahlige Literale haben standardmäßig den Typ int. Mit einem großen L am Ende, beispielsweise 75L, kennzeichnest du ein Literal als long. Bei großen Zahlen, die den Wertebereich von int überschreiten, brauchst du dieses Suffix.
    Durch Unterstriche zwischen Ziffern kannst du längere Zahlen leichter lesen. 1_000 steht für denselben Wert wie 1000, wobei Java die Unterstriche beim Verarbeiten ignoriert. Die Gruppen kannst du passend zum jeweiligen Wert wählen. Gerade bei Testwerten lässt sich so schneller erkennen, welche Zahl im Code steht.
    Division mit ganzen Zahlen
    Wenn beide Operanden ganzzahlig sind, liefert die Division ein ganzzahliges Ergebnis. Dabei wird der Nachkommateil abgeschnitten. Auch bei double d = 5 / 3; wird zunächst ganzzahlig gerechnet, sodass d anschließend den Wert 1.0 erhält.
    Für ein Ergebnis mit Nachkommastellen muss mindestens ein Operand als Gleitkommazahl vorliegen. Das erreichst du beispielsweise mit einem Cast: double d = (double) 5 / 3;.
    Überläufe
    Erhöhst du einen byte über seinen Maximalwert 127 hinaus, entsteht ein Overflow, also ein Überlauf. Beim nächsten Wert springt er auf -128.
    Am Bitmuster lässt sich der Übergang nachvollziehen: Aus 01111111 wird durch das Erhöhen um eins 10000000. Dieses Muster steht beim byte für den kleinsten negativen Wert. Auch bei den anderen ganzzahligen Datentypen setzt sich die Folge nach dem größten positiven Wert beim kleinsten negativen Wert fort. Wiederholtes Erhöhen durchläuft den Wertebereich im Kreis.
    Gleitkommazahlen und präzises Rechnen
    Für ein Literal mit Nachkommastellen ist double der Standardtyp. Im Java-Code schreibst du den Dezimaltrenner als Punkt, etwa 12.37. Mit einem angehängten f kennzeichnest du den Wert als float, beispielsweise 12.37f.
    Da float weniger Speicher beansprucht, kommt dieser Typ infrage, wenn sein Wertebereich für deine Aufgabe ausreicht. In meinen bisherigen Programmen habe ich mit double gearbeitet.
    Woher Ungenauigkeiten kommen
    Gleitkommazahlen bilden Werte mithilfe von Zweierpotenzen ab. Hinter dem Binärkomma stehen dabei Bruchteile wie ein Halb oder ein Viertel; jede weitere Stelle halbiert den Stellenwert erneut.
    Ein Wert wie 0.1 lässt sich damit nur angenähert speichern. Wenn du ihn zehnmal addierst, kann deshalb ein Ergebnis knapp unter 1 entstehen. Solche Abweichungen ergeben sich bereits aus den gespeicherten Werten und wirken sich beim Rechnen aus.
    Für präzise Dezimalberechnungen, etwa bei Rechnungsbeträgen oder in Versicherungsanwendungen, steht dir in Java BigDecimal zur Verfügung. In C# heißt der entsprechende Typ Decimal. Prüfe für deine Programmiersprache, welcher Datentyp die geforderte Genauigkeit ermöglicht.
    Als ich meine ersten Berechnungen für eine Versicherung in C# mit double geschrieben hatte, musste ich nach den fehlerhaften Ergebnissen die betreffenden Werte durch Decimal ersetzen. Dafür brauchte ich fast einen halben Tag.
    Werte ausdrücklich umwandeln
    Bei int a = 2.7; meldet der Compiler einen Fehler, weil beim Wechsel von double zu int der Nachkommateil verloren geht. Mit int a = (int) 2.7; erlaubst du diesen Schritt ausdrücklich. Das Ergebnis ist 2, da der Cast den Nachkommateil abschneidet.
    Ein solcher Cast macht kenntlich, dass du den möglichen Genauigkeitsverlust bewusst akzeptierst.
    Zeichen und Zeichenketten
    Ein einzelnes Zeichen schreibst du mit einfachen Anführungszeichen, beispielsweise char zeichen = 'A';. Für Zeichenketten steht dir String zur Verfügung, etwa String text = "Hallo";. Darin können Buchstaben ebenso wie Ziffern, Umlaute oder Sonderzeichen stehen.
    Escape-Sequenzen
    Für besondere Zeichen innerhalb eines Literals setzt du einen Backslash vor das folgende Zeichen:
    | Escape-Sequenz | Bedeutung |
    | --- | --- |
    | \n | Zeilenumbruch |
    | \t | Tabulator |
    | \\ | Backslash als Zeichen |
    Wenn du beispielsweise einen Windows-Dateipfad im Quellcode schreibst, brauchst du für jeden enthaltenen Backslash die Sch
    40 min
  • Variablen und Operatoren (Lernzielkontrolle) – Anwendungsentwickler-Podcast #38
    Eine kurze Einführung in alles rund um Variablen und Operatoren gibt es in der achtunddreißigsten Episode des Anwendungsentwickler-Podcasts.
    TL;DR
    Mit meiner Lernzielkontrolle zu Variablen und Operatoren in Java kannst du Grundlagen für deine IT-Ausbildung wiederholen. Variablen sind benannte Speicherbereiche, deren Datentyp bestimmt, welche Werte sie aufnehmen können; dazu gehören Regeln für Namen und Gültigkeitsbereiche sowie das Deklarieren, Initialisieren und Casten. Bei den Operatoren geht es um Wertzuweisungen und Berechnungen, außerdem um das Verketten von Strings und logische Ausdrücke. Beispiele zeigen dir, wie Modulo funktioniert und wann Java Teile eines logischen Ausdrucks überspringt.
    Kapitelmarken
    [00:00:01] Einstieg in die Lernzielkontrolle
    [00:00:41] Persönliche Ansprache und Feedback zum Gewinnspiel
    [00:02:55] Variablen und Operatoren im Java-Tutorial
    [00:04:28] Was ist eine Variable?
    [00:05:43] Java-Bezeichner und Namenskonventionen
    [00:07:48] Datentypen und statische Typisierung
    [00:09:20] Variablen deklarieren
    [00:10:16] Variablen initialisieren
    [00:11:50] Literale im Quelltext
    [00:12:44] Gültigkeitsbereiche lokaler Variablen
    [00:14:42] Instanzvariablen auf Klassenebene
    [00:15:58] Datentypen mit einem Cast umwandeln
    [00:18:24] Werte mit dem Zuweisungsoperator zuweisen
    [00:19:52] Arithmetische Operatoren
    [00:20:34] Modulo und gerade Tabellenzeilen
    [00:22:20] Strings verketten
    [00:23:17] Zusammengesetzte Zuweisungsoperatoren
    [00:24:50] Unäre Operatoren und Präfix oder Postfix
    [00:26:36] Gleichheit und Ungleichheit prüfen
    [00:27:29] Logische Operatoren
    [00:28:43] Boolesche Variablen
    [00:29:28] Lazy Evaluation logischer Ausdrücke
    [00:31:24] Mathematische Funktionen der Klasse Math
    [00:32:54] Prüfungsbezug der Grundlagen
    [00:33:59] Java-Bücher und Affiliate-Links
    [00:34:58] Shownotes, Prüfungsthemen und Probleme mit null
    [00:36:11] Feedback und Newsletter
    [00:37:13] Ausblick auf weitere Ausbildungsthemen
    Inhalt
    Variablen
    Was ist eine Variable?
    Ein benannter Speicherbereich des Computers.
    Wie werden Variablen in Java benannt? Welche Zeichen sind erlaubt?
    Nach Konvention in Camel Case. Zahlen, Buchstaben, Dollarzeichen und Unterstrich sind erlaubt.
    Was ist ein Datentyp?
    Ein Datentyp definiert, welche Werte eine Variable aufnehmen kann (z.B. Zahlen, Zeichen).
    Wie deklariert man eine Variable in Java?
    Datentyp + Name (z.B. String text).
    Was bedeutet es, eine Variable zu initialisieren?
    Die erste Wertzuweisung einer Variablen heißt Initialisierung.
    Was ist ein Literal?
    Ein fixer Wert (z.B. Zahl/Text), der z.B. einer Variablen zugewiesen werden kann.
    Was ist der Gültigkeitsbereich (scope) einer Variablen?
    Eine Variable ist ab ihrer Deklaration nur im aktuellen Block und allen untergeordneten Blöcken gültig (Ausname: Instanzvariablen).
    Was ist ein Cast?
    Eine explizite Typumwandlung.
    Operatoren
    Was mach der Operator = in Java?
    Zuweisungsoperator.
    Wie führt man grundlegende arithmetische Operationen in Java aus?
    Die Operatoren +, -, *, / und % (Modulo) sind direkt verfügbar.
    Was macht der Modulo-Operator?
    Ermittelt den Rest der ganzzahligen Division.
    Was ist Konkatenation und welcher Operator wird dafür verwendet?
    Das Zusammenfügen von Strings mit dem Operator +.
    Wie kann man häufig benötigte arithmetische Operationen auf Variablen abkürzen?
    Mit den Operatoren +=, -=, *=, /= und %=.
    Was sind unäre Operatoren?
    Operatoren mit nur einem Operanden (z.B. ++).
    Was ist der Unterschied zwischen den Operatoren = und ==?
    Zuweisungs- und Vergleichsoperator.
    Was sind die Operatoren für "gleich" und "ungleich"?
    == und !=.
    Was sind die Operatoren für und, oder und exklusives oder?
    &&, || und ^.
    Welche Werte kann eine boolesche Variable annehmen?
    true und false.
    Was bedeutet es, wenn logische Ausdrücke lazy ausgewertet werden?
    Wenn ein logischer Ausdruck seinen Wert nicht mehr ändern kann, werden noch folgende Teilausdrücke nicht mehr ausgewertet.
    Wo sind weiterführende mathematische Operationen in Java zu finden?
    Im Package Math.
    Literaturempfehlungen
    2.3 Datentypen, Typisierung, Variablen und Zuweisungen - Rheinwerk Computing :: Java ist auch eine Insel - 2 Imperative Sprachkonzepte
    2.4 Ausdrücke, Operanden und Operatoren - Rheinwerk Computing :: Java ist auch eine Insel - 2 Imperative Sprachkonzepte
    The Java™ Tutorials
    *(direkt beim Rheinwerk-Verlag bestellen*)
    *(direkt beim Rheinwerk-Verlag bestellen*)
    Links
    Permalink zu dieser Podcast-Episode
    RSS-Feed des Podcasts
    Letzte Woche auf der Website: Themen der letzten IHK-Prüfungen und Beispiele für Projektarbeiten und Der schlimmste Fehler in der Informatik.
    In Javascript, can I use a variable before it is declared? - Stack Overflow
    George Boole – Wikipedia
    Lazy Evaluation – Wikipedia
    Zusammenfassung
    Variablen und Operatoren in der IT-Ausbildung
    In meinem Java-Tutorial für IT-Azubis stehen Variablen und Operatoren am Anfang, bevor ich mit der Objektorientierung einsteige. Wenn dabei Strings vorkommen, berührt das bereits Objekte und Klassen. Bei einem neuen Tutorial würde ich deshalb direkt mit der Objektorientierung beginnen. Die folgenden Grundlagen gehören zu meiner Lernzielkontrolle und können auch in einer Abschlussprüfung vorkommen.
    Was eine Variable ist
    Eine Variable ist ein benannter Speicherbereich des Computers. Über ihren Namen kannst du auf gespeicherte Werte zugreifen. Ein sprechender Name wie mehrwertsteuersatz macht verständlich, wofür der Wert steht, und erspart dir, mit Speicheradressen zu arbeiten.
    Wie du eine Variable nennst, entscheidest du als Entwickler:in innerhalb der Regeln deiner Programmiersprache.
    Variablennamen in Java
    Für Bezeichner stehen dir Buchstaben und Ziffern sowie das Dollarzeichen und der Unterstrich zur Verfügung. Eine Ziffer darf erst nach dem ersten Zeichen stehen. Ein Bindestrich ist als Teil des Namens ausgeschlossen, weil Java ihn als Operator interpretiert.
    Ich empfehle dir für gewöhnliche Variablennamen camelCase mit Buchstaben und gegebenenfalls Ziffern. Dabei beginnt das erste Wort klein, während jedes weitere Wort mit einem Großbuchstaben anfängt. Diese Konvention gilt auch für Methodennamen. Klassennamen beginnen bei der Pascal-Schreibweise mit einem Großbuchstaben.
    Dollarzeichen und Unterstriche lasse ich bei gewöhnlichen Java-Variablennamen weg. Unterstriche trennen Wörter bei der Schreibweise Snake Case; in PHP beginnt eine Variable mit einem Dollarzeichen.
    Welche Werte eine Variable aufnehmen kann
    Der Datentyp legt fest, welche Werte du in einer Variablen speichern kannst. Dazu gehören beispielsweise Zahlen, Zeichenketten und Wahrheitswerte. Zahlentypen heißen in Java unter anderem int, double und long.
    Java ist statisch typisiert. Wenn du einer Variablen einen Datentyp gibst, müssen die später zugewiesenen Werte dazu passen. Eine int-Variable nimmt ganzzahlige Werte auf. Bei einer direkten Zuweisung einer Kommazahl oder Zeichenkette meldet der Compiler einen Typfehler.
    Eine Variable deklarieren
    Beim Deklarieren legst du Datentyp und Namen fest. In Java steht der Typ vor dem Namen, und ein Semikolon beendet die Anweisung:
    java
    String text;
    Damit ist text als Variable vom Typ String bekannt und kann eine Zeichenkette aufnehmen.
    Den ersten Wert zuweisen
    Wenn eine Variable zum ersten Mal einen Wert erhält, wird sie initialisiert. Häufig geschieht das direkt beim Deklarieren:
    java
    String text = "abc";
    In dieser Zeile bekommt text ihren Namen und Datentyp sowie den ersten Wert. Du kannst diese Schritte auch getrennt ausführen, wenn dein Anwendungsfall das vorsieht.
    Literale im Quelltext
    Ein Literal ist ein konkreter, fest im Quelltext stehender Wert, etwa 19 oder "abc". Im Beispiel wird text mit dem Literal "abc" initialisiert. Solche Werte kannst du auch direkt an eine Methode übergeben oder einer Konstante zuweisen.
    Wo du auf eine Variable zugreifen kannst
    Eine lokale Variable ist ab der Stelle gültig, an der du sie deklarierst. Ihr Gültigkeitsbereich umfasst den aktuellen Block und dessen untergeordnete Blöcke.
    Wenn du vor einer for-Schleife eine Variable deklarierst, kannst du innerhalb der Schleife darauf zugreifen. Bei einer Variablen, die du im Schleifenblock deklarierst, endet der Gültigkeitsbereich mit diesem Block. Probiere solche Fälle im Quelltext aus, damit du nachvollziehen kannst, welche Zugriffe erlaubt sind.
    Instanzvariablen, auch Objektvariablen genannt, stehen direkt auf Klassenebene. Auf sie können die Instanzmethoden der Klasse unabhängig davon zugreifen, an welcher Stelle der Klasse sie deklariert wurden. Ich empfehle dir, diese Variablen gesammelt an den Anfang der Klasse zu schreiben, damit du sie leichter findest.
    Einen Datentyp mit einem Cast umwandeln
    Ein Cast wandelt einen Typ ausdrücklich in einen anderen um. Dafür schreibst du den Zieltyp in runden Klammern vor den Ausdruck:
    java
    (int) d
    Wenn d eine double-Variable ist, erhältst du auf diese Weise einen ganzzahligen Wert. Die Nachkommastellen werden abgeschnitten, wodurch Genauigkeit verloren geht. Als Entwickler:in entscheidest du dich mit dem Cast ausdrücklich für diesen Schritt.
    Auch bei Vererbung und Interfaces kommen Casts vor. Wenn Auto von Fahrzeug erbt, lässt sich ein Auto als Fahrzeug behandeln. Ein ausdrücklicher Cast ist in diesem Beispiel durch die Polymorphie bereits entbehrlich.
    Werte zuweisen und rechnen
    Mit dem Zuweisungsoperator = erhält die Variable auf der linken Seite den Wert des Ausdrucks auf der rechten Seite. Bei a = a + 1; wird zunächst a + 1 berechnet und das Ergebnis anschließend in a gespeichert.
    Für die Grundrechenarten stehen folgende Operatoren bereit:
    | Operator | Bedeutung |
    | --- | --- |
    | + | Addieren |
    | - | Subtrahieren |
    | * | Multiplizieren |
    | / | Dividieren |
    | % | Rest einer Division bestimmen |
    Dabei gelten Punkt-vor-Strich und die Reihenfolge, die du durch Klammern vorgibst.
    Modulo
    Der Modulo-Operator % liefert den Rest der ganzzahligen Division....
    39 min
  • Allgemeine Fragen zur Programmierung (Lernzielkontrolle) – Anwendungsentwickler-Podcast #37
    Einige allgemeine Begriffe rund um die Programmierung sind das Thema der siebenunddreißigsten Episode des Anwendungsentwickler-Podcasts.
    TL;DR
    Mit meinen Fragen zu allgemeinen Programmierbegriffen kannst du als IT-Azubi dein Grundlagenwissen prüfen. Du erfährst, wie viele Werte sich mit Bits und Bytes darstellen lassen und welche Aufgaben Compiler sowie Unit-Tests übernehmen. Dazu kommen die fachliche Domäne eines Programms und Begriffe wie Ausdruck, Anweisung und Block. An Java-Beispielen zeige ich dir außerdem, wie Kommentare, die main-Methode und Schreibkonventionen funktionieren und warum einheitlich formatierter Code leichter zu pflegen ist.
    Kapitelmarken
    [00:00:01] Einführung in die Lernzielkontrolle
    [00:01:05] Gewinnspiel und Unterstützung des Podcasts
    [00:02:17] Themen der allgemeinen Programmiergrundlagen
    [00:02:47] Bits und mögliche Bitmuster
    [00:04:55] Bytes und der Zahlenbereich von 0 bis 255
    [00:06:00] Compile-Zeit und Laufzeit
    [00:08:18] Fachliche Fehler und Unit-Tests
    [00:09:49] Die fachliche Domäne eines Programms
    [00:13:11] Ausdrücke und ihre Werte
    [00:14:26] Anweisungen und Semikolons
    [00:16:07] Blöcke in Java
    [00:17:17] Kommentare und ihre Schreibweisen
    [00:18:27] Die main-Methode als Einstiegspunkt
    [00:19:46] Case-Sensitivity und Groß- und Kleinschreibung
    [00:20:53] CamelCase und weitere Schreibkonventionen
    [00:23:32] Klammerarten und englische Bezeichnungen
    [00:26:28] Code im Team einheitlich formatieren
    [00:29:16] Javadoc und hilfreiche Kommentare
    [00:32:08] Kontakt, Shownotes und Lasten- und Pflichtenhefte
    [00:33:01] Live-Evaluierung in der IDE
    [00:33:42] Links einsenden, Feedback geben und abonnieren
    [00:35:08] Ausblick auf die nächste Lernzielkontrolle
    Inhalt
    Was ist ein Bit?
    Die kleinste Informationseinheit in der Informatik.
    Was ist ein Byte?
    Acht Bit.
    Was ist der Unterschied zwischen Kompilierzeit (compile time) und Laufzeit (runtime)?
    Kompilierzeit ist die Zeit des Programmierens, Laufzeit die Zeit der Programmausführung.
    Was ist die Domäne eines Programms?
    Das fachliche Aufgabengebiet des Programms, aus dem sich z.B. die Nomenklatur ableiten lässt.
    Was ist ein Ausdruck?
    Ein Ausdruck (expression) ist ein Konstrukt aus Variablen, Operatoren und Methodenaufrufen, das zu einem einzelnen Wert ausgewertet wird.
    Was ist eine Anweisung?
    Eine Anweisung (statement) ist eine vollständig ausführbare Einheit. Es gibt drei Arten von Statements: Deklarations-, Kontrollfluss- und Ausdruckstatements. Die meisten Statements werden mit Semikolons beendet.
    Was ist ein Block?
    Ein Block ist eine Menge von 0 oder mehr Statements, die durch geschweifte Klammern umschlossen sind.
    Wie definiert man einen Block in Java?
    Mit geschweiften Klammern.
    Was ist ein Kommentar und wie schreibt man einen solchen in Java?
    Kommentare werden vom Compiler ignoriert. Einzeilige Kommentare werden mit // eingeleitet, mehrzeilige stehen zwischen /* und */.
    Was ist die main-Methode?
    Der zentrale Einstiegspunkt in jedes Java-Programm.
    Ist Java case-sensitive?
    Ja.
    Was bedeutet Camel Case?
    Camel Case ist eine Art, Bezeichner zu benennen, bei der mehrere Wörter aneinander geschrieben werden wobei neue Wörter mit großem Anfangsbuchstaben beginnen.
    Welche Klammern gibt es in Java und wie heißen sie auf Englisch?
    Runde Klammern: () parentheses, eckige Klammern: [] brackets, geschweifte Klammern: {} curly brackets oder braces, spitze Klammern: <> angle brackets.
    Warum ist es wichtig, seinen Code einheitlich zu formatieren?
    Damit er leichter lesbar und dadurch verständlicher ist.
    Wie stellt man sicher, dass alle Entwickler im Team die gleiche Code-Formatierung benutzen?
    Ex-/Import der Einstellungen der IDE.
    Wie dokumentiert man seinen Java-Code?
    Mit JavaDoc-Kommentaren.
    Literaturempfehlungen
    Rheinwerk Computing :: Java ist auch eine Insel - 1 Java ist auch eine Sprache
    The Java™ Tutorials
    *(direkt beim Rheinwerk-Verlag bestellen*)
    *(direkt beim Rheinwerk-Verlag bestellen*)
    Links
    Permalink zu dieser Podcast-Episode
    RSS-Feed des Podcasts
    Letzte Woche auf der Website: Lasten- und Pflichtenheft in der Projektdokumentation.
    Expressions, Statements, and Blocks (The Java™ Tutorials > Learning the Java Language > Language Basics)
    Binnenmajuskel – Wikipedia
    Javadoc Tool Home Page
    Coding Without Comments
    Zusammenfassung
    Bits und Bytes
    Mit meinen Fragen kannst du prüfen, wie vertraut dir die allgemeinen Begriffe aus der Programmierung sind. Viele davon begegnen dir in verschiedenen Programmiersprachen; einige Beispiele beziehen sich auf Java.
    Ein Bit ist die kleinste Informationseinheit der Informatik und kann die Werte 0 oder 1 annehmen.
    Mit n Bits lassen sich 2ⁿ verschiedene Bitmuster darstellen. Jedes zusätzliche Bit verdoppelt die Zahl der Möglichkeiten.
    Zwei Bits ergeben die vier Kombinationen 00, 01, 10 und 11. Bei 16 Bits sind es 65.536 Möglichkeiten.
    Ein Byte besteht aus acht Bits. Damit erhältst du 256 Bitmuster, mit denen sich die ganzen Zahlen von 0 bis 255 darstellen lassen. Die Null zählt dabei als eigener Wert.
    Compile-Zeit, Laufzeit und Tests
    Wenn der Compiler deinen Quelltext übersetzt, befindet sich das Programm in der Compile-Zeit. Dabei entsteht Maschinencode beziehungsweise bei Java Bytecode. Der Compiler prüft unter anderem die Syntax und die Datentypen. Beispielsweise erkennt er, wenn du einen String einer int-Variablen zuweisen möchtest.
    Sobald dein Programm ausgeführt wird, beginnt die Laufzeit. Welche Werte eine Variable dann enthält, hängt beispielsweise von Eingaben ab. Wird bei einer Division zur Laufzeit eine Null als Divisor übergeben, kann ein Laufzeitfehler auftreten.
    Auch fachlich falsche Berechnungen können in syntaktisch gültigem Code stehen. Im Beispiel wird auf einen Rechnungsbetrag mit 20 Prozent Mehrwertsteuer gerechnet, obwohl dafür 19 Prozent vorgesehen sind. Der Compiler akzeptiert den Zahlenwert.
    Mit meinen Unit-Tests führe ich Programmcode aus und prüfe dessen Verhalten. Dabei werden etwa Objekte erzeugt oder Methoden aufgerufen. Solche Tests können fachliche Fehler aufdecken. Für deine Software brauchst du sowohl die Prüfungen des Compilers als auch Tests, die den Code zur Laufzeit ausführen.
    Die fachliche Domäne
    Bei Software für eine Autowaschanlage gehören Begriffe wie Auto oder Wasser zum fachlichen Aufgabengebiet. Dieses Gebiet heißt Domäne. Die Namen im Code sollten aus diesem Gebiet stammen, damit du die fachliche Aufgabe auch an Variablen und Methoden erkennen kannst.
    Ein Begriff kann je nach Domäne eine eigene Bedeutung haben. Ein Vertrag über regelmäßige Autowäschen beschreibt andere Leistungen als ein Versicherungsvertrag, über den Arztrechnungen erstattet werden.
    Wenn du als Softwareentwickler:in in einer neuen Branche arbeitest, musst du dich in deren Fachgebiet einarbeiten. Dazu gehört, die Anforderungen und geltenden Regeln zu verstehen. Kläre mit deinem/deiner Kund:in, was ein verwendeter Begriff konkret bedeutet.
    Ausdruck, Anweisung und Block
    Bei int a = 5 + 7; wird 5 + 7 zu einem einzelnen Wert ausgewertet: 12. Dieser Teil ist ein Ausdruck, auf Englisch Expression. Ausdrücke können beispielsweise Variablen und Operatoren enthalten, ebenso Methodenaufrufe.
    Die gesamte Zeile ist eine Anweisung, auf Englisch Statement. Sie bildet eine vollständig ausführbare Einheit und deklariert hier eine Variable, die zugleich den Wert 12 erhält.
    Bei Anweisungen werden folgende Arten behandelt:
    Deklarationsanweisungen legen beispielsweise eine Variable an.
    Kontrollflussanweisungen bestimmen, welcher Code ausgeführt wird. Eine if-Anweisung ist eine Verzweigung.
    Ausdrucksanweisungen führen einen Ausdruck als Anweisung aus.
    Viele Anweisungen enden in Java mit einem Semikolon. Eine if-Anweisung mit einem Block endet mit dessen schließender Klammer.
    Ein Block umfasst null oder mehr Anweisungen und wird in Java durch geschweifte Klammern {} begrenzt. Damit kannst du mehrere Anweisungen zusammenfassen, die beispielsweise bei einer erfüllten if-Bedingung gemeinsam ausgeführt werden. Auch ein leerer Block ist möglich.
    Kommentare und die main-Methode
    Wenn du Text als Kommentar kennzeichnest, ignoriert der Compiler ihn. Ich kommentiere beispielsweise vorübergehend Teile meines Codes aus, um etwas auszuprobieren.
    In Java gibt es zwei grundlegende Schreibweisen:
    // beginnt einen einzeiligen Kommentar.
    /* ... */ umschließt einen mehrzeiligen Kommentar.
    Beim Start eines Java-Programms dient die main-Methode als zentraler Einstiegspunkt. Ihre hier behandelte Form lautet public static void main(String[] args). Dort steht der Code, der beim Programmstart aufgerufen wird. Meinen IT-Azubis gebe ich diese Schreibweise zu Beginn vor; die Bedeutung von Modifizierern wie static folgt später mit dem Hintergrund zur Objektorientierung.
    Groß- und Kleinschreibung sowie Namen
    Schreibst du in Java buch und Buch, entstehen unterschiedliche Bezeichner. Java ist case-sensitive, achtet also auf Groß- und Kleinschreibung. Als weiteres Beispiel wird das Linux-Dateisystem genannt, in dem entsprechend benannte Dateien im selben Ordner liegen können.
    Für Namen, die aus mehreren Wörtern bestehen, begegnen dir verschiedene Schreibweisen:
    Bei CamelCase beginnt der Name klein, jedes weitere Wort startet mit einem Großbuchstaben: meineTolleVariable. Das ist die hier behandelte Konvention für Java-Variablen.
    PascalCase beginnt bereits das erste Wort groß: MeineTolleVariable.
    Bei SnakeCase trennen Unterstriche die Wörter: meine_tolle_variable. Diese Konvention wird beispielsweise in Ruby verwendet.
    Da Java in Bezeichnern keine Leerzeichen erlaubt, machen solche Schreibweisen die Wortgrenzen sichtbar. Halte dich an die vereinbarten Konventionen deiner Sprache und deines Teams. Nachträgliches Umbenennen kann umfangreiche Änderungen in der Versionsverwaltung verursachen.
    Klammern und ihre englischen Namen
    Beim Lesen englischer Fachtexte helfen dir diese Bezeichnungen:
    | Klammern | Englischer Name | Beispiel für Java |
    | --- | --- | --- |
    ...
    37 min
  • Java (Lernzielkontrolle) – Anwendungsentwickler-Podcast #36
    Einige allgemeine Einstiegsfragen zur Lernzielkontrolle rund um Java sind das Thema der sechsunddreißigsten Episode des Anwendungsentwickler-Podcasts.
    TL;DR
    Anhand meiner Lernzielkontrolle zu Java gehe ich mit dir die Grundlagen durch, die du als Fachinformatiker:in Anwendungsentwicklung kennen solltest. Du erfährst, wie aus Quellcode plattformunabhängiger Bytecode entsteht und welche Aufgaben die Java-Laufzeitumgebung und das JDK übernehmen. Dazu kommen die Hilfen einer IDE wie Eclipse sowie die Gemeinsamkeiten von Java und .NET. Java lässt sich als allgemeine, objektorientierte Sprache der dritten Generation einordnen, die kompiliert wird und statisch sowie stark typisiert ist.
    Kapitelmarken
    [00:00:01] Einstieg in die Lernzielkontrolle zu Java
    [00:00:55] Java als Einstiegssprache und Fragen im Fachgespräch
    [00:02:08] Gewinnspiel für Feedback zum Abschlussprojekt
    [00:03:54] Quellcode und Maschinencode
    [00:05:49] Compiler und Decompiler
    [00:07:18] Bytecode und plattformunabhängige Programme
    [00:09:53] Java als Programmiersprache und Plattform
    [00:12:33] JRE und Java Virtual Machine
    [00:13:49] Java Development Kit
    [00:15:18] Java mit Texteditor und Kommandozeile schreiben
    [00:16:26] Hilfen einer integrierten Entwicklungsumgebung
    [00:18:36] Eclipse und weitere Java-IDEs
    [00:20:18] Eclipse-Plugins und Tastenkombinationen
    [00:21:07] Gemeinsamkeiten von Java und .NET
    [00:23:29] Java als General Purpose Language
    [00:24:20] Generationen von Programmiersprachen
    [00:26:56] Java kompilieren
    [00:27:20] Statische und starke Typisierung
    [00:28:47] C-ähnliche Syntax
    [00:29:39] Objektorientierung in Java
    [00:30:18] Shownotes und Java-Literatur
    [00:31:04] Unterstützung über Affiliate-Links
    [00:31:50] Weitere Beiträge zur IT-Ausbildung
    [00:32:14] Kontakt und Podcast abonnieren
    [00:33:05] Newsletter und Checklisten
    [00:33:31] Ausblick auf weitere Grundlagen des Programmierens
    Inhalt
    Was sind Quellcode und Maschinencode?
    Quellcode wird vom Entwickler geschrieben (menschenlesbar). Maschinencode wird vom Computer ausgeführt.
    Was ist ein Compiler und was macht er?
    Übersetzt Quellcode in Maschinencode.
    Was ist Bytecode?
    Plattformunabhängiger Programmcode, der von einer virtuellen Maschine ausgeführt werden kann.
    Was ist Java?
    Eine Programmiersprache und -plattform.
    Was ist die JRE?
    Die Java Runtime Environment, die Laufzeitumgebung für Java-Programme.
    Was ist die JVM?
    Die Java Virtual Machine, der Teil des JRE, der die Programme ausführt.
    Was ist das JDK?
    Das Java Development Kit, das Werkzeuge zum Erstellen von Java-Programmen enthält.
    Was ist eine IDE?
    Eine Integrated Development Environment macht es dem Entwickler einfach, Programme zu erstellen, indem z.B. der Compiler der Programmiersprache automatisch ausgeführt wird und die Syntax bei der Eingabe geprüft wird.
    Was ist Eclipse?
    Eclipse ist ein verbreitetes IDE für Java.
    Was haben Java und .NET gemeinsam?
    Beides sind verbreitete Plattformen für die Softwareentwicklung, die auf dem Prinzip von Bytecode arbeiten.
    Welche Eigenschaften hat Java?
    General Purpose Language
    Sprache der dritten Generation
    wird kompiliert
    statisch typisiert
    stark typisiert
    C-ähnlich (Klammern)
    objektorientiert
    Literaturempfehlungen
    Rheinwerk Computing :: Java ist auch eine Insel - 1 Java ist auch eine Sprache
    The Java™ Tutorials
    *(direkt beim Rheinwerk-Verlag bestellen*)
    *(direkt beim Rheinwerk-Verlag bestellen*)
    Links
    Permalink zu dieser Podcast-Episode
    RSS-Feed des Podcasts
    Letzte Woche auf der Website: Muss die Projektbearbeitungszeit (70 Stunden) wirklich genau eingehalten werden? und Verkürzung der Ausbildung
    Literaturempfehlungen für (angehende) Java-Entwickler - Anwendungsentwickler-Podcast #35
    Objektorientierung - Häufige Fragen im Fachgespräch - Anwendungsentwickler-Podcast #2
    Meine Top 5 Eclipse-Plugins
    Java-Laufzeitumgebung – Wikipedia
    Java Virtual Machine – Wikipedia
    Java Development Kit – Wikipedia
    Starke Typisierung – Wikipedia
    General Purpose Language – Wikipedia
    Third-generation programming language - Wikipedia, the free encyclopedia
    Zusammenfassung
    Java-Grundlagen für deine Ausbildung
    Nachdem meine IT-Azubis bestimmte Inhalte gelernt haben, gehe ich mit ihnen Fragen durch, um zu prüfen, was hängen geblieben ist. Beim Einstieg ins Programmieren arbeite ich mit Java, das auch an vielen Berufsschulen und Hochschulen als Lehrsprache dient. Die Fragen behandeln zunächst die Grundlagen der Sprache und ihrer Plattform. Im IHK-Fachgespräch können solche Fragen vorkommen; dort werden auch tiefergehende Themen wie Generics angesprochen.
    Quellcode und ausführbarer Code
    Als Entwickler:in schreibst du Quellcode, auch Quelltext oder Sourcecode genannt, in einer Programmiersprache. Dabei bestimmt deren Syntax, wie du deine Lösung ausdrückst. Menschen können diesen Text lesen.
    Die CPU führt Maschinencode aus, der aus binären Befehlen besteht und auf eine bestimmte Rechnerarchitektur zugeschnitten ist. Ein Compiler übersetzt Quellcode in einen Zielcode, der zur jeweiligen Plattform passt.
    Mit einem Decompiler lässt sich aus ausführbarem Code wieder Quellcode erzeugen. Dabei können unterschiedliche Schreibweisen zum selben Maschinencode führen, etwa eine for-Schleife und eine while-Schleife. Der Decompiler kann deshalb nur eine mögliche Fassung rekonstruieren.
    Bytecode und die Java-Plattform
    Wenn du Java-Quellcode kompilierst, entstehen aus .java-Dateien .class-Dateien mit Bytecode. Dieser plattformunabhängige Code wird von einer virtuellen Maschine ausgeführt. Auf dem Zielgerät muss dafür eine passende Laufzeitumgebung installiert sein.
    So kannst du denselben Bytecode auf verschiedenen Betriebssystemen ausführen, etwa unter Windows oder Linux. In einer Class-Datei lassen sich teilweise noch Zeichenketten erkennen, obwohl ihr Inhalt für die virtuelle Maschine bestimmt ist.
    Mit Java kannst du Programme schreiben; zur Java-Plattform gehören außerdem die Komponenten, auf denen diese Programme laufen. Auch andere Sprachen können Bytecode für die Java Virtual Machine erzeugen. Beispiele dafür sind Scala und Clojure. Über JRuby steht auch Ruby auf der Java-Plattform zur Verfügung. Dafür braucht eine Sprache einen Compiler, der passenden Bytecode erzeugt.
    Was JRE, JVM und JDK übernehmen
    JRE, Java Runtime Environment: Auf deinem Zielgerät stellt diese Laufzeitumgebung die Komponenten bereit, die ein Java-Programm zum Laufen braucht. Dazu gehören die JVM und die Klassenbibliotheken mit ihren Typen und Funktionen.
    JVM, Java Virtual Machine: Innerhalb der JRE lädt sie den Bytecode und führt ihn aus. Dabei werden Befehle erzeugt, die der jeweilige Prozessor verarbeiten kann.
    JDK, Java Development Kit: Wenn du selbst Java-Programme schreibst, erhältst du damit die erforderlichen Werkzeuge. Enthalten sind der Compiler und beispielsweise Javadoc, mit dem du deinen Code dokumentieren kannst.
    Zum Zeitpunkt der Folge ließen sich JRE und JDK kostenfrei bei Oracle herunterladen.
    Java schreiben und mit einer IDE arbeiten
    Du kannst deinen Java-Code in einem Texteditor schreiben und anschließend über die Kommandozeile mit javac kompilieren. Aus der .java-Datei entsteht dabei eine .class-Datei, die du mit java ausführen kannst. Beim Schreiben musst du auf die Syntax achten, einschließlich Groß- und Kleinschreibung sowie der Satzzeichen.
    Eine IDE, ausgeschrieben Integrated Development Environment, hilft dir während des Programmierens:
    Während du tippst, markiert sie Syntaxfehler, etwa ein fehlendes Semikolon.
    Über Vorschläge findest du Methoden und die benötigten Parameter.
    Lange Namen lassen sich automatisch vervollständigen; Templates liefern vorbereiteten Code, beispielsweise für neue Klassen.
    Der Compiler kann im Hintergrund laufen, während du deinen Quelltext bearbeitest.
    Dein Programm lässt sich direkt innerhalb der IDE starten, wo du auch das Ergebnis siehst.
    Für meine Lehre und meine IT-Azubis arbeite ich mit Eclipse. Die IDE ist kostenfrei und Open Source; du findest sie unter eclipse.org. Sie bietet die genannten Hilfen und unterstützt auch das Testen. Als weitere Java-IDEs werden NetBeans und IntelliJ genannt.
    Über Plugins kannst du Eclipse erweitern. In meinem Blogartikel zu Lieblings-Plugins stelle ich unter anderem eines vor, das dir nach einer Mausaktion die passende Tastenkombination zeigt. Damit lernst du, häufiger über die Tastatur zu arbeiten.
    Java und .NET
    Bei beiden Plattformen wird Quellcode in einen Zwischencode übersetzt, den eine installierte Laufzeitumgebung ausführt. Verschiedene Programmiersprachen können Code für die jeweilige Plattform erzeugen.
    Historisch begann Java mit einer Sprache, deren Programme auf mehreren Betriebssystemen laufen sollten. Bei .NET standen anfangs Windows und mehrere Sprachen im Mittelpunkt, darunter C# und Visual Basic.
    Zum Zeitpunkt der Folge waren auf beiden Plattformen weitere Sprachen verfügbar. Für .NET werden IronPython und IronRuby genannt. Das Mono-Projekt ermöglichte zudem, große Teile des .NET-Frameworks unter Linux auszuführen.
    Wie du Java als Sprache einordnen kannst
    General Purpose Language, GPL: Mit Java kannst du allgemeine Probleme lösen und beispielsweise Finanzanwendungen oder Webanwendungen schreiben. Eine Domain Specific Language, DSL, ist auf ein bestimmtes Fachgebiet zugeschnitten.
    Sprache der dritten Generation: Du arbeitest mit abstrakten Sprachmitteln wie Schleifen und Fallunterscheidungen. Die erste Generation umfasst Maschinencode, die zweite Assemblersprachen. Bei Sprachen der vierten Generation sind weitere Abläufe direkt eingebaut. Als Beispiel führe ich Natural an, wo du mit READ und wenigen Zeilen Datensätze einer Tabelle durchlaufen kannst.
    Kompiliert: Ein Compiler übersetzt deinen Java-Quellcode in Bytecode.
    Statisch typisiert: Bereits beim Kompilieren stehen die Datentypen fest, auch für Parameter und Rückgabewerte. Wenn du eine Variable als String deklarierst, bleibt dieser Typ festgelegt.
    Stark typisiert: Für den Umgang mit Typen gelten feste Regeln....
    35 min
  • Literaturempfehlungen für (angehende) Java-Entwickler – Anwendungsentwickler-Podcast #35
    Für Einsteiger, aber auch für Fortgeschrittene im Bereich der Java-Programmierung habe ich einige Buchtipps zusammengestellt, die ich in der fünfunddreißigsten Episode des Anwendungsentwickler-Podcasts durchgehe.
    TL;DR
    Für deinen Einstieg in Java empfehle ich dir die kostenlosen Oracle-Tutorials und Einführung in Java; Java ist auch eine Insel begleitet dich als ausführliches Nachschlagewerk. Mit Pragmatic Unit Testing in Java 8 with JUnit lernst du früh, deinen Code zu testen, während zwei weitere Bücher die funktionalen Konzepte und weitere Neuerungen von Java 8 behandeln. Sobald du Java-Grundlagen beherrschst, führen dich Der Weg zum Java-Profi und Professionell entwickeln mit Java EE 7 an die Werkzeuge und Technologien heran, die du für größere Anwendungen brauchst.
    Kapitelmarken
    [00:00:01] Literaturtipps für Java
    [00:00:36] Java in Ausbildung und Betrieb
    [00:02:22] Meine Erfahrungen und die Auswahl der Literatur
    [00:03:49] Kostenlose Quellen und Links zu den Büchern
    [00:04:16] Oracle-Tutorial: Learning the Java Language
    [00:06:23] Oracle-Tutorial: Essential Classes
    [00:08:25] Einstieg mit Einführung in Java
    [00:10:09] Java ist auch eine Insel als Nachschlagewerk
    [00:11:57] Unit-Tests mit Pragmatic Unit Testing in Java 8 with JUnit
    [00:14:04] Funktionale Konzepte mit Functional Programming in Java
    [00:16:38] Neuerungen mit Java SE 8 for the Really Impatient
    [00:18:10] Weiterführende Literatur: Der Weg zum Java-Profi
    [00:21:45] Enterprise-Anwendungen mit Professionell entwickeln mit Java EE 7
    [00:23:52] Zeit für Fachliteratur und Bezug zur Prüfung
    [00:24:54] Überblick über die Literaturempfehlungen
    [00:26:01] Shownotes, RSS-Feed und Kontakt
    [00:26:56] Artikel zu Bootstrap und Abschlussprojekten
    [00:27:41] Feedback, Newsletter und Checklisten
    [00:28:45] Ausblick: Lernfragen zu Java und Programmiergrundlagen
    Inhalt
    Kostenfreie Literatur
    Bei Oracle gibt es eine sehr umfangreiche und kostenlose Einführung in Java, die ich selbst gelesen habe. Kann ich definitiv weiterempfehlen! Aber auch die "Java-Insel" als OpenBook ist natürlich empfehlenswert.
    Trail: Learning the Java Language (The Java™ Tutorials)
    Trail: Essential Classes: Table of Contents (The Java™ Tutorials)
    Java ist auch eine Insel - OpenBook von Rheinwerk
    Literatur für Einsteiger
    Für Programmieranfänger, die Java als erste Sprache lernen, empfehle ich Einführung in Java: Ideal für Studium und Ausbildung* (auch direkt beim Rheinwerk-Verlag*).
    *
    Das Standardwerk für danach ist aber natürlich Java ist auch eine Insel* (auch direkt beim Rheinwerk-Verlag*). Das darf in keinem Bücherschrank fehlen :-)
    *
    Für eine sehr gute Einführung in Unit-Testing mit JUnit empfehle ich Pragmatic Unit Testing in Java 8 with JUnit*. Die Beispiele kann man auch schon mit wenig Java-Vorkenntnissen gut verstehen und nachmachen. Hier ist mein längerer Artikel zum Buch: Rezension: Pragmatic Unit Testing in Java 8 with JUnit von Jeff Langr.
    *
    Update auf Java 8
    Wer schon länger mit Java arbeitet und nur schnell auf den neusten Stand kommen möchte, was die Neuerungen in Java 8 angeht, dem kann ich diese beiden Bücher empfehlen:
    Functional Programming in Java: Harnessing the Power of Java 8 Lambda Expressions*
    Wer die interessante und kurzweilige Art von Venkat Subramaniam z.B. aus seinen Präsentationen kennt (z.B. passend zum Thema hier: Transforming Code to Java 8 by Venkat Subramaniam), wird seine Bücher mögen. Ich habe schon einige von ihm gelesen und bin immer wieder begeistert von seiner erfrischenden Art zu schreiben.
    *
    Java SE8 for the Really Impatient: A Short Course on the Basics*
    Mit diesem Buch habe ich mich auf den neusten Stand gebracht. Es hält genau, was es verspricht: Kurz und knapp werden die interessanten Neuerungen in Java 8 geschildert. Für mich eine ideale Kombination aus knapper Beschreibung und trotzdem den wichtigsten Inhalten.
    *
    Fortführende Literatur
    Wer auf der Suche nach tiefergehender Lektüre rund um die Java-Entwicklung ist, dem empfehle ich Der Weg zum Java-Profi: Konzepte und Techniken für die professionelle Java-Entwicklung*. Hier wird auf alles eingegangen, was man in der Java-Insel nicht mehr findet: Versionsverwaltung, Modularisierung, Dependency-Management usw. Also einfach alles, was ein Entwickler so wissen muss, was aber über die eigentliche Sprache hinausgeht.
    *
    Wer außerdem noch im Umfeld von Java EE entwickelt, der wird vielleicht mit Professionell entwickeln mit Java EE 7: Das umfassende Handbuch* (auch direkt beim Rheinwerk-Verlag*) einen guten Einstieg finden. Die Bücher aus dem Rheinwerk-Verlag sind eigentlich immer super, und das gilt für dieses Buch auch. Eine gut verständliche Einführung in Java EE 7 mit vielen Beispielen.
    *
    Hast du noch weitere gute Literaturtipps zum Thema Java-Entwicklung? Dann schreib mir gerne einen Kommentar!
    Links
    Permalink zu dieser Podcast-Episode
    RSS-Feed des Podcasts
    Letzte Woche auf der Website: Einführung in Twitter Bootstrap und Ausgefallene oder anspruchsvolle Themen beim Abschlussprojekt
    Zusammenfassung
    Java in deiner IT-Ausbildung
    An Berufsschulen und Universitäten begegnet dir Java häufig als erste Programmiersprache. Auch Betriebe setzen Java ein, weshalb ich in Abschlussprüfungen regelmäßig Java-Projekte sehe. Die Sprache läuft auf vielen Plattformen und eignet sich für Anwendungen auf Mobilgeräten ebenso wie auf großen Servern. Mit Java 8 kamen unter anderem Lambda-Ausdrücke und die Stream-API hinzu.
    Aus meiner Arbeit mit Java und den Büchern, die ich selbst gelesen habe, empfehle ich dir folgende Quellen. Welche davon zu dir passt, hängt davon ab, wie viel Erfahrung du schon hast.
    Kostenlos mit Oracle lernen
    Learning the Java Language
    Das offizielle Oracle-Tutorial beginnt mit objektorientierten Konzepten. Du lernst, was Objekte und Klassen sind, wie sie über Nachrichten zusammenarbeiten und wie Vererbung funktioniert. Objektorientierung spielt auch in der Abschlussprüfung eine wichtige Rolle.
    Danach folgen Sprachgrundlagen wie Variablen und Datentypen, außerdem Arrays. Weitere Kapitel behandeln Interfaces, Strings, Generics und Packages sowie Annotations. Ich habe das Tutorial selbst durchgearbeitet und empfehle es für den Einstieg. Du kannst es kostenlos als PDF herunterladen und auf einem E-Reader lesen.
    Essential Classes
    Wenn du bereits etwas programmiert hast, führt dich dieser zweite Oracle-Trail tiefer in Java hinein:
    Bei Exceptions erfährst du auch, wie sich Checked und Unchecked Exceptions unterscheiden.
    Für Dateien behandelt das Tutorial Ein- und Ausgabe sowie die NIO-Bibliothek.
    Ein Kapitel führt in nebenläufige Programme ein.
    Weitere Themen sind die Plattformkonfiguration und reguläre Ausdrücke.
    Auch dieses Tutorial ist kostenlos als PDF verfügbar. Für meine Azubis ordne ich die Themen nach den ersten praktischen Erfahrungen mit Java ein; nebenläufige Programme würde ich im ersten Ausbildungsjahr noch nicht voraussetzen.
    Bücher für den Einstieg
    Einführung in Java
    Einführung in Java, mit dem Untertitel Ideal für Studium und Ausbildung, erscheint im Rheinwerk Verlag und setzt bei den ersten Schritten an. An Java-Beispielen lernst du Variablen kennen, triffst Entscheidungen im Programm und arbeitest mit Schleifen. Dadurch eignet sich das Buch auch, wenn du zuvor noch keine Programmiersprache gelernt hast.
    Auf rund 500 Seiten folgen objektorientierte Konzepte und Unit-Tests. Arrays und Collections gehören ebenfalls dazu, genauso wie Exceptions. Die vorgestellte Ausgabe behandelt bereits Java 8 mit Lambda-Ausdrücken und der Stream-API. Mit JavaFX lernst du außerdem grafische Oberflächen kennen. Für das erste Ausbildungsjahr empfehle ich dir dieses Buch als Einstieg.
    Java ist auch eine Insel
    Mit mehr als 1.000 Seiten geht Java ist auch eine Insel ausführlich auf die Sprache ein. Das Buch behandelt die Plattformen SE, EE und ME sowie verschiedene Java-Versionen. Du findest darin Informationen zu Entwicklungsumgebungen wie Eclipse und detaillierte Kapitel zu Datentypen und Operatoren.
    Zur Objektorientierung gehören Vererbung und Polymorphie. Eigene Kapitel behandeln Strings und zeigen dir, wie du Klassen modellierst, einschließlich Getter und Setter. Ich greife auf die Java-Insel zurück, wenn ich etwas nachschlagen möchte. Beim Rheinwerk Verlag kannst du sie auch kostenlos als Open Book lesen.
    Wenn du nur ein Java-Buch kaufen möchtest, ist die Java-Insel meine Empfehlung.
    Pragmatic Unit Testing in Java 8 with JUnit
    Dieses englischsprachige Buch von den Pragmatic Programmers führt dich in Unit-Tests ein. Es erklärt die Grundlagen des Testens und zeigt, wie JUnit funktioniert. Auch Test Driven Development, kurz TDD, wird behandelt.
    Mit Merkhilfen wie AAA: Arrange, Act, Assert lernst du, wie du einen Test aufbaust. Die grundlegenden Testprinzipien lassen sich auch auf andere Test-Frameworks übertragen.
    In meiner Ausbildung gehört das Buch bereits im ersten Jahr dazu. Nach ungefähr drei Monaten praktischer Java-Erfahrung empfehle ich dir, damit ins Testen einzusteigen und die Inhalte beim Programmieren anzuwenden. Eine ausführlichere Rezension findest du in meinem Blog.
    Java 8 kennenlernen
    Functional Programming in Java
    Wenn du Java schon kennst, führt dich Functional Programming in Java von Venkat Subramaniam an funktionale Konzepte heran. Auf etwa 150 Seiten geht es um Lambda-Ausdrücke und die Stream-API, außerdem um Exceptions in diesem Zusammenhang. Lazy Evaluation und Rekursion gehören ebenfalls zu den Themen.
    Funktionale Ansätze helfen dir dabei, lesbaren Code zu schreiben und Aufgaben leichter parallel auszuführen. Das Buch konzentriert sich auf diese Denkweise. Andere Neuerungen wie die Date-Time-API stehen außerhalb seines Schwerpunkts. Einen passenden Vortrag des Autors habe ich in den Shownotes verlinkt.
    Java SE 8 for the Really Impatient
    Für einen kompakten Überblick über die Neuerungen empfehle ich dir Java SE 8 for the Really Impatient. Neben Lambdas und Streams behandelt das Buch JavaFX und die überarbeitete Date-Time-API....
    30 min
  • Ablauf der mündlichen Ergänzungsprüfung – Anwendungsentwickler-Podcast #34
    Achtung: Diese Podcast-Episode behandelt die MEP nach der Prüfungsordnung vor 2020. Sie ist mit ziemlicher Sicherheit für dich nicht mehr relevant. Wenn du die aktuellen Informationen zur MEP haben möchtest, hör dir diese neue Episode an:
    Mündliche Ergänzungsprüfung - Erklärung, Benotung, Inhalte und Vorbereitung - IT-Berufe-Podcast #197
    Aufgrund vieler Nachfragen von Prüflingen erkläre ich den Ablauf der mündlichen Ergänzungsprüfung in der vierunddreißigsten Episode des Anwendungsentwickler-Podcasts.
    TL;DR
    Bei zwei Fünfen im schriftlichen Prüfungsteil kann eine mündliche Ergänzungsprüfung dazu führen, dass du deine Abschlussprüfung noch bestehst. Voraussetzung ist, dass du damit rechnerisch die nötigen Ergebnisse erreichen kannst und in keinem Prüfungsbereich eine Sechs hast. Für die 15-minütige Prüfung empfehle ich dir den Bereich mit der besseren Fünf und ein Thema, das du gut beherrschst. Das schriftliche Ergebnis zählt doppelt, das mündliche einfach: Aus 40 Prozent schriftlich und 70 Prozent mündlich werden 50 Prozent und damit eine Vier.
    Kapitelmarken
    [00:00:01] Hinweise zum Fachgespräch
    [00:00:19] Einführung in die mündliche Ergänzungsprüfung
    [00:01:24] Voraussetzungen zum Bestehen der Abschlussprüfung
    [00:02:13] Zwei Fünfen und die Wahl des Prüfungsbereichs
    [00:03:47] Themengebiete für die Ergänzungsprüfung
    [00:05:16] Mögliche Fragen und ein passendes Thema
    [00:06:47] Themenwahl und Vorbereitung des Prüfungsausschusses
    [00:07:38] Reihenfolge von Fachgespräch und Ergänzungsprüfung
    [00:08:11] Rechnerische Voraussetzungen für das Bestehen
    [00:08:57] Prüfungsdauer und gezielte Vorbereitung
    [00:09:52] Gewichtung und Berechnung des neuen Ergebnisses
    [00:10:44] Knappe Ergebnisse und Umgang mit Prüflingen
    [00:12:06] Shownotes und rechtliche Grundlage
    [00:12:25] Buchtipp zu JUnit und Links zu Markdown
    [00:13:09] Feedback und Weiterempfehlung
    [00:13:38] Newsletter und Projektchecklisten
    [00:14:09] Ausblick auf Literaturtipps zur Programmierung
    Inhalt
    Die Prüfung ist bestanden, wenn man in Teil A und Teil B eine Vier hat.
    Mit einer Sechs ist man direkt durchgefallen.
    Wenn man in Teil B max. zwei Fünfen hat, kann die mündliche Ergänzungsprüfung durchgeführt werden, sofern ein Bestehen der Prüfung noch möglich ist.
    Das Themengebiet wird vom Prüfling vorgegeben (muss zum Bereich des mangelhaften Prüfungsteils passen).
    Die Prüfung dauert 15 Minuten.
    Bei uns findet die Prüfung nach dem eigentlichen Fachgespräch statt.
    Beispiel Notenberechnung
    Bisherige Note: 40%
    Ergänzungsprüfung: 70%
    Gesamtnote: (2 * 40% + 70%) / 3 = 150% / 3 = 50% (bestanden)
    Texte der Verordnung über die Berufsausbildung im Bereich der Informations- und Telekommunikationstechnik
    §15 Abs. 8
    Die Prüfung ist bestanden, wenn jeweils in den Prüfungsteilen A und B mindestens ausreichende Leistungen erbracht wurden. Werden die Prüfungsleistungen in der Projektarbeit einschließlich Dokumentation, in der Projektpräsentation einschließlich Fachgespräch oder in einem der drei Prüfungsbereiche mit "ungenügend" bewertet, so ist die Prüfung nicht bestanden.
    §15 Abs. 7
    Sind im Prüfungsteil B die Prüfungsleistungen in bis zu zwei Prüfungsbereichen mit "mangelhaft" und in einem weiteren Prüfungsbereich mit mindestens "ausreichend" bewertetet worden, so ist auf Antrag des Prüflings oder nach Ermessen des Prüfungsausschusses in einem der mit "mangelhaft" bewerteten Prüfungsbereiche die Prüfung durch eine mündliche Prüfung von etwa 15 Minuten zu ergänzen, wenn diese für das Bestehen der Prüfung den Ausschlag geben kann. Der Prüfungsbereich ist vom Prüfling zu bestimmen. Bei der Ermittlung des Ergebnisses für diesen Prüfungsbereich ist das bisherige Ergebnis und das Ergebnis der mündlichen Ergänzungsprüfung im Verhältnis 2:1 zu gewichten.
    Links
    Permalink zu dieser Podcast-Episode
    RSS-Feed des Podcasts
    Verordnung über die Berufsausbildung im Bereich der Informations- und Telekommunikationstechnik
    Aufbau und Ablauf der Abschlussprüfung - Anwendungsentwickler-Podcast #1
    Vorbereitung auf die schriftliche Abschlussprüfung - Anwendungsentwickler-Podcast #4
    Ablauf der mündlichen Abschlussprüfung (Präsentation und Fachgespräch) - Anwendungsentwickler-Podcast #14
    Zusammenfassung
    Wann eine mündliche Ergänzungsprüfung möglich ist
    Für den hier beschriebenen Prüfungsaufbau brauchst du sowohl in Teil A, der Projektarbeit, als auch in Teil B, der schriftlichen Prüfung, mindestens die Gesamtnote Vier. Teil B umfasst Ganzheitliche Aufgabe 1, Ganzheitliche Aufgabe 2 und Wirtschafts- und Sozialkunde, kurz WiSo.
    Wenn du in zwei dieser schriftlichen Bereiche eine Fünf und im verbleibenden Bereich mindestens eine Vier erreicht hast, kannst du eine der Fünfen durch eine mündliche Ergänzungsprüfung ausgleichen. Danach darf in Teil B höchstens eine Fünf stehen bleiben, wobei das Gesamtergebnis mindestens eine Vier ergeben muss.
    Mit einer Sechs in einem Prüfungsbereich, also weniger als 30 Prozent, bist du durchgefallen. Als nächster Termin kommt eine Prüfung ein halbes Jahr später infrage.
    Der Prüfungsausschuss führt die Ergänzungsprüfung nur durch, wenn du dadurch die gesamte Abschlussprüfung noch bestehen kannst. Dafür müssen auch die übrigen Ergebnisse passen. Wenn selbst 100 Prozent in der Ergänzungsprüfung rechnerisch zum Bestehen zu wenig wären, entfällt diese Möglichkeit.
    Welchen Prüfungsbereich du wählen solltest
    Bei der Wahl des Bereichs empfehle ich dir die Fünf mit der höheren Punktzahl, weil das schriftliche Ergebnis doppelt in die neue Note eingeht. Hast du beispielsweise in Ganzheitlicher Aufgabe 1 45 Prozent und in Ganzheitlicher Aufgabe 2 40 Prozent erreicht, liegt Aufgabe 1 näher an der Grenze von 50 Prozent.
    Wie viele Punkte du mündlich brauchst, hängt von deinem konkreten schriftlichen Ergebnis ab. Mit 50 Prozent in der Ergänzungsprüfung bleibt das gemeinsame Ergebnis unter der Grenze zur Vier, wenn du schriftlich eine Fünf hattest.
    Wie du dein Thema auswählst
    Du darfst für die Ergänzungsprüfung ein Themengebiet innerhalb des gewählten Prüfungsbereichs bestimmen:
    Ganzheitliche Aufgabe 1: Themen aus der Anwendungsentwicklung, beispielsweise Programmierung oder UML. Auch Projektmanagement kommt infrage.
    Ganzheitliche Aufgabe 2: Ein breiteres Spektrum an IT-Themen, zu dem etwa strukturierte Verkabelung und Betriebssysteme gehören. Linux oder VPN sind ebenfalls Beispiele.
    WiSo: Themen aus Wirtschaft und Sozialkunde, etwa der Betrieb und sein Umfeld oder gesetzliche Vorgaben.
    Als Fachinformatiker:in Anwendungsentwicklung kannst du für Ganzheitliche Aufgabe 1 beispielsweise Objektorientierung wählen. Das Thema muss ausreichend breit sein; Polymorphie allein wäre zu eng gefasst.
    Innerhalb deines Themengebiets können die Prüfer:innen unterschiedliche Fragen stellen. Bei Programmierung reicht das von Algorithmen und Verzweigungen bis zu Interfaces oder abstrakten Klassen. Die Fragen müssen zum gewählten Gebiet passen.
    Wähle einen Bereich, in dem du dich auskennst und ein ausreichend gutes mündliches Ergebnis erreichen kannst. Deine schriftlichen Noten erfährst du üblicherweise deutlich vor dem mündlichen Termin. So kannst du die erforderliche Punktzahl ausrechnen und dich gezielt auf dein Thema vorbereiten. Meine Hinweise zur Vorbereitung auf die Abschlussprüfung gelten auch für die Ergänzungsprüfung.
    Wie die Prüfung abläuft
    In meiner Prüfungspraxis finden zunächst deine reguläre Präsentation und das Fachgespräch statt. Anschließend lässt sich beurteilen, ob du mit einer Ergänzungsprüfung die gesamte Prüfung noch bestehen kannst. Falls das möglich ist, folgt die Ergänzungsprüfung im Anschluss.
    Nachdem du dein Themengebiet genannt hast, verlässt du gegebenenfalls kurz den Raum. Die Prüfer:innen beraten sich, legen Fragen fest und klären, wer welche Fragen stellt. Weil das Ergebnis über das Bestehen entscheiden kann, wird die Prüfung sorgfältig protokolliert.
    Die Ergänzungsprüfung dauert 15 Minuten und behandelt das von dir gewählte Themengebiet.
    Wie dein neues Ergebnis berechnet wird
    Für den betreffenden Prüfungsbereich gilt:
    Neues Ergebnis = (2 × schriftliches Ergebnis + mündliches Ergebnis) / 3
    Wenn du schriftlich 40 Prozent erreicht hast und mündlich 70 Prozent bekommst, ergibt sich folgende Rechnung:
    (2 × 40 + 70) / 3 = 50 Prozent
    Damit erreichst du in diesem Bereich die Note Vier. Für die gesamte Abschlussprüfung müssen zusätzlich die genannten Voraussetzungen erfüllt sein.
    Bei 49 Prozent bleibt die Fünf bestehen. Aus meiner Prüfungspraxis kenne ich einen wohlwollenden Umgang mit Prüflingen, gerade bei knappen Ergebnissen. Wie der Ausschuss bewertet, hängt dabei von deiner Leistung ab. Bereite dich deshalb gründlich auf das Thema vor, das du selbst auswählst.
    Weiterführende Inhalte und Links
    Unter anwendungsentwicklerpodcast.de/34 findest du meine Shownotes mit Hilfen zur Prüfungsvorbereitung und einem Link zur Ausbildungsordnung, in der die rechtliche Grundlage steht. Weitere Informationen zum Fachgespräch stehen auf dasperfektefachgespräch.de.
    Im Blog empfehle ich ein Buch zum Einstieg in JUnit und testgetriebene Entwicklung mit Java. Die erwähnten Links der Woche beschäftigen sich mit Markdown und enthalten unter anderem einen Pluralsight-Kurs.
    Über anwendungsentwicklerpodcast.de/Newsletter erhältst du wöchentlich Hinweise auf neue Inhalte sowie die Links der Woche bereits am Montag. Dazu kommen Checklisten für deinen Projektantrag und deine Projektdokumentation sowie für die Projektpräsentation mit insgesamt weit über 100 Prüfpunkten.
    Wenn du selbst eine mündliche Ergänzungsprüfung erlebt hast, kannst du mir deine Erfahrungen als Kommentar schreiben. Für die nächste Episode sind Literaturtipps zum Einstieg in die Programmierung angekündigt, voraussichtlich mit einem Schwerpunkt auf Java.
    Transkription der gesamten Episode
    Automatisch erzeugte Transkription der Episode
    [0:01] Hi, hier ist Stefan. In dieser Podcast-Episode geht es ums Fachgespräch.
    ...
    16 min

About IT-Berufe-Podcast

From the publisher's feed

Der Podcast rund um die Ausbildung in den IT-Berufen (insb. Fachinformatiker für Anwendungsentwicklung) von Stefan Macke.

More shows like IT-Berufe-Podcast

Streitkräfte und Strategien by NDR

Streitkräfte und Strategien

43 Listeners

Sternengeschichten by Florian Freistetter

Sternengeschichten

45 Listeners

Geschichten aus der Geschichte by Richard Hemmer und Daniel Meßner

Geschichten aus der Geschichte

176 Listeners

c’t uplink - der IT-Podcast aus Nerdistan by c’t Magazin

c’t uplink - der IT-Podcast aus Nerdistan

10 Listeners

MORD AUF EX by Leonie Bartsch & Linn Schütze

MORD AUF EX

112 Listeners

{ungeskriptet} - Der Meinungsfreiheit verpflichtet. by Ben Berndt

{ungeskriptet} - Der Meinungsfreiheit verpflichtet.

48 Listeners