- 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
Es wird Zeit für den ersten Buchclub im Anwendungsentwickler-Podcast. Und welches Buch wäre besser geeignet als das Handbuch für Fachinformatiker? Daher besprechen wir in der dreiundfünfzigsten Episode die ersten zwei Kapitel des Buchs.
Podcast: Play in new window | Download (Duration: 34:21 — 16.0MB)
Abonnieren: Apple Podcasts | Spotify | RSS
Inhalt
- IT-Berufe und Studienrichtungen, Aufbau und Ablauf der Abschlussprüfung
- Guter Überblick zum Einstieg. Man sollte die Berufe kennen.
- Geschichte der Computer
- Für mich eine spannende Zeitreise. Für die Prüfung irrelevant.
- Entwicklung der Programmiersprachen
- Das ist unser Brot und Butter 🙂
- Man sollte kennen/erklären können: Maschinencode, Assembler, Fortran, Cobol, Basic, C, imperative/prozedurale Programmierung, Smalltalk, C++, Java, C#, LISP, Prolog
- Was bedeutet Abwärtskompatibilität bei C++?
- C-Code ist auch gültiger C++-Code.
- Wo wird Smalltalk in der Praxis eingesetzt?
- Nirgends 😉
- Was sind Beispiele für logische Programmierung?
- Prädikatenlogik in Prolog.
- Digitale Speicherung und Verarbeitung von Informationen
- Unterschied analog/digital wird gut erklärt.
- Für die Prüfung sollte man übliche Farbtiefen und Sampling-Raten und -Tiefen kennen.
- Zeichensätze werden nur kurz behandelt, kommen später aber noch einmal. Siehe auch Zeichensätze und -kodierung.
- Einführung in die Logik
- Wichtiges Kapitel für alle Informatiker. Wenig direkt prüfungsrelevant, sondern Transferwissen.
- Wofür brauchen wir die Mengenlehre?
- SQL macht nichts anderes als Mengenoperationen.
- Informationsspeicherung im Computer
- Wo braucht man die unterschiedlichen Zahlensysteme in der Praxis?
- Dual: Subnetting, Oktal: Linux-Dateirechte, Hex: MAC-Adresse
- Die Vorsilben der Maßeinheiten muss man auswendig kennen.
- Welche Zweierpotenzen sollte man auswendig können?
- 1-10, 16, 24, 32, 48, 64, 128
- Wo braucht man die unterschiedlichen Zahlensysteme in der Praxis?
- Elektronische Grundlagen
- Nett zu wissen, aber für die Prüfung eher unwichtig.
- Automatentheorien und -simulationen
- Komplexität ist ein wichtiges Thema für die Praxis, aber für die Prüfung irrelevant.
- Auch die Turing-Maschine sollte jeder Informatiker kennen, aber in der Prüfung wird sie eher nicht Thema sein.
- Der virtuelle Prozessor verdeutlicht gut verständlich die Abläufe in einer CPU.
Allgemeines Feedback zum Buch
- Der Autor erzählt sehr persönlich. Man fühlt sich als Leser angesprochen.
- Roter Faden in Kapitel 2 fehlt ein wenig.
- Komplexität und elektrische Schaltungen waren schwer zu verstehen.
- Nächster Buchclub: 04.04.2016, Kapitel 3 (Hardware) und 4 (Netzwerkgrundlagen)
Literaturempfehlungen
Na was wohl? 😉
*(direkt beim Rheinwerk-Verlag bestellen*)
Links
- Permalink zu dieser Podcast-Episode
- RSS-Feed des Podcasts
- 1 Einführung
- 2 Mathematische und technische Grundlagen
SmallTalk wird in der Tat so gut wie gar nicht in der Praxis verwendet (leider, könnte man sagen, da Objektorientierung kaum irgendwo anders „sauberer“ implementiert ist). Lediglich indirekt als Ideengeber diente es, unter anderem für die spezielle Verwirklichung der Objektorientierung in Objective-C oder für Ruby. Dennoch sollte man auf das Projekt Squeak (http://squeak.org/) hinweisen, eine auf SmallTalk basierende Programmier-Lern-Umgebung, insbesondere für Kinder.
Die Flash-Simulation des Virtuellen Prozessors gibt es übrigens hier (auf der eigentlich in Rente geschickten alten Website): http://www.lingoworld.de/buecher-old/fachinfo/vprocessor
Squeak kannte ich noch nicht. Danke für den Tipp!
Da wir von SmallTalk und Squeak reden: Es gibt das Pharo-Projekt, was ein „Business-Fork“ von Squeak ist und sich zum Ziel gemacht hat, eine SmallTalk-Entwicklungsplattform für den professionellen Bereich bereitzustellen (http://pharo.org).
Unter „Stories“ (http://pharo.org/success) werden auch einige Erfolgsgeschichten aus der Praxis wiedergegeben und es gibt eine Association von Pharo-Förderern, dessen „Gold-Member“ u.a. das Unternehmen Thales ist.
Die „eXept Software AG“ bietet ebenfalls eine professionelle SmallTalk-Plattform an: Smalltalk/X (https://www.exept.de/de/smalltalk-x.html).
Um zu verstehen, was Objektorientierung wirklich ausmacht und was das eigentlich ist, sollte jeder angehende Entwickler sich zumindest mal SmallTalk angeschaut haben. Dort werden die Prinzipien konsequent umgesetzt und alles findet dort wirklich nur über den Austausch von Nachrichten statt… selbst Verzweigungen werden dort als Boolean-Objekte behandelt, die auf die Nachrichten ‚IfTrue‘ oder ‚IfFalse‘ reagieren. Java ist im Gegensatz dazu keine reine OO-Sprache, weil dort auch prozedural entwickelt werden kann und es primitive Datentypen gibt. Auch kann dort die Kapselung der Daten aufgeweicht werden: bei einer „echten“ OO-Sprache sind Attribute nach außen nicht sichtbar 😉
Spannend. Das kannte ich bislang auch noch nicht.
Meine ehemalige Auszubildende lernt im Studium gerade auch Smalltalk. Aber es gibt wohl schon die Entscheidung, im nächsten Jahrgang auf Java umzustellen. Vielleicht nicht die beste Wahl 😛
Logische Sprachen wie Prolog werden vor allem in der KI verwendet zur Darstellung von Weltwissen. Durch logische Schlüsse kann der Computer aus vorhandenen Fakten neue Informationen ableiten, so dass man nicht alles explizit angeben muss (wenn Säugetiere 4 Beine haben und ein Elefant ein Säugetier ist, muss man nicht explizit angeben, dass Elefanten 4 Beine haben; der Umgang mit dreibeinigen Elefanten, die ein Bein verloren haben, ist aber für manche Sprachen schwierig). In der Bioinformatik werden oft Ontologien verwendet, die Wissensbasen auf Grundlage von logischen Sprachen sind, z. B. für Informationen über Gene oder Proteine.
Hexadezimal wird auch zur Angabe von Codepunkten in Zeichencodierungen wie Unicode verwendet.
Danke für die Ergänzungen! 🙂
Hallo Stefan!
ich lese gerade aus Spaß an der Freud das „Handbuch für Fachinformatiker“ und stehe bei Seite 100, Turing-Maschine (Skript) schon auf dem Schlauch.
M.E läuft der Mechanismus so ab: Der Zeige wandert so lange nach rechts, bis er auf eine Leerstelle trifft, in die er ein Y schreibt. Dann wandert er so lange nach links bis er eine 0 oder 1 findet. Nachdem er den Wert mit einem X überschrieben hat, beginnt wieder die Wanderung nach rechts. Via der Verzweigung (Zustand 5: 0, Zustand 6:1) wird das Y mit dem gefundenen Wert überschrieben. Dann wird ein neues Y gesetzt etc. Am Ende sind die ursprünglichen Werte ge-„X“-t und stehen auf der rechten Seite in umgekehrter Reihenfolge.
Ich verstehe aber nicht, wie der Prozess sauber abgebunden wird. Ist der letzte Wert gefunden müsste, er doch eigentlich in Zustand 4 irgendwie an das Ende springen. Macht er aber in Zustand 3 . Müsste die Zeile .,7,- nicht in Zustand 4 stehen? Stehe ich da auf der Leitung?
Ich hoffe, so eine amateurhafte Frage ist okay…
Ansonsten: sehr lehrreicher und fundierter Podcast!
Schönen Gruß
Frank
Hallo Frank, sorry, um mich mit so einer Detailfrage zum Buch zu beschäftigen, fehlt mir leider die Zeit. Versuch es doch mal im Forum.
Hallo Stefan, mach ich. Danke für die Antwort, Frank
Wow. War ein guter Tipp. Problem gelöst.
Hallo Stefan,
finde deinen Podcast Klasse. Nur eine kleine Anmerkung: QuickSort ist im Worst-Case in O(n^2); wenn man eine sortierte Liste sortieren würde. Aber im Average-Case läuft der Quicksort in O(n*log(n)).
Vielen Dank für die Mühe.
Hallo Alex, das stimmt. Aber im alltäglichen Sprachgebrauch schauen wir ja meist nur auf den durchschnittlichen Fall, um die Algorithmen zu vergleichen. Im konkreten Anwendungsfall muss man sich natürlich Gedanken darüber machen, wie die zu sortierenden Daten genau aussehen und welcher Algorithmus dafür am geeignetsten ist.