Wie ein Entwickler zu denken bedeutet nicht, dass du besonders schlau sein musst oder dass du schon auf jede Frage eine Antwort hast. Es bedeutet vor allem, wie du an Probleme herangehst. Gerade in Java merkst du ziemlich schnell, dass sauberes Denken oft wichtiger ist als das Auswendiglernen von Syntax. Ob du mit einer kleinen Konsolenanwendung arbeitest, eine REST-Schnittstelle in JavaEE baust oder zum ersten Mal mit Maven, Git und IntelliJ klarkommen willst: Am Ende zählt nicht nur, dass etwas irgendwie läuft, sondern dass du verstehst, warum es läuft oder warum es gerade nicht läuft. Weiterlesen
In der Serie "Named Problems" stelle ich dir klassische, namentlich bekannte Algorithmus-Probleme vor, die seit Jahrzehnten in Ausbildung, Studium und Interviews verwendet werden. Anhand verständlicher Problemstellungen wie FizzBuzz, Türme von Hanoi oder dem Sieb des Eratosthenes lernst du hier, algorithmisch zu denken, Lösungsstrategien zu entwickeln und diese sauber in Java umzusetzen. Weiterlesen
Wenn du mit Java anfängst, stolperst du früher oder später über Begriffe wie H2, In-Memory-Datenbank oder SQLite. Auf den ersten Blick klingt das alles ähnlich. Irgendwie geht es um Datenbanken, oft um kleine Projekte, lokale Tests oder einfache Anwendungen. In der Praxis steckt dahinter aber nicht immer dasselbe. Genau das sorgt am Anfang schnell für Verwirrung. Weiterlesen
JPA steht für Java Persistence API. Allein dieser Name wirkt am Anfang oft größer, als das Thema eigentlich ist. Wenn du ihn einmal sauber auseinanderziehst, wird es deutlich greifbarer. Java ist klar, damit arbeitest du im Code. API bedeutet hier nicht Web-API, sondern eine definierte Programmierschnittstelle, also ein Regelwerk dafür, wie etwas genutzt wird. Und Persistence meint in diesem Zusammenhang, dass Daten dauerhaft gespeichert werden, also nicht nur kurz im Arbeitsspeicher leben, sondern in einer Datenbank abgelegt werden. Weiterlesen
Wenn du in Java zum ersten Mal über Konkurrenz und Threads stolperst, wirkt das Thema schnell größer, als es eigentlich sein muss. Das liegt vor allem daran, dass mehrere Begriffe durcheinandergeworfen werden. Mal ist von Parallelität die Rede, mal von Nebenläufigkeit, mal einfach nur von Threads. Dazu kommen dann noch Begriffe wie Synchronisierung, Race Condition oder Deadlock. Für den Einstieg reicht es aber, wenn du die Grundlagen sauber auseinanderhalten kannst. Genau darum geht es hier. Weiterlesen
Wenn du aus der Java-Welt kommst, wirken Begriffe wie JavaScript, TypeScript, Angular, React, Vue, Node.js oder npm am Anfang schnell wie ein einziger großer Themenblock. Genau da entsteht oft die eigentliche Verwirrung. Alles klingt ähnlich, vieles taucht im gleichen Projekt auf, aber nicht alles ist dasselbe. Manche Begriffe beschreiben eine Sprache, andere ein Framework, wieder andere eine Laufzeit oder ein Werkzeug. Weiterlesen
Fehler gehören beim Programmieren dazu. Gerade in Java stolperst du ziemlich früh über sie, weil dir der Compiler an vielen Stellen sehr deutlich sagt, dass etwas schiefgehen kann. Dabei tauchen meistens zwei Begriffe auf, die erst einmal unnötig kompliziert wirken: checked exceptions und unchecked exceptions. Der Unterschied ist aber nicht nur Theorie. Er beeinflusst direkt, wie du Methoden schreibst, wie sauber dein Fehlerhandling ist und wie gut andere deinen Code benutzen können. Weiterlesen
Regex ist für mich so ein Thema, bei dem ich innerlich erstmal bremse. Nicht, weil es grundsätzlich schlecht wäre, sondern weil es sehr leicht ist, etwas hinzuschreiben, das irgendwie funktioniert, aber niemand im Team später noch sauber lesen oder sicher beurteilen kann. Genau das ist das Problem. Ein Regex kann auf den ersten Blick kompakt wirken und trotzdem fachlich danebenliegen oder mehr matchen als gedacht. Weiterlesen

Hi, ich bin Marcel!
Als Fachinformatiker für Anwendungsentwicklung und IHK-geprüfter Ausbilder teile ich auf meinem Blog Grundlagen- und Fortgeschrittenen-Wissen für angehende Entwickler*innen und Interessierte, sowie weitere spannende Themen aus der IT.