- Buchclub: Handbuch für Fachinformatiker (Teil 1) – Anwendungsentwickler-Podcast #53
- Buchclub: Handbuch für Fachinformatiker (Teil 2: Hardware) – Anwendungsentwickler-Podcast #56
- Buchclub: Handbuch für Fachinformatiker (Teil 3: Netzwerkgrundlagen) – Anwendungsentwickler-Podcast #58
- Buchclub: Handbuch für Fachinformatiker (Teil 4: TCP/IP) – Anwendungsentwickler-Podcast #59
- Buchclub: Handbuch für Fachinformatiker (Teil 5: Betriebssysteme, Windows und Linux) – Anwendungsentwickler-Podcast #61
- Buchclub: Handbuch für Fachinformatiker (Teil 6: Webserver und -anwendungen) – Anwendungsentwickler-Podcast #66
- Buchclub: Handbuch für Fachinformatiker (Teil 7: HTML und CSS) – Anwendungsentwickler-Podcast #68
- Buchclub: Handbuch für Fachinformatiker (Teil 8: JavaScript und AJAX) – Anwendungsentwickler-Podcast #70
- Buchclub: Handbuch für Fachinformatiker (Teil 9: XML) – Anwendungsentwickler-Podcast #73
- Buchclub: Handbuch für Fachinformatiker (Teil 10: Dateiformate und Sicherheit) – Anwendungsentwickler-Podcast #75
- Buchclub: Handbuch für Fachinformatiker (Teil 11: Datenbanken) – Anwendungsentwickler-Podcast #78
- Buchclub: Handbuch für Fachinformatiker (Teil 12: Grundlagen der Programmierung) – Anwendungsentwickler-Podcast #93
- Buchclub: Handbuch für Fachinformatiker (Teil 13: Konzepte der Programmierung) – Anwendungsentwickler-Podcast #96
- Buchclub: Handbuch für Fachinformatiker (Teil 14: Software-Engineering und Mobile Development) – Anwendungsentwickler-Podcast #101
Um Kapitel 9 (Grundlagen der Programmierung) des Handbuchs für Fachinformatiker geht es in der dreiundneunzigsten Episode des Anwendungsentwickler-Podcasts.
TL;DR
Als IT-Azubi findest du in Kapitel 9 des Handbuchs für Fachinformatiker einen Einstieg in grundlegende Programmierkonzepte anhand von C, Java und Python. Für die Prüfung empfehle ich dir besonders die allgemeinen Begriffe, die verschiedenen Arten, Parameter zu übergeben, und die Grundlagen der Objektorientierung. Python führt außerdem an dynamische Typen und Lambda-Ausdrücke heran. Für das tägliche Programmieren brauchst du ergänzende Fachliteratur und praktische Erfahrung.
Podcast: Play in new window | Download (Duration: 29:12 — 10.9MB)
Abonnieren: Apple Podcasts | Spotify | RSS
Kapitelmarken
- [00:00:00] Einstieg in den Buchclub zu Kapitel 9
- [00:01:26] C, Java und Python im Überblick
- [00:03:39] C in der Praxis und in Abschlussprojekten
- [00:05:53] Prozedurales Programmieren und grundlegende Begriffe
- [00:07:29] Variablen, Datentypen und Kontrollstrukturen
- [00:08:49] Pointer, Call-by-Reference und Call-by-Value
- [00:10:20] Standardbibliotheken und sprachspezifisches Prüfungswissen
- [00:11:26] Java und das Einordnen von Programmiersprachen
- [00:12:36] Objektorientierung, Vererbung und Interfaces
- [00:13:56] Collections, generische Klassen und Enumerations
- [00:14:51] Python und dynamische Typen
- [00:15:40] Einrücken und snake_case in Python
- [00:17:42] Erfahrungen mit anders typisierten Sprachen sammeln
- [00:18:30] Code mit einer REPL interaktiv ausprobieren
- [00:19:56] Lambda-Ausdrücke und Funktionen als Parameter
- [00:22:38] Umfang und Grenzen von Kapitel 9
- [00:24:17] Open Books und Fragen zum Fachgespräch
- [00:25:23] Weiterführende Bücher zu Java und anderen Sprachen
- [00:27:19] Newsletter und Materialien zur IT-Ausbildung
- [00:28:11] Fragen von Hörer:innen für Episode 100
Inhalt
Kapitel 9 (Grundlagen der Programmierung)
Das Kapitel 9 des IT-Handbuchs für Fachinformatiker* von Sascha Kersken liefert einen kurzen Einstieg in mehrere unterschiedliche Programmiersprachen. Für einen tiefen Einstieg reicht das natürlich nicht aus, aber man bekommt einen guten Überblick über die Eigenschaften und Unterschiede der einzelnen Programmiersprachen. Als „Lernkapitel“ bietet es sich jedoch nicht an, da viele konkrete Syntaxelemente vorgestellt werden, die für die Praxis absolut relevant sind, aber in der Prüfung so detailliert wohl eher nicht abgefragt werden.
- 9.1 Die Programmiersprache C
- Wichtige Programmiersprache! Allerdings (meiner Erfahrung nach) wenig bei IHK-Prüfungen eingesetzt.
- Die Konzepte der prozeduralen Programmierung finden in den IHK-Aufgaben Anwendung.
- Gute Erklärung grundlegender Begriffe wie Deklaration, Wertzuweisung und Kontrollstruktur.
- Kurze Einführung in grundlegende Datentypen wie
int,charunddouble. - Einige konkrete Tipps wie z.B. die Empfehlung, bei
ifimmer geschweifte Klammern zu setzen. - Schöne Erklärung von Call by value und Call by reference mit Pointern.
- Die Standardbibliothek ist nicht prüfungsrelevant.
- 9.2 Java
- Guter Einstieg mit Liste der Unterschiede zu C.
- Kurze Einführung in die Objektorientierung mit Überladen, Vererbung und Interfaces. Gut für einen ersten Überblick, aber für Details zu oberflächlich.
- Abschluss mit kurzer Einführung in Collections und Enums. Wichtig für die Praxis.
- 9.3 Python (früher 9.3 Perl und 9.4 Ruby)
- Python ist als bekannter Vertreter der dynamischen (Script-)Sprachen sehr interessant. Die Unterschiede zu statischen Sprachen sollte jeder Prüfling kennen.
- Auch die Bedeutung von Whitespace in der Sprache ist spannend, da sie sauber formatierten Code erzwingt.
- Im Gegensatz zu Java wird Snake Case für Bezeichner verwendet.
- Intensive Behandlung von Listen und den dazu passenden „coolen“ Sprachfeatures.
- Eine REPL bieten heute auch immer mehr Sprachen an. Sogar Java bekommt bald eine 🙂
- Lambda-Funktionen sollte heute auch jeder Anwendungsentwickler kennen. Sie sind in fast allen modernen Programmiersprachen enthalten und bilden ein wichtiges Fundament der funktionalen Programmierung.
- Die Standardbibliothek ist analog zu C eher uninteressant (für die Prüfung).
- 9.5 Zusammenfassung
Literaturempfehlungen
Was sonst? 🙂
*(direkt beim Rheinwerk-Verlag bestellen*)
Und für einen richtigen Einstieg in eine der genannten Sprachen – natürlich Java 😉 – empfehle ich wie immer die „Insel*“!
*(direkt beim Rheinwerk-Verlag bestellen*)
Wenn du einen wirklich tollen Überblick über einige der interessantesten Programmiersprachen inkl. ihrer konkreten Stärken haben möchtest, kann ich dir Seven Languages in Seven Weeks von Bruce Tate empfehlen, das ich in meinem privaten Blog schon einmal rezensiert habe.
Links
- Permalink zu dieser Podcast-Episode
- RSS-Feed des Podcasts
- Anwendungsentwickler-Podcast #12: Häufige Fragen im Fachgespräch – Programmierung (Teil 1)
- Anwendungsentwickler-Podcast #13: Häufige Fragen im Fachgespräch – Programmierung (Teil 2)
Zusammenfassung
Kapitel 9 als Einstieg für IT-Azubis
Im Buchclub zum Handbuch für Fachinformatiker von Sascha Kersten bespreche ich Kapitel 9 über die Grundlagen der Programmierung. Die neuere Auflage behandelt C, Java und Python in eigenen Unterkapiteln. Python hat die früher enthaltenen Sprachen Perl und Ruby ersetzt, die ebenfalls zu den dynamischen Skriptsprachen gehören.
Auf etwa 120 Seiten einschließlich der Übungsaufgaben lernst du verschiedene Programmierkonzepte kennen. Rund 100 Seiten entfallen auf den eigentlichen Inhalt. Für meine IT-Azubis empfehle ich das Kapitel als Einstieg und zum Auffrischen der Grundlagen. Um eine der Sprachen im Arbeitsalltag zu beherrschen, brauchst du weiterführende Literatur.
C: Grundbegriffe und prozedurales Programmieren
Als IHK-Prüfer habe ich bei meiner IHK bisher kein Abschlussprojekt in C gesehen. In der Praxis spielt die Sprache weiterhin eine Rolle, etwa bei Embedded-Systemen und beim Steuern von Hardware. Meine eigenen Erfahrungen mit C stammen aus dem Studium.
Im C-Unterkapitel werden grundlegende Begriffe von Anfang an eingeführt:
- Syntaxfehler und Laufzeitfehler: Du lernst die beiden Fehlerarten kennen.
- Variablen: Eine Variable ist ein benannter Speicherplatz. Dazu gehören das Deklarieren einer Variable und das Zuweisen eines Werts.
- Datentypen: Das Buch beschreibt beispielsweise
intunddoublemit ihren Wertebereichen. Auchcharwird eingeführt. - Operatoren und Kontrollstrukturen: Du arbeitest mit Verzweigungen wie
ifoderswitchsowie mit Schleifen. - Funktionen und Prozeduren: Sie gehören zu den Grundlagen des prozeduralen Programmierens.
C zeigt dir, wie ein Programm Arbeitsschritte nacheinander ausführt, anhand einer Bedingung verzweigt oder Schritte wiederholt. Die Begriffe aus diesem Abschnitt helfen dir auch beim Lernen anderer Sprachen und beim Vorbereiten auf die Prüfung.
Pointer und Parameter
Durch Pointer beschäftigst du dich genauer damit, wie der Computer mit Speicher arbeitet. Sie verlangen Sorgfalt, weil Fehler beim Umgang mit ihnen weitreichende Folgen haben können.
Für das Fachgespräch solltest du erklären können, wie Parameter übergeben werden:
- Bei Call-by-Reference wirkt sich eine Änderung am übergebenen Parameter auch auf die aufrufende Stelle aus.
- Bei Call-by-Value wird der Wert in eine neue Variable kopiert. Änderungen betreffen diese lokale Kopie.
Java: Einstieg in die Objektorientierung
Das etwa 20 Seiten lange Java-Unterkapitel beginnt mit der Herkunft der Sprache und ihren Eigenschaften. Java ist objektorientiert sowie statisch und stark typisiert. Für die Prüfung solltest du Programmiersprachen anhand ihrer Eigenschaften einordnen können, etwa anhand ihrer Typen oder ihrer Syntax.
Mit Java lernst du erste Grundlagen der Objektorientierung kennen, einschließlich Vererbung und Interfaces. Hinzu kommen Collections und generische Klassen. Auch Enumerations werden vorgestellt. Diese Konzepte begegnen dir in weiteren Programmiersprachen.
Für meine IT-Azubis eignet sich dieser Abschnitt als erster Überblick über objektorientiertes Programmieren. Zum Vertiefen von Java empfehle ich dir die Java-Insel von Christian Ullenboom, die selbst über 1.000 Seiten umfasst.
Python: Dynamische Typen und Einrücken
Mit ungefähr 70 Seiten ist Python das umfangreichste Unterkapitel. Die Sprache ist dynamisch typisiert, sodass eine Variable im Verlauf des Programms Werte verschiedener Typen aufnehmen kann.
Wie du den Code einrückst, bestimmt in Python seine Struktur. Dadurch legst du beispielsweise fest, welche Anweisungen zu einer if-Bedingung gehören. Für Variablennamen ist snake_case üblich: Wörter werden kleingeschrieben und durch Unterstriche verbunden.
Ich empfehle dir, eine Sprache auszuprobieren, deren Umgang mit Typen sich von deiner Alltagssprache unterscheidet. Diese Erfahrung hilft dir, Eigenschaften von Programmiersprachen einzuschätzen und eine passende Sprache für eine Aufgabe auszuwählen.
Code interaktiv ausprobieren
Python bringt eine REPL mit. Die Abkürzung steht für Read, Eval, Print, Loop. In dieser interaktiven Shell gibst du Befehle direkt ein und erhältst sofort ein Ergebnis. So kannst du kleine Codeabschnitte testen und erkunden, wie sich Methoden mit bestimmten Parametern verhalten.
Lambda-Ausdrücke und Funktionen als Parameter
Ein Lambda-Ausdruck beschreibt eine anonyme Funktion mit wenig Code. Du kannst eine solche Funktion als Parameter an eine andere Funktion übergeben.
Eine Filterfunktion kann beispielsweise für jedes Listenelement eine übergebene Funktion aufrufen. Liefert diese true, wird das Element in eine neue Liste aufgenommen. Das Kriterium zum Filtern kommt damit von der aufrufenden Stelle.
Als weiterführende Themen empfehle ich dir map und reduce sowie das Vertiefen von filter. Das Buch erläutert diese Funktionen im besprochenen Kapitel nicht näher. Lambda-Ausdrücke bieten dafür einen ersten Zugang zu Konzepten des funktionalen Programmierens.
Welche Inhalte du für die Prüfung vertiefen solltest
Für die sprachunabhängige Prüfung stehen allgemeine Begriffe und Konzepte im Mittelpunkt. Dazu gehören etwa Kontrollstrukturen und das Übergeben von Parametern. Objektorientierte Konzepte werden ebenfalls regelmäßig in Abschlussprüfungen gefragt.
Die Abschnitte über Standardbibliotheken und sprachspezifische Details lasse ich beim Besprechen weitgehend aus. Solche Kenntnisse brauchst du, wenn du mit der jeweiligen Sprache arbeitest. Für das Vorbereiten auf die Prüfung kannst du dich auf die allgemeinen Konzepte konzentrieren.
Ergänzende Bücher und Materialien
In meinen Shownotes findest du Links zu kostenlos verfügbaren Open-Book-Kapiteln und zu den beiden Folgen "Häufige Fragen im Fachgespräch zur Programmierung". Dort kannst du anhand konkreter Fragen prüfen, wie gut du die Grundlagen erklären kannst.
Für einen Einblick in weitere Sprachen empfehle ich dir Seven Languages in Seven Weeks. Das Buch stellt sieben Sprachen mit verschiedenen Konzepten vor, darunter Ruby und Haskell. Pro Sprache gibt es etwa 30 bis 40 Seiten. Der Nachfolger heißt Seven More Languages in Seven Weeks.
Über meinen kostenlosen Newsletter erhältst du einmal pro Woche neue Inhalte und Links rund um die IT-Ausbildung. Dazu kommt der Zugriff auf meine Materialien, etwa die Checkliste zur Projektdokumentation mit über 100 Punkten. Anmelden kannst du dich unter anwendungsentwicklerpodcast.de/newsletter.
Für Episode 100 sammle ich Fragen von Hörer:innen. Deine Frage kannst du mir per E-Mail oder über meine Social-Media-Kanäle schicken.
Transkription der gesamten Episode
Automatisch erzeugte Transkription der Episode
Herzlich Willkommen zum Anwendungsentwickler-Podcast, dem Podcast rund um die Ausbildung zum Fachinformatiker
für Anwendungsentwicklung. In dieser Episode geht der Buchclub zum Handbuch für Fachinformatiker
mit Kapitel 9 weiter. Viel Spaß!
Hallo und herzlich Willkommen zur inzwischen 93. Episode des Anwendungsentwickler-Podcasts.
Mein Name ist Stefan Macke und heute geht es weiter mit Teil Nummer 12, ist es glaube ich schon,
des Buchclubs zum Handbuch für Fachinformatiker von Sascha Kersten. Und zwar habe ich noch ein
paar Kapitel offen in dem über 1000 Seiten starken Buch und zwar genau die, die eigentlich für die
Anwendungsentwickler am interessantesten sind, nämlich die zur Programmierung. Und wir machen
heute weiter mit dem Kapitel 9. Das sind die Grundlagen der Programmierung und dann haben wir
noch zwei Kapitel offen, die wir durchgehen müssen. Das ist einmal Software Engineering und dann noch
eben die Konzepte der Programmierung. Und dann haben wir das ganze Buch endlich durch. Wahnsinn!
Ich bin damals ja genau andersherum angefangen, weil ich zu einem Zeitpunkt startet bin, wo meine
damaligen Azubis alle schon, ich sag mal, programmieren konnten und wir deswegen nicht mit dem
Programmierkapitel angefangen sind, sondern mit anderen, die gerade bei mir reinpassten. Und jetzt
ist es aber Zeit, die für Anwendungsentwickler eigentlich wichtigsten oder interessantesten
Kapitel nachzuholen. Und damit machen wir heute weit. Also Kapitel 9, Grundlagen der Programmierung. Ganz
allgemein vielleicht zum Kapitel 9 schon mal vorab. Es ist in der neueren Auflage des Handbuchs für
Fachinformatiker aufgeteilt in drei Unterkapitel, die jeweils eine Programmiersprache beschreiben.
Und zwar sind das die Programmiersprachen C, Java und Python. Relativ unterschiedliche
Programmiersprachen und kann man auch unterschiedliche Sachen rausziehen als Leser dieser
Kapitel. Da gehe ich dann gleich im Detail nochmal drauf ein. In früheren Auflagen des Buchs gab es
noch zwei andere Programmiersprachen, und zwar Perl und Ruby. Die wurden jetzt aber gestrichen und
inzwischen ersetzt durch Python. Ob man das gut findet oder nicht, ist jetzt eigentlich mir persönlich
egal. Wichtig ist, dass die beschriebenen Programmiersprachen die gleichen Eigenschaften
eigentlich teilen. Nämlich Perl und Python und Ruby sind alle dynamische Skriptsprachen, nennt man
sie ja auch gerne. Von daher ist es gar nicht so schlimm, dass die anderen beiden jetzt rausgeflogen
sind. Aktuell haben wir halt mit C eine völlig basic Programmiersprache, die es schon ewig gibt,
die strukturiert und prozedural arbeitet und die so tolle Konzepte wie Appointer zum Beispiel hat.
Dann haben wir Java als objektorientierte und statisch und stark typisierte Programmiersprache
und dann halt Python als eine dynamisch typisierte Programmiersprache. Es ist also eigentlich für
jeden was dabei, so dass man nach diesen drei Kapiteln, oder Entschuldigung, nach diesem einen
Kapitel 9 schon einiges gesehen hat, sage ich mal. Also ganz viele verschiedene Programmierkonzepte
und halt sogar auch Sprachen. Mag für den Einsteiger vielleicht ein bisschen schwierig
sein, jetzt auch noch gleich die Syntax von drei verschiedenen Sprachen sich anzueignen,
aber ich persönlich empfinde das Kapitel nicht unbedingt als Literatur, um danach dann drei
Sprachen zu beherrschen, sondern eigentlich eher als Einführungskapitel in die Konzepte. Auch wenn
das Kapitel Konzepte noch kommt, das ist nämlich das nächste, ich glaube Kapitel 10, aber die
Grundlagen der Programmierung, finde ich persönlich, kann man sehr schön nutzen, um eben genau das,
sowas wie eine Vorschleife, eine If-Bedingung und so weiter, mal im Detail sich anzuschauen. Und
halt auch Grundlagen der Böckter-Rotierung sind da halt im Kapitel Java drin. Von daher,
ich fand dieses Kapitel sehr sehr hilfreich, gerade auch für Einsteiger kann man das absolut
empfehlen, die Sachen durchzugehen. Man wird danach die drei Programmiersprachen nicht in
Tiefe beherrschen und dann gleich seine ersten Projekte umsetzen können damit, das ist klar,
aber so als ersten Einstieg finde ich das Kapitel eigentlich sehr gut geeignet. Ja,
dann steigen wir doch vielleicht direkt mal ein. Also unter Glieder ist das Kapitel in 9.1,
die Programmiersprache C, dann 9.2 Java und 9.3 Python. Und ich würde sagen, wir steigen einfach
mal dann direkt ins Kapitel 9.1 ein mit der Programmiersprache C. Aus meiner inzwischen
mehrjährigen Erfahrung als IHK-Prüfer kann ich sagen, dass C für Abschlussprojekte nicht
allzu verpreist ist, zumindest bei meiner IHK. Also ich habe noch nicht ein einziges Abschlussprojekt
mit C wirklich gesehen. Es werden da schon eher, sage ich mal, in Anführungszeichen modernere
Programmiersprachen benutzt, aber C ist heute immer noch immens wichtig in der Praxis. Also
wenn ich mir anschaue, was für Hardware und Software alles mit C läuft, also wenn man sich
an die ganzen Embedded-Systemen zum Beispiel orientiert, ja die laufen alle mit C. Also
ich weiß nicht, eine Kühlschranksteuerung und so weiter oder irgendwie Hardware in der Bahn
oder keine Ahnung was. Also es wird alles mit C heute noch gemacht, außer natürlich, sobald die
Geräte irgendwie mehr Speicher und mehr CPU kriegen, kann man es inzwischen natürlich auch mit
anderen Plattformen machen, Java und so weiter, das ist klar. Aber es gibt immer noch sehr viele
Embedded-Systeme, die halt mit C laufen. Und C ist halt so ein Urgestein der Programmierung und
da gibt es halt auch ganz viele tolle Konzepte, was heißt toll, also Pointer, ich weiß es nicht.
Wer damit schon mal gearbeitet hat, findet die vielleicht nicht unbedingt ganz so toll,
gerade als Einsteiger. Aber es ist halt ein wichtiges Prinzip und ich selber musste auch
noch C lernen in meinem Studium und ich fand es auch richtig und wichtig, das zu tun, weil man
dabei halt noch viel, viel mehr über den Computer und die Arbeitsweise des Computers lernt, als wenn
man halt eine noch higher-level-Programmiersprache benutzt, wie zum Beispiel Java oder C-Sharp oder
sowas. Bei C kann man sich halt auch ziemlich ins Bein schießen, gibt es auch so ein lustiges
Comic für, irgendwie fällt mir gerade nicht ein, vielleicht finde ich das wieder und packe das in
die Show-Notes, dass man sich mit C also wirklich nicht nur in den Fuß schießen kann, sondern so
ziemlich überall hin, weil man nämlich gerade mit diesen Pointern einfach die wildesten Dinge tun
kann. Aber genug der Vorrede, also C ist eine wichtige Programmiersprache, wobei es halt in
der Praxis, in der IHK-Prüfung wie gesagt nicht so häufig vorkommt, aber wenn du gerade in einem
Unternehmen arbeitest, wo C oder C++ quasi als objektorientierter Aufsatz auf C eingesetzt wird,
dann weißt du da sicher mehr drüber als ich. Also ich kenne C persönlich auch nur aus der
Vorlesung, wo ich das mal benutzen durfte, um nebenläufige Programmierungen zu lernen,
ansonsten ist C halt eine prozedurale Programmiersprache, es hat also nix mit Objektorientierung
oder sonst was zu tun, sondern ich kann damit ausschließlich die Sachen benutzen, die ich auch
in meiner Lernzyklone zu Algorithmen schon mal durchgekaspert habe, nämlich die Prozedur,
ach die Prozedur sag ich schon, die Sequenz, also das Abarbeiten von Arbeitsschritten nacheinander,
dann die Verzweigung, sowas wie if und switch case und dann die Wiederholung, also sowas wie
eine Vorschleife, Y-Schleife und so weiter und das kann man wunderbar mit C alles machen. Außerdem
kann ich natürlich noch Prozeduren und Funktionen definieren, deswegen ist es halt eine prozedurale
Programmiersprache. Ich finde den Einstieg in die Programmierung mit der Sprache C eigentlich auch
sehr gut gewählt. Hier im Handbuch für Fachinformatiker werden in diesem Kapitel so
richtig allgemein grundlegende Begriffe erklärt, wie zum Beispiel Unterschied zwischen Syntax und
Laufzeitfehler oder solche Dinge wie zum Beispiel eine Variablen-Deklaration, eine Wertzuweisung,
eine Kontrollstruktur, was ist das überhaupt? Also wirklich so völlige Basics, die jeder
Programmierer eigentlich kennen muss, nicht nur eigentlich, die muss man kennen, weil es die in
jeder anderen Programmiersprache auch gibt und die werden hier wirklich von Null an sauber eingeführt
und gut erklärt. Von daher kann ich dieses Kapitel absolut empfehlen, auch für jemanden,
der noch nicht programmiert hat, einfach für diese Grundlagen. Also gerade für solche
Begriffsdefinitionen hat mich überrascht. Ich wusste schon gar nicht mehr, dass es in dem Kapitel
halt so beschrieben ist. Ich habe halt nur im Inhaltsverzeichnis mal durchgeguckt und gesagt,
das wird ja spannend. Aber dass halt genau diese Grundlagen da drin sind, finde ich eigentlich ganz
toll. Also ich habe es auf jeden Fall nochmal wieder auf meine Liste genommen für meine
zukünftigen Azubis, dass gerade für solche allgemeinen Sachen, wo man eigentlich jeder
irgendwie denkt, dass er das weiß, also zum Beispiel sowas wie der Begriff der Variable.
Das muss eigentlich jeder wissen, was das ist, aber wenige Prüflinge können das natürlich
erklären. Und ich sehe dann hier zum Beispiel im Kapitel direkt unter der Überschrift Variablen,
wie bereits erwähnt, ist eine Variable ein benannter Speicherplatz. Punkt. Das ist eine
knackige, kurze und korrekte Definition und das sind genau die Dinge, die ich auch brauche,
um meine Azubis vorzubereiten auf die Prüfung. Und von daher würde ich dieses Kapitel absolut
empfehlen für diese ganzen Grundlagenbegriffe. Außerdem werden auch bestimmte Datentypen
eingeführt, wie zum Beispiel int, char, double, alles, was man so kennen muss, sage ich mal,
was es auch in so ziemlich jeder anderen Programmiersprache gibt. Das wird hier schön
erklärt mit Wertebereich und was man damit tun kann, Operatoren, Kontrollstrukturen, natürlich
if wird selbstverständlich hier eingeführt und natürlich auch ein Switchcase, wobei man das in
der Praxis vielleicht heute nicht mehr so häufig benutzen sollte, aber das ist eine andere Frage.
Aber auch sowas wie eine Funktion, eine Prozedur, das wird hier alles erläutert, sodass man das
also wirklich wunderbar lesen kann und noch mal diese Grundlagen wiederholen kann, auch ohne
vielleicht im Hinterkopf zu haben, dass man danach wirklich mit c jetzt programmieren will,
sondern ich verstehe die ersten Seiten des Kapitels tatsächlich so als allgemeine Einführung in die
Programmierung. Genau dafür kann ich es auch absolut weiter empfehlen. Die ganzen Inhalte,
die wir da sehen, sind natürlich auch dann hochgradig prüfungsrelevant, sodass es also
auch sehr gut passt, wenn du dich auf die Prüfung noch mal vorbereiten willst und so ein paar allgemeine
Begriffsdefinitionen dir noch mal anschauen willst, kann ich das Kapitel absolut empfehlen.
Ja und dann gibt es natürlich auch noch einen großen Bereich, um die Pointer zu erläutern.
Das ist ja auch ein wichtiges Konzept, was auch in c absolut häufig Anwendung findet,
keine Frage, wenn man das nicht verstanden hat, also dieses kleine Sternchen zum Beispiel vor
einem Variablenamen, was das doch für einen Riesenunterschied macht, ob das da steht oder
nicht, das sollte man sich mal auf der Zunge zergehen lassen. Und ich finde eigentlich,
auch wenn man in moderneren Programmiersprachen nicht unbedingt mit Pointern arbeitet oder gar
nicht arbeiten kann, finde ich eigentlich das Pointer-Kapitel sehr schön, weil zum Beispiel
hier erläutert wird der Unterschied zwischen Call-by-Reference und Call-by-Value und das ist
etwas, was es auch in jeder anderen Programmiersprache gibt und was meiner Meinung nach auch jeder
Prüfling erklären können muss, weil es auch wirklich ein grundsätzliches Verhalten in
Programmiersprachen ist, ob halt eben Parameter bei Value oder bei Reference übergeben werden.
Nochmal als kurze Auffrischung, Call-by-Reference bedeutet, dass, wenn ich einen Parameter in eine
Methode oder eine Funktion übergebe und der Parameter in dieser Funktion geändert wird,
dass sich diese Änderung auch auf den Aufrufer durchschlägt. Das heißt,
auch in der aufrufenden Methode ist zum Beispiel der Wert einer Variable nachher verändert,
wenn der Parameter in der Funktion, die diesen Parameter bekommt, verändert wurde und das ist
bei Call-by-Value nicht. Bei Value wird nämlich der Wert einmal kopiert in eine neue Variable,
die diesen Parameter darstellt und egal, was daran manipuliert wird, der Aufrufer
kriegt nichts davon mit, wenn eben bei Value gearbeitet wird. Und das ist auch so eine ganz
allgemeine grundsätzliche Geschichte, die man unbedingt können muss und die wurde hier,
wie ich finde, schön im Kapitel erklärt. Allerdings geht es dann weiter im letzten
Unterkapitel des Kapitels, die C-Standard-Bibliothek und da werden jetzt einige Sachen
durchgesprochen, die für die Praxis jetzt nicht ganz so relevant sind, sind aber auch nicht mehr
allzu viele Seiten, fünf, sechs Stück, glaube ich, und da wird jetzt auf C-Besonderheiten
eingegangen und das würde ich mir dann tatsächlich sparen. Zumindest für die Prüfungsvorbereitung
ist es irrelevant, denn, das habe ich schon öfter mal hier im Podcast erzählt, alles,
was spezifisch für eine Programmiersprache ist, wird niemals in einer Prüfung abgefragt,
weil halt nicht sichergestellt sein kann, dass jeder Prüfunger draußen eine bestimmte
Programmiersprache kennt, denn es gibt so viele verschiedene Programmiersprachen,
da kann man jetzt nicht genau abfragen, wie ist denn das jetzt in C gelöst. Das wäre einfach
unfair, deswegen wird so etwas nicht abgefragt. Das gibt es in den anderen beiden Kapiteln auch
noch. Bei Java und bei Python gibt es auch eine kleine Vertiefung oder, sage ich mal,
einen Ausblick in die Standard-Bibliotheken oder in Spezifika der Programmiersprachen und
das spare ich mir dann hier für das Review auch. Das ist natürlich, wenn ich mit Java,
Python, C arbeite. Eine andere Frage, da muss ich das kennen, keine Frage, das ist dann mein
Alltagsgeschäft, sage ich mal, aber für so eine Prüfungsvorbereitung ist das irrelevantes Wissen,
deswegen überspringe ich das jetzt auch und bin dann auch damit mit C schon durch und komme jetzt
direkt zum nächsten Unterkapitel, nämlich zu Java. Und das Kapitel beginnt eigentlich sehr
schön mit einer kleinen Einführung, wo Java herkommt und dann gefällt mir eigentlich ganz
gut, dass es auch direkt eine Liste der Unterschiede gibt zu C. Also das heißt,
wenn ich jetzt mit einer neuen Programmiersprache weiter mache und weitergehende Konzepte mir
angucke, dann sollte ich vielleicht auch verstehen, wo denn jetzt eigentlich der
Unterschied liegt zwischen beiden Programmiersprachen. Und ich finde es auch sehr
wichtig, gerade für die Prüfung, dass ich meine Programmiersprachen auch voneinander abgrenzen
kann und die zum Beispiel, sage ich mal so, kategorisieren kann. Ich hatte es in einer
früheren Episode schon mal gemacht, so was wie, wie ist die Typisierung oder gibt es,
sind die C-ähnlich, also zum Beispiel mit geschreiften Klammern oder eher sowas wie
Ruby, wo halt mit do und do and und solche Sachen irgendwie, do und end, Entschuldigung,
nicht do end, gearbeitet wird. Und da gibt es halt verschiedene Klassifizierungen,
wie ich Programmiersprachen einsortieren kann. Und das finde ich eigentlich sehr schön,
auch an diesem Kapitel, dass man halt drei völlig unterschiedliche Sprachen sich mal
anschaut und dann wirklich auch hoffentlich am Ende versteht, was denn die konkreten
Unterschiede eigentlich jetzt in der Praxis auszeichnet und wie ich das merke oder was
meine Vor- und Nachteile sind bei der Programmierung. Ja, was natürlich dann im Java-Kapitel als erstes
dazukommen muss, ist logischerweise die Objektorientierung. Ohne die geht natürlich
nichts in Java und so würde ich dieses Kapitel jetzt auch so ein bisschen verstehen. Nicht
unbedingt als Einführung in Java, sondern als allgemeine Einführung in die Objektorientierung.
Wie man beim C-Kapitel so ein bisschen die prozedurale Programmierung kennenlernte,
ist es jetzt hier bei Java die Objektorientierung, die da im Fokus steht. Natürlich brauche ich eine
konkrete Sprache, um die Syntax zu zeigen und auch die Konzepte zu verdeutlichen, aber ich
empfehle dieses Kapitel weiter als allgemeine Einführung in die Objektorientierung. Denn als
Einführung in Java ist es mir viel zu kurz. Also das reicht auf keinen Fall. Da kannst du dir zum
Beispiel die Java-Insel angucken mit selbst über 1000 Seiten nur für eine Einführung in Java. Also
da kommen wir mit. Ich gucke mal eben nach, wie viele Seiten sind das hier. Kann ich das irgendwie
sehen? Das sind 20 Seiten. 20 Seiten Einführung in Java, das reicht natürlich bei weitem nicht aus.
Für das gesamte Kapitel. Und das ist natürlich für so eine Prüfungsvorbereitung lächerlich,
aber als Einstieg, wenn ich davon noch nie was gehört habe, finde ich es sehr gut geschrieben.
Da kann man die wichtigen Konzepte, wie zum Beispiel Objektorientierung inklusive Vererbung
und auch Interfaces, werden hier auch schon genannt. Das heißt also, das ist ein kurzer
Überblick über so wirklich zentrale Konzepte, die auch immer wieder in der Abschlussprüfung
gefragt werden. Aber um das natürlich dann zu beherrschen und in der Praxis anzuwenden,
reicht das bei weitem nicht aus. Es kann wirklich nur ein kleiner Überblick sein.
Weiter geht es dann auch im Kapitel mit etwas java-spezifischen Sachen, obwohl das schon eher
in vielen Sprachen heutzutage vorhanden ist. Sowas wie eine Collection, also eine List auf
irgendwas. Also eine generische Klasse. Das wird jetzt hier als nächstes erläutert. Und am Ende
auch noch mal Enumerations. Die gibt es ja auch in so ziemlich jeder anderen PoE-Sprache,
die ich mir vorstellen kann. Also C-Sharp, Java, welche von denen jetzt noch einen? Weiß ich nicht.
Auf jeden Fall sehr viele andere PoE-Sprachen haben auch dieses Konzept einer Enumeration,
sodass ich die Einführung in diese beiden Begrifflichkeiten, also Collections und Enums,
eigentlich sehr sinnvoll finde hier an der Stelle und ich das auch so ein bisschen losgelöst von
Java betrachten würde. Der Rest des Kapitels ist dann allerdings wirklich wieder java-spezifikum.
Wie kann ich zum Beispiel eine Datei öffnen mit Java? Das sind natürlich Sachen, klar,
für die Praxis interessant, für die Prüfung eher weniger. Deswegen überspringen wir das einfach
mal und landen auch schon am Ende der 20 Seiten, das geht nämlich ratzfatz, mehr ist da gar nicht
mehr drin im Kapitel und sind dann beim weitaus längsten Kapitel, also Unterkapitel von 9 und
zwar die Sprache Python. Und Python, das sind, ich rechne das gerade mal durch, so um die 70
Seiten ungefähr, ist also von den drei Kapiteln das längste und hier wird auch einiges noch mal
im Detail behandelt. Das gehen wir doch vielleicht mal eben kurz durch. Python ist jetzt, wie schon
erwähnt, eine komplett andere Programmiersprache als C und Java, ist halt als allererstes mal
dynamisch typisiert. Das heißt, das Programmieren ist erstmal völlig anders als zum Beispiel in
Java, wo ich jeden Typ am besten 37 mal kennzeichnen muss und der Compiler mir alle
möglichen Sachen verbietet. Python ist halt dynamisch, da brauche ich erstmal gar keine
Typen und ich kann zum Beispiel einen String, einem Integer zuweisen und hin und her, denn
die Variablen haben zum Beispiel gar keine Datentypen. Und was ich an Python noch insbesondere
ganz interessant finde, ist, dass sie whitespace-sensitive, nennt man das so, weiß ich
gar nicht, ist, also dass das whitespace, das Leerzeichen, das Einrücken relevant ist. Und das
finde ich ganz schön deswegen, weil das mich dazu zwingt, meinen Code sauber zu formatieren. In Java
und in C, da kann ich halt schreiben, wie ich will, da kann ich mit Tabs einrücken oder überhaupt
nicht einrücken, alles in eine Zeile klatschen, ganz egal. Das geht in Python gar nicht, weil
der Compiler das dann nicht kompiliert. Das heißt, wie ich eine Zeile einrücke, das hat
automatisch eine Auswirkung auf die Interpretation des Codes. Und das finde ich eigentlich eine ganz
tolle Sache. Ich kenne wenig andere moderne Sprachen, die diese Eindrückung so forcieren
wie Python. Eigentlich kenne ich keine andere, muss ich ehrlich sein. Von daher, das ist wieder
so ein kleines Alleinstellungsmerkmal von Python. Finde ich aber irgendwie auch echt ganz cool,
weil ich halt keinen gruseligen, schlecht eingerückten, schlecht strukturierten Code
schreiben kann und mir auch solche Dinge wie zum Beispiel bei einer if-Anweisung, wo ich keine
geschweiften Klammern setze, kann es mir halt nicht passieren, dass ich dann, wenn ich irgendwas
in dem if-Statement, in dem Body des if-Statements ergänzen will, dass es dann auf einmal nicht mehr
zum if zählt, weil zum Beispiel ich die Klammer vergessen habe und jetzt auf einmal zwei Zeilen im
Body stehen, aber nur die erste für das if herangezogen wird. Das kann mir in Python nicht
passieren. Wenn die Einrückung korrekt ist, dann sind die Klammern im Prinzip egal. Nicht nur im
Prinzip egal, die Klammern sind egal. Ich brauche sie nämlich nicht, weil halt die Einrückung die
ganze Struktur des Codes für mich vorgibt. Auch sehr interessant zu sehen, noch mal, wenn du es
noch nie in anderen Polymer-Sprachen gesehen hast, ist, dass halt nicht mehr CamelCase gearbeitet
wird, standardmäßig zum Beispiel für Variablen, sondern mit der SnakeCase. Das heißt, Wörter
werden mit Kleinbuchstaben komplett geschrieben und neue Wörter werden mit einem Unterstrich,
einem Underscore, hintereinander geschrieben. Da das so ein bisschen aussieht wie eine kleine
Schlange, nennt man das auch SnakeCase. Das heißt, wenn ich jetzt erstmal von Java direkt zum
Python-Kapitel wechsle, dann sieht das erstmal alles komplett anders aus. Die Bezeichner sehen
anders aus, die Typisierung ist nicht vorhanden. Also das ist schon ein krasser Umstieg und genau
deswegen würde ich auch jedem Prüfling mal empfehlen, einfach in einer dynamisch typisierten
Sprache zu arbeiten, beziehungsweise in einer statischen, wenn man noch nie in einer solchen
gearbeitet hat. Also wenn du zum Beispiel in deinem Tagesjob mit Java arbeitest, schau dir
unbedingt mal eine dynamische Polymer-Sprache an. Wenn du in deinem Tagesjob mit Python arbeitest,
schau dir mal eine statisch typisierte Polymer-Sprache an, einfach weil diese beiden
Welten so extrem unterschiedlich sind und beide haben halt ihre Vor- und Nachteile. Man kann gar
nicht pauschal sagen, das eine ist besser oder schlechter als das andere. Sie sind einfach
komplett anders und du musst halt auch am Ende deiner Ausbildung eigentlich entscheiden können,
welche Art von Polymer-Sprachen denn für welche Sachen gut oder schlecht geeignet ist. Von daher
würde ich dir einfach empfehlen, einfach mal eine andere Polymer-Sprache auszuprobieren,
die anders typisiert ist als die, die du den ganzen Tag lang benutzt.
Was Python auch cooles mitbringt, das ist eine sogenannte REPL, R-E-P-L, das ist die
Abkürzung für Read, Eval, Print, Loop. Also einlesen, evaluieren, ausgeben und dann
das ganze von vorne anfangen. Die REPL. Das ist quasi eine interaktive Shell, wo
ich die Befehle der Programmiersprache direkt eingeben kann und auch das
Ergebnis sofort sehe. Und viele moderne Programmiersprachen bringen so eine REPL
mit. In Java 9, was irgendwann 2017 angeblich kommen soll, wird auch so eine
REPL integriert endlich. Das kennst du vielleicht schon von anderen
Programmiersprachen oder gar nicht von Programmiersprachen, vielleicht sogar von einer Shell. Die PowerShell
zum Beispiel ist ein sehr gutes Beispiel dafür. Alles, was du auf der Shell
direkt eingibst, könntest du auch eins zu eins in einem Skript hinterlegen und
dann wäre es quasi ein ausführbares Programm. Und du kriegst aber durch diese
interaktive Shell ein ganz schnelles Feedback. Du musst dir jetzt nicht wie
zum Beispiel in Java immer eine public static void main definieren, um
irgendwelche kleinen Codeschnipselchen auszuprobieren, sondern du könntest einfach
eine Shell aufmachen, tippst das da ein und kriegst vielleicht sogar, keine Ahnung,
mit Steuerung, Leertaste oder wie auch immer, eine Codevervollständigung in
dieser Shell. Sodass du also wirklich ganz, ganz schnell einfach mal einen
Prototypen basteln kannst und ausprobieren kannst. So ein bisschen
gucken kannst, welche Methoden gibt es denn an dem Objekt, was passiert denn,
wenn ich die Methode aufrufe mit diesem Parameter, wie, was kommt da zurück und so
weiter. Also es ist wirklich so ein bisschen fürs Explorative Entwickeln.
Einfach mal ausprobieren, was gibt es denn. Gucken, wie das funktioniert, wie
sich das verhält. Dafür ist so eine REPL echt cool.
Ich muss sagen, der Rest des Python Kapitels ist nicht mehr ganz so
interessant. Es wird jetzt sehr, sehr viel Code gezeigt, sehr viel Spezifika von
Python, wie die Listenverarbeitung ist und Maps und Objektorientierung und so
weiter und so fort. Ist eine tolle Sache, sollte man auch können, aber vielleicht
nicht unbedingt in Python, wenn man nicht täglich damit arbeitet. Und es sind
jetzt auch keine so neuen Konzepte mehr dabei, dass ich sage, Mensch, das muss ich
mir noch mal angucken für eine Prüfung. Das Einzige, was im Kapitel noch
eingeführt wird, sind Lambda-Ausdrücke und die würde ich mir unbedingt anschauen.
Das ist eigentlich in fast jeder Programmiersprache, in jeder modernen
heute Standard, dass ich Lambdas benutzen kann. Und diese kleine Einführung, die ist
insgesamt vielleicht auch ein bisschen kurz geraten, aber trotzdem ist es so ein
erster Hinweis darauf, was es ist. Was ist ein Lambda-Ausdruck? Also quasi einfach
eine anonyme Funktion. Wenn du bislang noch nichts davon gehört hast, ein
Lambda-Ausdruck ist eine Möglichkeit, um eine anonyme Funktion schnell
und mit wenig Code zu definieren. Das heißt, in den meisten Programmiersprachen ist es ein
Einzeiler, um so eine Funktion zu definieren und die kann ich dann zum
Beispiel an andere Funktionen als Parameter geben. Und damit ermöglichen
sich mir ganz neue Wege der Programmierung. Ich kann zum Beispiel
solche higher-order-functions aufrufen, so etwas wie zum Beispiel eine
Filterfunktion an einer Liste. Und dieser Filterfunktion gebe ich eine Funktion
rein als Parameter und die Filterfunktion führt diese Funktion dann
für jedes Element der Liste aus und wenn diese Funktion zum Beispiel
true zurückgibt, dann packt sie das Ergebnis, packt die Elemente, für die die
Funktion true zurückgibt, in eine neue Liste und somit ist dann am Ende des
Filteraufrufs meine Liste eben gefiltert, wie der Name schon sagt. Und ich muss
aber nicht jedes Mal in der Filterfunktion programmieren, wie sie
gefiltert werden soll, sondern diese Funktion wird von draußen als Parameter
reingegeben, so dass ich also eine Möglichkeit bekomme, Funktionen zu
programmieren, die sich auf andere Funktionen verlassen und somit eine ganz
generische Funktion schon wieder bereitstellen. Und diese generischen
Funktionen sind halt zum Beispiel map, filter und reduce. Die werden jetzt im
Kapitel hier zwar nicht erklärt, aber die solltest du dir unbedingt mal für die
Prüfung angucken, denn es ist ein ganz wichtiges Prinzip eigentlich heute in
allen Sprachen. Von daher, das jetzt nur als kleiner Ausflug hat jetzt nichts
mit dem Kapitel hier direkt zu tun, aber da Lambdas halt so einen schönen Einstieg
in diese funktionale, ich sage jetzt mal nicht die funktionale Programmierung, aber
diese Konzepte der funktionalen Programmierung bieten, würde ich das
doch als Anlass nehmen und nochmal ein bisschen zu vertiefen und mal gucken, zu
gucken, was kann ich denn mit diesen Lambdas eigentlich anstellen. Ich weiß
jetzt, wie die funktionieren und wie ich den definiere, aber was habe ich denn
jetzt davon? Was bringt mir das? Und da würde ich dieses Kapitel als ersten
Anlass nehmen, da mal einfach nachzuforschen.
Ansonsten haben wir halt ganz viel weiteren Kram hier drin, der irgendwie
auf Python eingeht und dann auch die Standardbibliothek, wieder ein paar
Sachen, die in Python eingebaut sind und so. Ist eine tolle Sache, für die Prüfung
wie gesagt irrelevant, deswegen gehen wir das jetzt nicht im Detail durch, sondern
schließen das Kapitel im Prinzip schon ab. Also wir sind jetzt heute mal ein
bisschen schneller fertig als sonst, finde ich auch gar nicht schlimm.
Wie gesagt, das Kapitel kann ich absolut empfehlen, guckst dir unbedingt mal an.
Du kriegst einen guten Überblick über drei völlig unterschiedliche
Primiersprachen, einen guten Einstieg in unterschiedliche Konzepte, aber auch die
absoluten Basics wie Variabendefinitionen, Deklarationen, Schleifen, Objektorientierung
und auch Lambda-Ausdrücke sogar, was heutzutage ja auch wirklich wichtig ist.
Und das alles auf wie viele Seiten hat das ganze Kapitel? Ich habe jetzt gar
nicht geguckt, es ist jetzt nicht unbedingt das längste Kapitel, aber mit
120 Seiten hat das Ding insgesamt. Und du musst aber noch die
Übungsaufgaben abziehen. Also ich sage jetzt mal roundabout so 100 Seiten.
Auf den 100 Seiten wirklich einen guten Überblick und hast am Ende auch einiges
an Grundlagen noch mal aufgefrischt, wenn du sie nicht schon kanntest. Von daher
absolute Leseempfehlung von meiner Seite für dieses Kapitel. Aber die absoluten
Details der einzelnen Primiersprachen, die kannst du dir dann tatsächlich auch
sparen. Das wird auf jeden Fall nicht prüfungsrelevant. Und wenn du in einer
der Primiersprachen in deinem Dayjob arbeitest, dann reicht das Kapitel
natürlich auch auf keinen Fall. Dann wirst du dir ein separates Buch natürlich
angucken müssen, wie zum Beispiel die Java Insel. Für Java und für C und Python
kann ich dir nichts empfehlen, denn da habe ich noch kein Buch gelesen, ehrlich
gesagt. Aber das wirst du dann selber besser wissen, wenn du mit den Sprachen
arbeitest. Aber wichtig nur, dieses Kapitel reicht natürlich nicht als
Einstieg in eine Primiersprache. Es gibt wirklich nur einen Überblick. Gut, damit
wäre ich also durch mit Kapitel 9. Dann sage ich wie immer, schau doch mal in die
Shownotes zur Episode, wenn du die ganze Links und so weiter dir einschauen willst.
Zum Beispiel auch zum Open Book, wo einige der erwähnten Kapitel auch noch
online verfügbar sind, komplett kostenfrei. Natürlich beim Galileo Verlag.
Die Shownotes findest du wie immer unter anm.wiklapodcast.de
slash 93 für die 93. Episode hier heute. Und da findest du auch noch zwei Links zu
Podcast-Episoden, wo ich die ganzen Grundlagen, die da erwähnt werden in
Kapitel 9 auch wirklich mal abfrage. Das sind sogar zwei Podcast-Episoden, häufige
Fragen im Fachgespräch zur Programmierung, Teil 1 und Teil 2. Und da
wird alles das abgefragt, was du auch in diesem Kapitel hoffentlich dann gelesen
hast. Von daher, wenn du dich dann so ein bisschen auf die Prüfung etwas
konkreter vorbereiten willst und schauen willst, was werden denn da jetzt vielleicht
für Fragen wirklich im Detail zugestellt, dann hör dir doch die beiden
Podcast-Episoden noch mal an. Da kriegst du dann auf jeden Fall meine
Antworten auf oder meine erwarteten Antworten, sagen wir mal so, auf die Themen,
die vielleicht in der Prüfung dann abgefragt werden. Als Literaturempfehlung
zur weiteren Vertiefung hatte ich jetzt schon ein paar mal gesagt, die Java-Insel
von Christian Ullenbohm ist der Klassiker, wenn du irgendwas mit Java machen
musst. Selber über 1.000 Seiten, also was da nicht drinsteht, das gibt es nicht in
Java. Wobei, ne, das stimmt nicht. Es gibt auch noch Version 2 der Java-Insel, das
heißt irgendwie, ich weiß den Namen gerade nicht mehr, auf jeden Fall ist das auch
noch mal über 1.000 Seiten dick. Und da sind dann alle Sachen drin, die in der
Java-Insel 1 nicht drin sind. Und es gibt auch noch der Weg zum Java-Profi, auch
noch mal über 1.000 Seiten, da ist noch mal mehr drin. Also ich glaube zu Java. Und es
gilt aber sicherlich auch für alle anderen Programmiersprachen. Da wirst du intensiv
dicke, fette Literatur finden, wenn du dich da einarbeiten willst. Wenn du aber
analog zu diesem Kapitel 9 im Handbuch für Fachinformatiker einfach mal einen
netten, kleinen, kurzen Überblick haben willst über verschiedenste
Programmiersprachen und was ihre Stärken und Schwächen sind, dann kann ich dir
ganz, ganz, ganz wärmstens empfehlen Seven Languages in Seven Weeks. Das ist
eines meiner absoluten Lieblingsbücher, ist inzwischen schon ein paar Jährchen
alt. Aber da drin werden, wie der Name schon sagt, sieben verschiedene
Programmiersprachen vorgestellt. Und zwar auch wirklich mit ganz unterschiedlichen
Konzepten. Objektorientiert, funktional, Mischprogrammiersprachen. Da drin ist Scala,
Ruby, Haskell, ganz wilde verschiedene Programmiersprachen. Und da kann man
wirklich auf, ich glaube, 30, 40 Seiten je Programmiersprache mal die Highlights
von teilweise relativ unbekannten Programmiersprachen sich reinziehen und
am Ende wirklich mit einem ganz tollen, neuen Eindruck rausgehen. Und
vielleicht auch seine eigene Programmierweise so ein bisschen
überdenken. Also das ist eine absolute Leseempfehlung von mir.
Inzwischen gibt es sogar schon Seven More Languages in Seven Weeks, weil das
erste Buch nie ausgereicht hat, weil es immer noch mehr coole Programmiersprachen
gibt. Und das ist wirklich was, wo man richtig noch mal so ein bisschen
Motivation rausziehen kann und ein bisschen Anregungen für die eigene
Programmierung. Das kann ich dir, wie gesagt, wärmstens ans Herz legen, dir das
Buch mal anzuschauen. Habe ich in den Shownotes auch verlinkt, wie alles andere,
was ich hier heute auch erwähnt habe. Ja, dann kannst du dich, wenn du magst,
auch einfach in meinen Newsletter eintragen, wenn du zum Beispiel über die nächsten
Termine der Buchclubs, die noch vor uns liegen, informiert werden möchtest.
Unter anwendungsentwicklerpodcast.de slash Newsletter kannst du das tun.
Kostet nichts. Du kannst dich auch jederzeit wieder austragen, wenn du
möchtest. Und du kriegst dann einmal die Woche gesammelt von mir alle neuen
Informationen der Websites und auch meine ganzen Links der Woche. In den
letzten Wochen habe ich immer so, ja, ziemlich genau zehn Links mit
interessanten Inhalt rund um die Ausbildung, Programmierung und so weiter
verschickt. Also abonniere das doch einfach, wenn du möchtest. Und wenn nicht,
dann trägst du dich einfach wieder aus, wenn es dir nicht mehr gefällt.
Außerdem kriegst du natürlich auch Zugriff auf meine ganzen Ressourcen. Hatte ich
noch ganz vergessen. Meine Checkliste zum Beispiel zur Projektdokumentation mit
über 100 Punkten, was du dir alles angucken solltest, wenn du deine Doku,
bevor du deine Doku abgibst hoffentlich und so weiter und so fort. Also schau doch
einfach rein, wenn du möchtest. Und als allerletztes habe ich noch eine
kleine Bitte an dich. Ich hatte es schon mal erwähnt, bald ist die Episode 100
meines Podcasts dran. Und die würde ich ganz gerne so gestalten, dass ich einfach
Fragen meiner Hörer dort ganz konkret beantworte. Einfach einen ganzen Haufen
an Fragen, der mir so zugetragen wird. Und wenn du noch konkrete Fragen rund um
die Prüfung hast oder die Ausbildung oder die Programmierung oder es ist mir
eigentlich ganz egal was, wenn du irgendwas hast, was du mich fragen willst,
dann schick mir doch einfach eine Mail oder schreib mich bei Facebook an oder
bei Twitter oder bei Xing oder sonst wo. Du findest mich überall. Und dann nehme
ich diese Fragen gerne in die Episode 100 mit auf. Würde mich freuen, wenn ich
mit Hörerfragen dieses coole Jubiläum eigentlich füllen kann.
Von daher, nimm einfach Kontakt mit mir auf und schreib mir deine Fragen. Das
würde mich sehr freuen. Ansonsten sage ich für heute erstmal
vielen Dank fürs Zuhören und bis zum nächsten Mal. Tschüss!










Neueste Kommentare