Java lernen: Der ultimative Ratgeber

Eine Programmiersprache lernst Du nicht an einem Tag. Es ist kein Sprint. Du läufst viel mehr einen Marathon. Das gilt um so mehr wenn Du Java lernen willst. Die Standardbibliothek ist wirklich umfangreich und Java sehr ausgereift. Es gibt viele Facetten und mit Lösungen wie Android weitere umfangreiche Anwendungsgebiete. Dieser Artikel ist der ultimative Ratgeber zum Programmieren mit Java. Es geht weniger darum ein gutes Buch oder Videotraining zu ersetzen. Es geht um die Betrachtung aus der Vogelperspektive.

Du findest im folgenden Artikel folgende Themen:

  1. Überlegungen zu Java vorab
  2. Eine Programmiersprache beherrschen?
  3. Wege zum Java lernen
  4. Grundlegende Java-Inhalte
  5. Erste Programmideen
  6. So bleibst Du am Ball
  7. So geht es weiter

Ich wünsche Dir von ganzem Herzen viel Spaß und Erfolg mit dem Ratgeber! Ich freue mich riesig über jeden Kommentar. Wenn Dir der Artikel gefällt, freue ich mich zusätzlich über jeden Tweet und wenn Du ihn auf Facebook teilst!

Überlegungen zu Java

#1 – Überlegungen zu Java vorab

Grundsätzlich halte ich Tatendrang nicht auf! Das gilt für die Studenten in meinen Videotrainings genauso wie für mich selbst. Es gibt ab und zu Themen, auf die ich mich regelrecht Stürze. Bestes Beispiel ist die Sprache Swift. Apple hat sie im Juni 2014 vorgestellt. Ohne groß zu überlegen habe ich das ein oder andere Projekt von mir einfach liegen lassen und habe mir die neue Sprache angeschaut. Diese Einstellung in allen Ehren, empfehle ich für eine nachhaltige Zukunft als Entwickler trotzdem etwas Planung. Versteh diese Anregungen also nicht als mahnende Einleitung. Du kannst auch ausprobieren und später reflektieren – überlegen wie es weitergehen soll.

Eignet sich Java als erste Programmiersprache?

Eine spannende Frage, gerade von Einsteigern! Rund um mein Videotraining Programmieren lernen mit Java taucht häufiger diese Frage auf. Aber auch ganz allgemein ist die Wahl der ersten Sprache natürlich wichtig. Immerhin sollte die Reise in die richtige Richtung gehen. Wer sich über Wochen und Monate mit einem Thema befasst, möchte das diese Investition irgendwann Früchte trägt. Es gibt zwar keine Programmiersprache die für den Einstieg ein Fehler wäre. Die Grundprinzipien lernst Du, mal mehr und mal weniger, überall kennen. Wer aber Android-Apps entwickeln möchte, sollte nicht unbedingt mit C# oder C++ anfangen. Gleiches gilt für die iOS-Welt. Lieber gleich mit Swift beginnen, wenn Du iPhone-Apps schreiben möchtest. You get the idea.

Unabhängig von der Zielsetzung ist Java wunderbar als erste Sprache geeignet. Sie ist ausgereift, Erwachsen und bietet eine ganze Menge spannender Konzepte. Die Syntax bietet eine ganze Reihe Elemente, ist sehr aufgeräumt und gut durchdacht. Noch wichtiger: Java bietet eine erstklassige Objektorientierung. Zum Lernen ist sie wie geschaffen. Das es mit Android unheimlich prominente Anwendungsfälle gibt, rundet das Paket ab.

Gerade für Einsteiger ist interessant, dass die fertigen Anwendungen direkt auf den großen Plattformen genutzt werden können: Linux, Mac OS X und Windows. Dazu sind theoretisch keine gesonderten Anpassungen notwendig. Das Motto lautet offiziell – Write once, run anywhere. Übersetzt so viel wie “einmal entwickeln, überall nutzen”. In der Realität ist das nicht immer so einfach. Daher stammt die Verniedlichung “Write once, test anywhere” – also “einmal entwickeln und überall gründlich testen”.

