Vorwort
Das Merkwürdige an der Zukunft ist wohl die Vorstellung,
dass man unsere Zeit später die gute alte Zeit nennen wird.
– Earnest Hemingway
Dieses Buch ist eine Jubiläumsausgabe – denn die erste Auflage erschien vor ziemlich genau zehn Jahren bei Galileo Computing, damals noch unter dem Titel »Kompendium der Informationstechnik«. Gemessen an dem Fortschritt, den die Informationstechnik in diesen zehn Jahren gemacht hat, stammt diese erste Auflage tatsächlich aus alten Zeiten. Ob es sich dabei um eine gute Zeit handelte, sei allerdings dahingestellt – aus heutiger Sicht könnte man sie nach Großelternart auch schlicht mit »Wir hatten ja nichts« beschreiben.
Vor zehn Jahren war das Platzen der »Dotcom-Blase« noch nicht allzu lange her; nach einer ersten Welle der Euphorie machte sich im Bereich der damals noch recht neuen Webtechnologien eine allgemeine Ernüchterung breit. Träume vom schnellen Profit, die die Aktienkurse befeuert hatten, waren erst einmal ausgeträumt.
Zur Zeit der ersten Auflage begann sich der IT-Markt dann zu konsolidieren – die Spreu der Träume vom Wolkenkuckucksheim trennte sich vom Weizen des Machbaren und Sinnvollen. Und die nächste Wirtschaftskrise, die etwa 2008 ihren Ausgang nahm, zeigte, dass die IT durch diesen neuen Realismus inzwischen zu wichtig geworden war, als dass Unternehmen an dieser wieder so bereitwillig gespart hätten wie noch in der vorherigen.
Dass sich die Fähigkeiten der Hardware weiter verbessern würden, war abzusehen. Dass das Internet so allgegenwärtig sein würde wie heute – in Firmen und Institutionen, zu Hause und unterwegs –, dagegen nicht unbedingt.
Die nächsten zehn Jahre werden sicherlich genauso spannend wie die vergangenen, und wenn Sie Ihre Reise in die IT erst jetzt durch eine Ausbildung beginnen, ist es auch heute eine gute Zeit, einzusteigen, zu sehen, wohin die Fahrt geht, und in Zukunft vielleicht sogar die Richtung mitzubestimmen. In diesem Sinne: Gute Reise!
Worum geht es in diesem Buch?
Dieses Buch beschreibt die wesentlichen Ausbildungsinhalte im Fachkunde-Unterricht in den Ausbildungsberufen Fachinformatiker Anwendungsentwicklung und Systemintegration, IT-Systemelektroniker, IT-Systemkaufleute und Informatikkaufleute. Anders als herkömmliche Bücher handelt es sich jedoch nicht um eine Tabellensammlung zum Auswendiglernen, sondern um praxisorientierte Anleitungen, die Sie weit über Ihre Ausbildung hinaus bei Ihrer alltäglichen Arbeit mit Computersystemen einsetzen können.
Sie lernen in den folgenden Kapiteln zahlreiche Geräte, Betriebssysteme, Programmiersprachen und Anwendungsprogramme kennen und erfahren viel Wissenswertes über Netzwerke und das Internet. Bei allen Themen habe ich versucht, die Balance zwischen Theorie und Praxis zu wahren: Es werden weder die technischen und theoretischen Details verschwiegen, wie in zahlreichen Büchern für absolute Einsteiger, noch kommen die praktischen Anwendungsbeispiele zu kurz, was in manchen akademischen Lehrwerken der Fall ist.
Soweit es möglich ist, habe ich versucht, konkrete Software aus dem Open-Source-Bereich auszuwählen. Zum einen, weil ich selbst seit Jahren Open-Source-Software einsetze und entwickle, vor allem aber auch, weil Sie auf diese Weise fast jedes in diesem Buch behandelte Programm kostenlos und ohne jegliche Einschränkungen herunterladen, installieren und benutzen können.
Die Ausbildung zum Fachinformatiker oder für andere IT-Berufe enthält neben den fachspezifischen Inhalten auch Aspekte wie Wirtschafts- und Sozialwissenschaften, Rechtskunde oder Betriebsorganisation. Solche Themen können in diesem Buch nicht berücksichtigt werden. Für das Fach Technisches Englisch finden Sie in Anhang B immerhin eine Stichwortliste in beiden Richtungen.
Kapitelübersicht
Die einzelnen Kapitel dieses Buches widmen sich den folgenden Themen:
- Kapitel 1, »Einführung«, behandelt die Geschichte und grundlegende Funktionsweise des Computers. Außerdem werden einige wichtige Grundlagen der Informationstechnik erläutert; sie bilden die Voraussetzung für das Verständnis späterer Kapitel.
- In Kapitel 2, »Mathematische und technische Grundlagen«, werden zunächst die mathematischen und logischen Prinzipien erläutert, auf denen der Computer basiert. Anschließend lernen Sie die wichtigsten elektrotechnischen Grundbausteine kennen. Abgerundet wird das Kapitel durch die Vorstellung von Automatentheorien und Rechnersimulationen.
- Kapitel 3, »Hardware«, beschäftigt sich mit den diversen Bauteilen, aus denen ein Computer besteht, sowie mit zahlreichen wichtigen Peripheriegeräten. Sie erfahren nicht nur die wichtigsten technischen Details über Elemente wie den Mikroprozessor, verschiedene Laufwerke und Datenträger oder andere Ein- und Ausgabegeräte, sondern es werden auch praktische Informationen vermittelt. Zum Beispiel werden Einbau und Anschluss von Komponenten oder das BIOS-Setup angesprochen.
- In Kapitel 4, »Netzwerkgrundlagen«, wird die Entwicklung der Netzwerke und des Internets beschrieben, und Sie erhalten eine Einführung in die Begriffswelt der Netzwerke. Beispielsweise werden Schichtenmodelle und Netzwerkarchitekturen vorgestellt. Danach wird die genaue Funktionsweise verschiedener Arten von Netzwerkkarten und -anschlüssen erläutert; außerdem werden diverse Netzwerkprotokolle beschrieben. Den Schwerpunkt bildet die TCP/IP-Protokollfamilie, die für das Internet entwickelt wurde und inzwischen der wichtigste Kommunikationsstandard für alle Arten von Netzwerken ist.
- In Kapitel 5, »Betriebssystemgrundlagen«, werden allgemeine Konzepte des Betriebssystemaufbaus erklärt, zum Beispiel die Verwaltung von Prozessen, das Speichermanagement oder die Dateiverwaltung.
- Kapitel 6, »Windows«, beschreibt die theoretischen und praktischen Grundlagen des verbreitetsten PC-Betriebssystems der Welt; den Schwerpunkt bildet die aktuelle Version Windows 7, wobei die Verhältnisse in den recht ähnlichen älteren Versionen Vista und XP oft mit behandelt werden. Neben der grafischen Benutzeroberfläche wird auch die Arbeit mit der klassischen Windows-Kommandozeile sowie mit der neueren Windows PowerShell behandelt. Den Abschluss bildet ein Einstieg in die Windows-Konfiguration.
- In Kapitel 7, »Linux«, wird eine zweite Betriebssystemfamilie praktisch beleuchtet. Schwerpunktmäßig wird die Arbeit mit der Linux-Shell bash und den zahlreichen Systemprogrammen behandelt; daneben werden die Grundlagen der Administration und des Umgangs mit klassischen Linux/Unix-Texteditoren beschrieben.
- Kapitel 8, »Mac OS X«, beschäftigt sich mit dem Betriebssystem, mit dem Apple seine diversen Macintosh-Rechner liefert. Besonders die komfortable Benutzeroberfläche und ihre Einstellmöglichkeiten kommen zur Sprache, da Mac OS X ein Unix-System ist und der Konsolenbereich somit demjenigen von Linux sehr ähnlich ist.
- In Kapitel 9, »Grundlagen der Programmierung«, werden vier verschiedene wichtige Programmiersprachen eingeführt, die unterschiedliche Entwicklungsstufen und Aspekte des Programmierens abdecken: C, Java, Perl und Ruby.
- Kapitel 10, »Konzepte der Programmierung«, baut auf diese Grundlagen auf und erläutert verschiedene Aspekte, die die Programmierung in der Praxis ausmachen: Algorithmen und Datenstrukturen, reguläre Ausdrücke (mächtige Suchmuster), Elemente der systemnahen Programmierung oder die Entwicklung von Programmen für grafische Oberflächen. Zudem erfahren Sie in Grundzügen, wie Netzwerkanwendungen und Mobile Apps programmiert werden, und Sie erhalten eine Einführung in die Programmierung verteilter Anwendungen mit der Java 2 Enterprise Edition und in Webservices.
- Das in Kapitel 11 behandelte »Software-Engineering« geht weit über reine Programmiertechniken hinaus: Sie lernen viele unterschiedliche Methoden zur Bearbeitung und Verwaltung von Softwareprojekten kennen. Unter anderem werden die Anwendungsmodellierung mit der UML, Grundlagen des Projektmanagements und verschiedene Ansätze des Software-Engineerings wie der Unified Process oder Extreme Programming vorgestellt. Für die in den IT-Ausbildungsberufen fällige Projektarbeit sind diese Themen überlebenswichtig.
- Kapitel 12, »Datenbanken«, befasst sich mit einer der wichtigsten Funktionsgrundlagen vieler Programmierprojekte und Anwendungen. Nach der üblichen Erläuterung von Begriffen und Konzepten wird als konkretes Datenbanksystem der weitverbreitete Open-Source-Datenbankserver MySQL eingeführt. Am Ende des Kapitels findet sich noch ein kurzer Überblick über die NoSQL-Datenbank CouchDB.
- In Kapitel 13, »Server für Webanwendungen«, wird zunächst das Webprotokoll HTTP beschrieben. Danach geht es um die Installation und Konfiguration des verbreiteten Open-Source-Webservers Apache 2 mitsamt der Web-Programmiersprache PHP.
- Kapitel 14, »Weitere Internet-Serverdienste«, befasst sich mit diversen weiteren Servern für TCP/IP-basierte Netzwerke: dem Nameserver BIND, dem Verzeichnisdienst-Server OpenLDAP, dem FTP-Server vsftpd sowie dem Universal- oder Metaserver xinetd.
- Kapitel 15, »XML«, stellt die eXtensible Markup Language vor, eine Sprache, die der Definition beliebiger hierarchisch gegliederter Dokumentformate dient. In zahlreichen Anwendungen wird XML inzwischen eingesetzt, sodass es nützlich ist, die Konzepte dieses Formats zu kennen. Sie erfahren das Wichtigste über wohlgeformte Dokumente, über Formatbeschreibungen mithilfe von DTDs und XML Schema, die Umwandlung von XML-Dokumenten mit XSLT sowie über die Programmierung XML-basierter Anwendungen.
- Kapitel 16, »Weitere Datei- und Datenformate«, widmet sich den wichtigsten Formaten für Text, Bild und Multimedia. Es geht zunächst um Text und Zeichensätze, anschließend werden verschiedene textbasierte und binäre Dateiformate konkret erläutert.
- In Kapitel 17, »Webseitenerstellung mit (X)HTML und CSS«, wird zunächst HTML beziehungsweise XHTML vorgestellt, die Sprache, in der Webseiten verfasst werden. Hier werden verschiedene konkrete Aspekte der Webseitenerstellung erläutert, etwa die Textstrukturierung, der Listen- und Tabellensatz, das Einbetten von Bildern oder der Einsatz von Hyperlinks und Webformularen. Wichtige Neuerungen aus HTML5 werden jeweils an den passenden Stellen genannt. Der zweite Teil beschreibt das konsistente Layout von Webseiten mit Cascading Style Sheets (CSS), samt einer Einführung in die wichtigsten Neuerungen von CSS3.
- In Kapitel 18, »Webserveranwendungen«, erfahren Sie, wie Sie Websites erstellen, die nicht nur aus statischen HTML-Dokumenten, sondern auch aus dynamisch generierten Inhalten bestehen. Zuerst wird die Programmiersprache PHP 5 behandelt. Neben den allgemeinen Konzepten wird die Programmierung konkreter, datenbankbasierter Anwendungen beschrieben. Danach geht es um das moderne Web-Framework Ruby on Rails.
- Kapitel 19, »JavaScript und Ajax«, stellt die wichtigste clientseitige Programmiersprache vor, mit der Sie die Inhalte einer Webseite »zum Leben erwecken« können. Zunächst werden die klassischen Anwendungen wie die Ausgabe ins Dokument selbst, die Verarbeitung von Formularen oder der Austausch von Bildern behandelt, anschließend erfahren Sie das Wichtigste über DOM, die Standardtechnik, mit der Sie die Elemente eines Dokuments nachträglich modifizieren können, sowie Ajax, um die Inhalte für diese Änderungen ohne Neuaufbau der Seite vom Server nachzuladen. Zuletzt gibt es noch einen Schnellüberblick über jQuery als Beispiel für eine der immer häufiger verwendeten komfortablen JavaScript-Ajax-Bibliotheken.
- Kapitel 20, »Computer- und Netzwerksicherheit«, befasst sich mit verschiedenen Themen der immer wichtiger werdenden Sicherheit: Der Schutz vor Viren, Würmern und Trojanern wird ebenso behandelt wie Kryptografie, Firewalls oder Fragen der Datensicherheit.
Nach den Kapiteln folgen noch drei Anhänge:
- Anhang A, »Glossar«, enthält kurze Beschreibungen der wichtigsten IT-Stichwörter.
- In Anhang B, »Zweisprachige Wortliste«, finden Sie ein deutsch-englisches und ein englisch-deutsches Verzeichnis wichtiger Fachbegriffe.
- Anhang C, »Kommentiertes Literatur- und Linkverzeichnis«, empfiehlt weiterführende Bücher und Webressourcen zu den Themen der verschiedenen Kapitel.
Ihr Kommentar
Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.