
Allgemeine Beschreibung
Ein Buch über Testaufgaben und Interviewfragen, das zur Vorbereitung auf Vorstellungsgespräche dient, indem es viele beliebte Themen behandelt und Wissenslücken in allgemeinen Programmierkonzepten schließt (wie Datentypen, Algorithmen, Entwurfsmuster usw., obwohl Sicherheitsthemen praktisch fehlen). Das Buch umfasst 17 Kapitel und etwas mehr als 350 Seiten. Es enthält kaum Abbildungen, obwohl visuelle Darstellungen beispielsweise für Graphen sinnvoll gewesen wären.
Überblick
Die ersten etwa 50 Seiten (zwei Kapitel) sind rein theoretisch und enthalten viel Text wie: "Finde deine Richtung, analysiere den Arbeitsmarkt, bewerte deine Fähigkeiten, arbeite an deiner Online-Präsenz und Portfolio". Das zweite Kapitel ist ganz der Stellensuche und Bewerbung gewidmet.
Ab dem dritten Kapitel beginnen Programmieraufgaben, hauptsächlich gegen Kapitelende. Hervorzuheben sind Algorithmen und algorithmische Komplexität (Big-O-Notation) - genau das, was ich in einer früheren Analyse detailliert beschrieben habe.
Dann folgen drei Kapitel über Datentypen bzw. Datenstrukturen: Verkettete Listen (Kapitel 4), Bäume und Graphen (Kapitel 5), Arrays und Strings (Kapitel 6). Dies sind wohl die nützlichsten Kapitel des Buches mit vielen Beispielen (meist in C++, aber bei Arrays/Strings auch Java, JavaScript und C#). Die Konzepte sind gut erklärt mit Schlüsselbegriffen. Für Listen etwa: Typen (einfach/doppelt verkettet, zyklisch), Operationen (Durchlaufen, Einfügen, Löschen) und praktische Aufgaben. Gleiches gilt für Bäume, Graphen, Arrays und Strings. Insgesamt sind diese Themen gut aufbereitet und bieten eine gute Auffrischung.
Es folgt Rekursion mit entsprechenden Aufgaben. Nicht viel hinzuzufügen.
Dann ein Abschnitt über Sortieralgorithmen. Besonders nützlich, weil Sortieren allgegenwärtig ist (wenn auch oft durch Sprachfunktionen verborgen) und ein klassisches Interviewthema. Selection Sort, Insertion Sort, Quicksort, Mergesort - alle behandelt mit Übungen.
Ein Kapitel über Parallelprogrammierung. Natürlich nicht alle Ansätze abdeckend oder Implementierungen in Sprachen wie Go oder Kotlin. Aber Grundkonzepte wie Threads, Semaphore, Deadlocks werden gut erklärt.
Das OOP-Kapitel umfasst nur 10 Seiten. Man kann sich vorstellen, wie oberflächlich die Behandlung ist, ohne Bezug zu einer bestimmten Sprache. Konstruktoren, Vererbung, Polymorphismus, virtuelle Methoden - die Grundlagen werden erwähnt.
Entwurfsmuster werden kaum behandelt, nur einige einfache Patterns und deren Kategorien (Erzeugungs-, Struktur-, Verhaltensmuster).
Das Datenbankkapitel ist ebenfalls sehr kurz, wohl das schwächste.
Ein Abschnitt über Grafikprogrammierung und Bitmanipulation, interessant für diejenigen, die nicht täglich damit arbeiten.
Dann zwei Kapitel mit Knobelaufgaben: Logikrätsel ("welche Glühbirne gehört zu welchem Schalter") und visuelle Puzzles (nicht zu verwechseln mit dem Grafikabschnitt).
Das vorletzte Kapitel sammelt verschiedene technische Themen (Architektur, Kryptographie, Sicherheit - wobei letzteres nur wenige Seiten umfasst).
Zum Schluss Soft Skills: Gehaltsverhandlung, Rückfragen im Interview usw.
Meine Meinung
Das Buch eignet sich besonders für Berufseinsteiger in der IT. Es behandelt sowohl Stellensuche als auch häufige Interviewthemen (Algorithmenkomplexität, Datenstrukturen, OOP, Entwurfsmuster, Datenbanken, Bitmanipulation usw.).