Anwendungsgebiete

Egal welche Sprache Du wählst, Du wirst keine ultimative Lösung für alle Probleme finden. Die wäre aber ein “Jack of all trades, master of none”. Frei übersetzt ein “Tausendsassa” mit vielen Talenten, der aber keines davon wirklich gut beherrscht. Anders ausgedrückt: für alles zu haben und zu nichts zu gebrauchen. Wenn Java Deine erste Sprache wird, solltest Du vorab Ihre Einsatzgebiete und Stärken kennenlernen. Hier sind einige.

In den letzten Jahren hat sich Android als wohl bekanntester Anwendungsfall herausgestellt. Wer Android-Apps entwickelt, arbeitet mit Java. Aber auch im Umfeld “größerer” Webanwendungen ist Java sehr beliebt. Große Seiten wie Twitter, LinkedIn oder Tumblr setzen (mittlerweile wieder) vermehrt auf Java. Es ist also auch eine Grundlage für Anwendungen im Web. Das Spring Framework bspw. ist innerhalb des Java-Lagers ein sehr bekanntes Webframework.

Auch Anwendungen auf dem Desktop sind unbedingt bei Anwendungsfällen zu nennen. Auch hier versteckt sich die Technologie hinter sehr bekannten Titeln wie der Eclipse Plattform, dem Android Studio oder (in Teilen) auch OpenOffice und LibreOffice. Das Spiel Minecraft ist Dir vielleicht ein Begriff? Auch dies wurde mit Java umgesetzt. Wenn Du Minecraft-Mods (Modifikationen – Erweiterungen des Spiels) schreibst, tust Du dies mit Java. Übrigens auch eine mögliche Motivation für den Einstieg in die Software-Entwicklung!

Es gibt, zumindest in der Theorie, auch noch Java-Applets. Die haben sich jedoch, wie Flash, nie vollständig durchsetzen können. Ein großes Problem: Das Web soll auf möglichst jedem Endgerät funktionieren. Darum sind vollständig offene Standards wie HTML enorm wichtig. Für Java-Applets ist ein spezieller Interpreter zu installieren. Der steht aber, gemessen an den möglichen Endgeräten für das Web, nur auf einer Handvoll Geräte bereit. Außerdem “fühlen” sich Applets eher wie ein Relikt vergangener Zeiten an. Für die möglichen Lösungen gibt es heute modernere Alternativen.

Welches Ziel verfolgst Du?

Noch bevor Du mit dem Java lernen beginnst, solltest Du Dir über Deine Ziele klar werden. Das muss kein Aufsatz werden. Im besten Fall reicht ein Leitsatz wie “Ich will Android-Apps entwickeln”. Das schafft ganz andere Prioritäten als der Wunsch Desktopanwendungen umzusetzen. Vielleicht hast Du ja auch eine ganz konkrete Idee? Formulier auch die möglichst genau: “Ich will eine Software zur Verwaltung des Fuhrparks umsetzen” ist spezifisch. Das spielt bei der Auswahl der notwendigen Themen eine bedeutende Rolle.

Vielleicht möchtest Du auch ganz allgemein Programmieren lernen? Oder Java ist eine weitere Sprache die Du lernen willst? Du suchst einen Überblick über die Möglichkeiten. Möchtest Dich orientieren und ein wenig experimentieren? Dann brauchst Du natürlich weniger Planung. Um die Zeit effizient zu nutzen solltest Du trotzdem schon vorher die Themen auswählen und nicht blind arbeiten.

Lernen mit System: Java mit der DiSSS-Methode

Genau das ist die Idee hinter der DiSSS-Methode von Tim Ferriss:

Das System beschreibt er als einen Weg, das optimale Maß an Minimalismus zu finden. Einfacher ausgedrückt wird die große Menge an möglichen Lerninhalten auf das Minimum reduziert. Und genau dafür ist eine passende Zielsetzung so wichtig. Nur wenn Du exakt weißt wo Du hin willst, kannst Du auch eine geeignete Route berechnen. Der Weg klingt fast zu einfach. Und genau darin liegt das Geheimnis. Tim Ferriss hat diesen formalen Weg nicht erfunden. Er hat aber die minimalen Schritte definiert. Genau wie in der Software-Entwicklung liegt darin die größte Schwierigkeit. Unnötige Komplexität beseitigen.

Im Kern geht es um einen praktischen Weg, der das Paretoprinzip anwendbar macht. Der auch 80/20 Regel genannte Effekt besagt, dass 80% der Ergebnisse eines Projekts schon mit 20% der Zeit erreicht werden. Die restlichen 20% Projektfortschritt benötigen noch einmal 80% der Gesamtzeit. Das ist nicht aus der Luft gegriffen. Im Umfeld der Programmierung kann ich dies sogar fast als Gesetzmäßigkeit unterschreiben. Der grobe Rahmen steht häufig schnell. Der Teufel steckt dann im Detail.

Die Abkürzung DiSSS steht für:

  • Deconstruct
  • Selection
  • Sequencing
  • Stakes

Diese vier Schritte helfen eine passende Themenauswahl zu treffen. Eine genauere Betrachtung und weitere Erklärungen findest Du in meinem Artikel zum Thema Schnell Programmieren lernen.

 

 

Eine Programmiersprache beherrschen?

#2 – Eine Programmiersprache beherrschen?

Das Ziel steht fest. Du möchtest offensichtlich Java lernen. Warum ist eigentlich fast egal, zumindest an dieser Stelle. Ich habe eine spannende Frage für Dich: Wann hast Du denn Dein Ziel erreicht? Wann sagst Du, jetzt “habe ich Java gelernt”? Gibt es einen Punkt, an dem wir das Gefühl bekommen Herr der Lage zu sein? Die Reise durch das Java-Universum für beendet erklären. Oder zumindest das Gefühl haben, das meiste zu kennen? Ich bin mir nicht so sicher. Du lernst nie aus. Insofern könntest Du Dich also endlos mit Java befassen. Aber, Hilfe ist auf dem Weg!

Ich behaupte es gibt im wesentlich vier Stufen, über die Du früher oder später stolperst:

Syntax

Egal ob Du Java oder eine andere Programmiersprache lernst. Die Syntax steht zuerst auf dem Lehrplan. Du musst ein grundlegendes Gefühl für die Sprache entwickeln. Werden Klammern genutzt? Gibt es besondere Zeichen für die Nutzung von Variablen (bspw. ein Dollar-Zeichen wie bei PHP)? Werden Zeilen oder Anweisungen mit einem Semikolon beendet? Sicher lernst Du nicht gleich jegliche Sonderzeichen und deren Bedeutung kennen. Die ersten Programme beantworten jedoch meist solche Frage fast automatisch. Daher geschieht dieser Schritt häufig unbewusst.

Grundlagen

Nun geht es an die Grundlagen. Damit Du die ersten Programme ohne Anleitung und Vorgabe schreiben kannst, musst Du sie verstehen und auch verinnerlichen. Das geht nur durch Praxis. Dieser Schritt wird häufig als unangenehm wahrgenommen. Die Programme sind noch nicht aufwendig oder komplex. Außerdem musst Du vielleicht noch häufiger in die Dokumentation schauen. Als Motivation kann ich Dir versichern, dass es häufig schnell vorbei geht. Aber ein stabiles Fundament ist wirklich wichtig. Du musst erst lernen zu Gehen bevor Du Laufen kannst.

Zu den Grundlagen zählt z.B. das Deklarieren und Verwenden von Variablen. Außerdem solltest Du wichtige Operatoren kennenlernen und Kontrollstrukturen verstehen. Wenn diese Themen fest sitzen, kannst Du Dich bereits sehr viel sicherer bewegen. Gerade wenn Du Java lernst ist an dieser Stelle zusätzlich die Objektorientierung zu nennen. Du musst unbedingt das Konzept selbst, aber auch die Umsetzung mittels Java verstehen. Die Sprache ist durchweg von Objekten geprägt. Also führt daran kein Weg vorbei.

Sprachfeatures und Standardbibliothek

Nach einiger Arbeit mit den grundlegenden Inhalten folgt eine wirklich spannende Phase beim Java lernen. Du kannst nun mit der Sprache bereits umgehen. Für einfache Bedingungen, Schleifen, Variablen und Objekte brauchst Du die Dokumentation nicht mehr oder eher selten. Das gibt Selbstvertrauen. Noch besser: Du kannst nun so gut mit der Dokumentation arbeiten, dass Du einfach neue Features aus der Standardbibliothek ausprobieren kannst. Bestens geeignet für eine solche Entdeckungsreise sind die Java Insel 1 und die Java Insel 2.

Du solltest aber nicht Deine Zielsetzung aus den Augen verlieren. Gerade an dieser Stelle bekommen die richtigen Prioritäten eine besondere Rolle. Du kannst Dich vermutlich mehrere Monate nur mit den Möglichkeiten aus der Standardbibliothek befassen. Wenn Du aber z.B. eher Android-Apps entwickeln willst, brauchst Du vieles davon gar nicht.

Best Practices und Architektur

Früher oder später rücken inhaltliche Themen in den Hintergrund. Du wirst merken: Es muss noch etwas anderes geben? Was ist das Geheimnis hinter guter Software? Mindestens werden Dir bei immer komplexer werdender Software auch Probleme rund um die Architektur und die Strukturierung begegnen. Welche Klassen brauche ich? Wie teile ich die geschickt auf? Welche Methoden sind notwendig? Welche Packages lege ich im Java-Projekt an? Wie verknüpfe ich die möglichst sinnvoll?

Die große Kunst ist häufig nicht, eine Software oder ein Feature einmal zu implementieren. Die Magie beginnt, wenn die Software einfach erweitert, angepasst und gewartet werden kann. Und genau dafür ist eine gute Architektur notwendig. In der Objektorientierung helfen Dir dabei die Entwurfsmuster (Design Pattern). Die bieten für verschiedene Probleme oder Aufgabenstellungen eine Lösung an. Ein Thema, dass in dem Buch Design Patterns – Elements of Reusable Objekt-Oriented Software wunderbar behandelt wird.

Fazit

Gerade die letzten beiden Punkte werden Dich immer wieder beschäftigen. Es gibt inhaltlich immer wieder etwas neues zu entdecken, neue Framework oder Bibliotheken. Und außerdem steht der IT-Markt nicht still. Also gibt es auch immer wieder neue Ansätze zu Best Practices, verbesserte Architekturen und Weiterentwickelungen.

Wege zum Java lernen

#3 – Wege zum Java lernen

Der Markt hat sich in den letzten 10 Jahren unwahrscheinlich stark entwickelt. Davon betroffen ist natürlich auch die Industrie rund um Lehrmaterial und das Angebot an Dokumentationen. Wenn Du Java lernen willst ist das für Dich eine erfreuliche Entwicklung. Der Zugang zu Wissen rund um die Programmieren wird einfach erleichtert. Viel mehr Menschen finden so ihren Weg in die Software-Entwicklung. Hier sind meine persönlichen Favoriten beim Lernen. Die folgenden Wege bevorzuge ich.

Seminare

Seminare und Workshops vor-Ort sind unglaublich wertvoll. Du wirst dabei nie eine Sprache umfassend lernen. Aber Du wirst häufig den perfekten Einstieg in die Thematik finden. Viele Fragen, die Dich am Anfang automatisch beschäftigen, werden durch einen guter Trainer bereits beantwortet. Und wenn nicht: dann fragst Du ihn direkt und bekommst Antworten.

Meist dauern Seminare ein Wochenende oder fünf Werktage (Montag bis Freitag). Durch die Kürze der Zeit ist der Trainer gezwungen die wichtigsten Themen herauszupicken. Er übernimmt also (vermutlich unbewusst) den DiSSS-Schritt für Dich. Größtes Problem bei Seminaren vor-Ort: Der Preis. Der liegt sehr schnell jenseits von 1000 Euro und mehr.

Videotrainings

Gleiches gilt für Videotrainings. Ich habe mich bei der Reihenfolge von Videotrainings und Seminaren sehr schwer getan. Zum einen ist ein Videotraining vergleichsweise geschenkt. Der Preis kann nur durch die Auflage gegenfinanziert werden. Die Kosten für die Produktion und die viele Zeit die investiert werden muss, rechnen sich nur durch die Anzahl der verkauften Exemplare. Für den Kunden ist das jedoch unerheblich.

Ein weiterer Vorteil: Ein Seminar läuft einmal ab. Du musst Notizen machen und Quellcode schreiben. Du kannst in der Regel die Vorträge und Präsentationen nicht erneut anhören. Sicher, es gibt mittlerweile Trainer die Videomaterial bereitstellen. Das ist aber eher die Ausnahme.

Gegenüber dem geschriebenen Buch ist ein Videotraining unheimlich viel mehr Wert. Im Buch siehst Du den fertigen Quellcode. Der wird zwar erklärt. Aber die Zwischenschritte und die Entstehung des Codes bleibt außen vor. Gerade das ist bei einem Seminar und Videotraining so genial. Ein guter Trainer erzählt welche Gedanken er sich macht und warum er etwas implementiert. Das ist wie Malen lernen oder Lernen Gitarre zu spielen. Mit einem bewegten Bild und Kommentaren geht es viel direkter, als über ein Buch.

Bei der Umsetzung besonders genial: Du kannst einen Abschnitt mit Erklärung hören und sehen. Anschließend drückst Du Pause und setze es um. Viel direkter geht es gar nicht.

Bücher

Das soll aber nicht heißen, dass Bücher ausgedient haben. Im Gegenteil. Sie sind integraler Bestandteil in meinem Lernprozess. Während Seminare und Videotrainings besonders für Einsteiger wunderbar sind, eignen sich Bücher perfekt für fortgeschrittenere und speziellere Themen. Sobald Du etwas sicherer mit Java umgehen kannst, sind sie die beste Wahl um ein breitgefächertes Wissen aufzubauen.

Es gibt eine Menge Literatur rund um Java und Themen rund um die Software-Entwicklung. Es ist eine andere Art des Lernens. Außerdem kann in ein Buch mehr Wissen auf engem Raum untergebracht werden. Die Inhalte der Java-Insel würden mit Sicherheit viele Tage oder sogar Wochen mit Videomaterial füllen. Das würde deutlich über das Ziel hinaus schießen.

Tutorials

Auch die vielen Tutorials im Web sind ein enorm wertvoller Schatz. Es mag der Eindruck entstehen, dass ich den nicht zu schätzen weiß. Stimmt aber nicht. Ich würde nur Einsteigern empfehlen sich gerade zu Beginn auf andere Ressourcen zu verlassen. Ein Blogartikel ist schnell überholt. Gleiches gilt auch für Videomaterial. Hier ist sogar das ständig sichtbare Interface eine besondere Herausforderung. Schon bei kleineren Änderungen der Anordnung oder im Workflow kann schnell ein ganzes Produkt als veraltet gelten. Bei einem Buch kann mit relativ wenig Aufwand Quellcode korrigiert werden. Wenn es um eBooks geht, ist ein Update quasi ein Kinderspiel.

Ein Argument dagegen ist, dass auch Bücher und Videotrainings nur begrenzt aktuell bleiben. Das stimmt. Aber ein kommerzielles Interesse am Produkt ist, wenn es am Markt angenommen wird, immer ein Garant für ein Bestreben möglichst hoher Relevanz. Der Hersteller wird selbst schnell für Abhilfe sorgen wollen. Nur so bleibt er schließlich konkurrenzfähig.

OpenSource Software

Eine etwas fortgeschrittenere Quelle für weitere Informationen sind OpenSource-Programme und Bibliotheken. Wer sich bereits etwas sicherer fühlt, findet hier einen Fundus an Informationen, Beispiele aus der Praxis und meist auch guten Stil. Das gilt nicht pauschal. Der Anspruch an Qualität ist im OpenSource Umfeld allerdings generell sehr hoch. Immerhin wird hier oft in der Freizeit gearbeitet. Es gibt keine Deadlines und den Zwang neue Versionen zu liefern. Die Arbeit ist eine ganz andere und für viele Entwickler ein Ausgleich zum eher stressigen Berufsalltag. Da darf bei einer Lösung der Stil in den Vordergrund rücken und die Wirtschaftlichkeit in den Hintergrund. Insofern: fast immer eine tolle Ressource.

Grundlegende Java-Inhalte

#4 – Grundlegende Java Inhalte

Dieser Ratgeber kann und soll nicht die perfekte Ressource zum Java lernen werden. Mir geht es um das “Drumherum”, zu zeigen wie Du vorgehen kannst. Aber da ich oben schon die DiSSS-Methode erwähnt habe, macht es Sinn mein Ergebnis für die grundlegendste Schnittmenge an Inhalten vorzustellen. Egal in welche Richtung später die Reise gehen soll, folgende Konzepte sollten unbedingt verinnerlicht werden. Sie begegnen Dir immer wieder.

Entwicklungsumgebung, JDK und Programmaufrufe

Es geht hier um die Vorbereitung der eignen Workstation auf die Entwicklung. Im wesentlichen sind zwei Komponenten notwendig: ein Editor und der Java-Compiler sowie die Laufzeitumgebung. Der letzte Bestandteil wird im JDK von Oracle geliefert. Aber gerade beim Editor gibt es eine ganze Reihe an Möglichkeiten. Ich empfehle Dir die kostenlose IntelliJ IDEA von Jetbrains zu verwenden. Sie ist sehr fortschrittlich, modern und deutlich besser nutzbar als Eclipse. Das sieht mittlerweile sogar Google so und hat das Android Studio auf IntelliJ IDEA Basis umgesetzt. Wenn Du also in diese Richtung gehst, kennst Du gleich den Editor.

Syntaxgrundlagen

Du musst nicht alle Schlüsselwörter vorab lernen. Mach Dich einfach mit ersten Beispielen und einigen Grundlagen vertraut. Java ist streng was zum Beispiel die main()-Methode betrifft. Du brauchst sie als Einstiegspunkt Deiner Java-Anwendungen. Auch erste Richtlinien zu Klammern und dem Semikolon am Ende einer Anweisung solltest Du kennenlernen. Die Ausgabe von Daten steht vermutlich bereits ohnehin schon im obligatorischen HelloWorld Programm auf jedem Lehrplan. Aber auch solche Übungen sind wichtig, um mit der Sprache warm zu werden.

Variablen und Datentypen

Das zweite wichtige Kapitel sind Variablen und Datentypen. Ein Grundverständnis für die Vorgänge im Hintergrund ist eine große Hilfe. Du kommt bei Java nicht unmittelbar mit Pointern, also Referenzen auf Adressen im Arbeitsspeicher, in Verbindung. Aber das Konzept der Referenzen gibt es im Kontext der Objektorientierung ebenfalls.

Wichtig ist natürlich zu wissen was Datentypen sind. Wieso gibt es die? Welche Wertbereiche kannst Du in den jeweiligen Datentypen hinterlegen? Wie viel Speicher belegt eine Variable vom Datentyp x? Ein solides Verständnis hilft Dir später effiziente Software zu schreiben. Gewöhn Dir so früh wie möglich eine sinnvolle Deklaration Deiner Daten an. Es ist später viel schwieriger falsche Gewohnheiten wieder abzulegen.

Operatoren und Ausdrücke

Ohne Operatoren und Ausdrücke wirst Du nicht weit kommen. Schon für das Zuweisen von Werten benötigst Du den Zuweisungsoperator (=). Darüber hinaus gibt es noch eine ganze Reihe weiterer. Die mathematischen Operationen werden selbstverständlich unterstützt. Aber auch Themen wie das Inkrementieren und Dekrementieren sind wichtig. Darüber hinaus gibt es auch Aktionen wie die Modulo Operation. Du solltest ein gutes Verständnis haben und die Basisoperationen aus dem FF beherrschen. Sie begegnen Dir nicht nur in Java, sondern auch in vielen anderen Sprachen.

Kontrollstrukturen in Java

Kontrollstrukturen beeinflussen den Programmablauf. Gemeint sind ganz konkret Bedingungen sowie Schleifen. Es gibt mit den Keywords for(), while() und do…while() bereits drei wichtige Vertreter der Schleifen. Auch die Fallunterscheidung mit switch() ist unbedingt zu nennen. Du wirst in jedem Projekt häufiger diese Konstrukte finden. Ohne sie ist jede Software nahezu statisch und wäre eine Kette von auszuführenden Anweisungen.

Ein Vorteil von Java ist die Nähe zur Syntax von C/C++. Es gibt noch weitere Sprachen die sehr ähnlich aufgebaut sind. Du kannst also Java lernen und das Wissen auf andere Programmiersprachen übertragen. Auch deshalb ist Java eine perfekte Sprache für Einsteiger.

Grundlagen der Objektorientierung

Eines der Hauptargumente für Java ist die Objektorientierung. Auch deshalb ist es eine geniale Sprache für den Einsteig. Klar, der Themenbereich ist nicht von Heute auf Morgen zu verstehen. Aber einmal verinnerlicht, wirst Du in jeder Sprache objektorientiert entwickeln können und wollen.

Objekte in Java ziehen sich quer durch das gesamte Konzept. Das Konzept ist in Java unglaublich ausgereift und ermöglicht eine nahezu perfekte Programmstruktur. Es führt in der Java-Welt kein Weg daran vorbei.

Erste Programmideen

#5 – Erste Programmideen

Wenn Du Deine ersten Programme schreibst, können häufig sinnvolle Projektideen fehlen. Hier einige Inspiration und Anregungen.

99 bottles of beer

Es gibt aber ein sehr bekanntes Lied: 99 bottle of beer on the wall. Der Songtext ist weitestgehend gleichbleibend, zählt aber von 99 bis 0 herunter und gibt dann einen besonderen Text aus. Perfekt, um ihn mit Java zu generieren. Das ersten Zeilen folgen immer folgendem Schema;

99 bottles of beer on the wall, 99 bottles of beer.
Take one down and pass it around, 98 bottles of beer on the wall.

98 bottles of beer on the wall, 98 bottles of beer.
Take one down and pass it around, 97 bottles of beer on the wall.

Bis schließlich das Ende erreicht ist:

1 bottle of beer on the wall, 1 bottle of beer.
Take one down and pass it around, no more bottles of beer on the wall.

No more bottles of beer on the wall, no more bottles of beer.
Go to the store and buy some more, 99 bottles of beer on the wall.

Es gibt dazu im Internet auch reichlich Musterlösungen. Eine solche findest Du hinter dem folgenden Link: 99 bottle of beer in Java.

Zahlen raten

Beliebt ist auch das Raten von Zahlen zwischen 1 und x. Es wird per Zufall eine Zahl in der genannten Spanne generiert. Der Benutzer wird aufgefordert eine Zahl zu raten. Das Programm wertet die Antwort aus. Bei der Verarbeitung kannst Du mehrere Versionen realisieren. Manche sagen nur richtig/falsch. Andere Implementierungen geben Hinweise ob die gesuchte Zahl größer oder kleiner ist (gerade bei großen Zahlenbereichen). Noch ausgefeilter: Erst ab der 10. falschen Antwort Hinweise ausgeben.

Umrechner

Sehr beliebt sind Programme zur Umrechnung verschiedener Werte. Alles was einem bestimmten Algorithmus folgt oder mit einem definierten Faktor zu berechnen ist, kannst Du leicht umsetzen. Nur einige Beispiele sind die Umrechnung von Dollar nach Euro und umgekehrt, PSI nach BAR (Druckangabe) oder Celsius nach Fahrenheit.

So bleibst Du am Ball

#6 – So bleibst Du am Ball

Nachhaltig wirst Du nur Java lernen, wenn Du die Motivation aufrecht erhalten kannst. Das klingt mehr als logisch, ist in der Praxis aber nicht immer ganz leicht. Es ist ein wenig wie verliebt zu sein. Die ersten Schmetterlinge im Bauch und das tolle Gefühl, geliebt zu werden. Es fühlt sich alles genau richtig an. Scheinbar nichts kann diese Verbindung erschüttern. Aber diese erste Phase geht irgendwann vorbei. Und dann trennt sich Spreu vom Weizen. Du wirst Dich auch mal durch vermeintlich weniger spannende Themen arbeiten müssen, wenn Du Erfolg haben möchtest. Hier einige Tipps, um die Motivation aufrecht zu erhalten.

Mit einem Partner lernen

Das beste was Dir passieren kann: Schließ Dich mit anderen Entwicklern zusammen. Vielleicht findest Du eine Usergroup oder einen Stammtisch in Deiner Umgebung? Oder einfach ein Studienkollege, ein Freund oder sonst ein Bekannter? Dieser Austausch ist von unschätzbaren Wert. Du kannst Dich mit jemandem über die Inhalte austauschen, Ihr könnt euch gegenseitig helfen und neue Erkenntnisse teilen. Es ist ein nicht zu unterschätzender Faktor beim Lernen. Und noch spannender: Ihr stachelt euch automatisch gegenseitig an. Schon tauchst Du in neue Themen ein und präsentierst stolz Deine neuste Entwicklung. Einfach ein geniales Gefühl.

Definierte Projektideen umsetzen

Besonders wichtig sind abgeschlossene Projekte. Du solltest Dir für jedes neue Thema ein eigenes Projekt ausdenken. Setz es konsequent bis zum Ende um. Das hilft unglaublich bei der Motivation. Wenn Du einfach ein großes Projekt hast, in dem Du wie auf einer Spielwiese experimentierst, kommst Du nie an einem Ziel an. Die gesamte Reise durch die Java Welt erscheint so viel länger. Ich bin selbst Marathon Läufer. Eine beliebte Strategie: Du läufst in Gedanken nicht 42,195km am Stück. Es sind viel mehr viele kleine Ziele, die unterwegs erreicht werden. Ganz gegen Ende ist einfach jeder Kilometer ein eigenes Zwischenziel. So kannst Du Dich immer wieder belohnen und brauchst viel weniger “langen Atem”.

Die richtigen Gewohnheiten

Ein extrem wichtiges Thema sind Gewohnheiten. Lass das Java lernen zur Regel werden. Wenn die Zeit knapp ist, solltest Du unbedingt feste Tage einplanen. Das ist beim Sport die gleiche Idee. Wenn Du konsequent Montag, Mittwoch und Freitag etwas Zeit blockierst, wird das schnell zu einer Gewohnheit. Das hat zwei Vorteile: Du selbst fragst Dich gar nicht mehr ob Du nun gerade Lust und Zeit hast. Es wird einfach der Regelfall. Ein weiterer Nebeneffekt: Dein Umfeld kann mit festen Zeiten ebenfalls viel besser planen.

So geht es weiter

#7 – So geht es weiter

Nun habe ich eine ganze Reihe Ideen und Möglichkeiten in den Raum geworfen. Bleibt noch konkrete Empfehlungen für den tieferen Einstieg in die Materie zu liefern. Hier schlage ich Dir folgende Ressourcen vor:

Und jetzt Du

There are seven days in a week. Someday isn’t one of them.
In einem Jahr wirst Du Dir wünschen, Du hättest heute begonnen.

Gleich loslegen. Vorher aber noch Deinen Freunden bei Twitter und Facebook von diesem wirklich umfassenden Ratgeber zum Java lernen erzählen ;-).

Tags:

Schreib einen Kommentar

Your email address will not be published.