FAQ zum Java-Kurs (FAQ zum Java-Kurs), Lektion, Seite 722553
https://www.purl.org/stefan_ram/pub/javakurs_faq (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram

FAQ zum Java -Kurs

Inhaltsverzeichnis

– Aber was wären Beispiele für nützliche Java-Programme?

– Wie kann man nach dem Ende des Kurses weiterlernen?

– Warum wird Eclipse im Kurs nicht unterrichtet?

– Was muß man lernen, bevor man Android -Programmierung erlernen kann?

– Wie kann man eine EXE-Datei aus einem Java-Programm erzeugen?

Allgemeine FAQ zu Programmierkursen

>722564FAQ  zu Programmierkursen

FAQ „Aber was wären Beispiele für nützliche Java-Programme?“

Die meisten Android-Apps sind ganz oder teilweise in Java geschrieben, genauso sind viele Web-Server teilweise mit Java programmiert (was man von außen nicht immer erkennen kann), das bekannte Spiel Minecraft  wurde ursprünglich in Java programmiert.

(Siehe auch: Abschnitte „Einsatzgebiete“ und „Was kann man mit Java  machen?“ in „>720301 Charakterisierung von Java “)

FAQ „Wie kann man nach dem Ende des Kurses weiterlernen?“

(Siehe auch: >724350 Notiz Weiterlernen nach dem Ende eines Programmierkurses)

(Siehe auch: >723647 A.1.2. Weiterlernen von Java )

Um richtig gut programmieren zu lernen, muß man noch viel mehr Zeit investieren, als die Dauer des Kurses beträgt! Deswegen ist diese Frage sehr richtig und wichtig!

Möglichkeiten des Weiterlernens

Weiterlernen nach dem Grundkurs

Nach dem Ende des Grundkurses kann man auch einen Aufbaukurs besuchen. Dieser sollte möglichst beim selben Dozenten stattfinden, da die Kurse oft aufeinander abgestimmt sind.

Besuch desselben Kurses

Wenn man die Grundlagen der Programmiersprache nach dem Ende eines Grundkurses noch nicht sicher beherrscht, kann man denselben Grundkurs ein zweites oder drittes Mal besuchen, da Vieles durch die Wiederholung besser verständlich wird!

Eine andere Möglichkeit besteht darin, noch mal bei einem anderen Dozenten  in einen Grundkurs zu gehen, weil man dann den Stoff aus einer anderen Perspektive hören kann.

Lesen des Skriptes

Man kann auch das Skript zu dem Kurs noch einmal durchlesen und dabei einige Übungsaufgaben bearbeiten.

Besuch eines längeren  Kurses

Die Stefan-Ram-Kurse sind an einigen Volkshochschulen länger. Beispielsweise in Tempelhof-Schöneberg  und im Sommer in Reinickendorf.

Wegen der Komplexität des Themas und der großen Stoffülle entsprechen längere Kurse dem Thema besser und erlauben es auch eher, schwierigere Punkte langsamer anzugehen und umfangreicher zu üben. Deswegen kann es empfehlenswert sein, nachdem man erst einmal in einem kurzen Kurs einen Überblick erhalten hat, noch einmal denselben Kurs in seiner Langfassung in Tempelhof-Schöneberg  und im Sommer in Reinickendorf  zu besuchen.

Besuch eines Android -Programmierkurses

In Android -Programmierkursen werden Java -Kenntnisse schon vorausgesetzt. Deswegen sind sie eine gute Möglichkeit, um zu sehen, wie Java  angewendet wird. Allerdings können die dafür nötigen Vorkentnisse nur in einem längeren Java -Aufbaukurs richtig vermittelt werden. Deswegen empfiehlt es sicht, zuerst einen langen Java-Aufbaukurs in Tempelhof-Schöneberg  oder im Sommer in Reinickendorf  zu besuchen und dann in einen Android -Kurs zu gehen oder sich die nötigen Vorkenntnisse anders anzueignen.

Am Anfang des Skriptes zum Android -Programmierkurs von Stefan Ram werden die benötigten Vorkenntnisse ausführlicher beschrieben.

Lesen von Büchern

Natürlich gibt es auch die Möglichkeit, ein Buch zu lesen. Obwohl es viele deutschsprachige Lehrbücher gibt, die sich nach ihrem eigenen Bekunden an Anfänger richten, kann leider keines davon besonders empfohlen werden. Ein paar Hinweise zum Thema der Literatur finden sich auch noch auf der folgenden Seite

>720782 Deutschsprachige Quellen zur Programmiersprache Java 

Übungsaufgaben

Nach Ende des Kurses kann man auch die Übungsaufgaben  aus dem Kurs wiederholen.

Falls jemand lieber Übungsaufgaben mit  Lösungen bearbeiten möchte, kommt vielleicht das Buch „Java 8 Das Übungsbuch: Über 200 Aufgaben mit vollständigen Lösungen“ von Elisabeth Jung in Frage.

Programmierprojekte

Vielleicht haben Kursteilnehmer auch Ideen für eigene Programmierprojekte, die sie nach Ende des Kurses durchführen wollen. Dies ist eine ausgezeichnete Möglichkeit zum Lernen. Falls eine bestimmte Idee noch zu schwierig ist, sollte man sie so lange vereinfachen, bis man sie in einer einfache Basis-Version programmieren kann.

Projektideen für Programmierer ohne eigene Ideen

http://mindprod.com/project/beginner.html

http://mindprod.com/project/projects.html

Lesen von Programmen

Für viele Java -Programme und Bibliotheken, große und kleine, ist der Quellcode legal und kostenlos verfügbar und darf teilweise sogar für eigene Projekte verwendet werden. Von Oracle  gibt es beispielsweise den Quelltext der Standardbibliothek und verschiedener Beispielprogramme,

Man kann auch viel über Programmieren lernen, indem man den Quelltext von Programmen, die vollständig ausgebildete Programmierer geschrieben haben, liest und zu verstehen versucht. Danach kann man versuchen, einige Änderungen vorzunehmen. Ideal wäre es, ein Programm, das man selber auch benutzt, auf diese Weise an eigenen Bedürfnisse anzupassen.

Arbeitsgruppen

Vielleicht wollen Sie sich mit anderen Kursteilnehmern zu einer von Ihnen organisierten Arbeitsgruppe treffen, und regelmäßige Treffen mit Vorträgen und gemeinsamen Übungen veranstalten?

User-Groups

Es gibt auch eine Java User-Group für Berlin und Brandenburg, die gelegentlich Veranstaltungen durchführt, beispielsweise mit Vorträgen zu Java -Themen. Mehr Informationen dazu gibt diese User-Group direkt auf ihrer Webseite.

Die Newsgroup »de.comp.lang.java«

In der Newsgroup »de.comp.lang.java« werden Themen und Fragen mit Java -Bezug diskutiert. Leider seit langem mit immer weniger Teilnehmern! Heute (Stand 2018) ist die Newsgroup fast inaktiv, aber vielleicht wollen Sie zu ihrer Wiederbelebung beitragen? Noch kann man damit rechnen, daß eine dort gestellte Frage von jemandem beantwortet wird.

Java-Foren

Auch in Web-Foren kann man Fragen zu Java  stellen oder beantworten. Hier gibt es allerdings keines, das besonders empfehlenswert ist.

Java Mock Exams 

Die (englischsprachigen) “Java Mock Exams ” oder “Java Mock Tests ” sind oft kostenlose On-Line Prüfungen mit Übungsfragen zu Java.

Lesen, Bauen und Anpassen

Für viele Java -Programme ist der Quelltext verfügbar (open-source Software). Man kann Vieles lernen, indem man versucht, den Quelltext zu lesen und zu verstehen, das Programm zu übersetzen und dann an eigene Vorstellungen anzupassen.

Programmiernachrichten

Man kann Nachrichten zum Thema Programmieren im Web lesen, beispielsweise bei reddit.

Themen

Eine Java -Programmierer sollte sich im Laufe der Zeit mit folgenden Themengebieten beschäftigt haben:

Themen und Bücher für Fortgeschrittene

Diese Bücher für Fortgeschritte sind oft auf englisch geschrieben und verwenden für Beispiele nicht immer Java  als Programmiersprache.

Java (auch für Anfänger geeignet)
Java How to Program, Deitel and Deitel
Java-Bücher von Cay Horstmann
Stilregeln für Java
Effective Java von Joshua Bloch
Algorithmen
The Algorithm Design Manual von Steve S. Skiena
Entwurfsmuster
Design Patterns von Erich Gamma, et al.
Stilregeln
Clean Code von Robert C. Martin
Refaktorieren
Refactoring von Fowler
Aufbau von Programmen mit objektorientierten Programmiersprachen
Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Edition), Craig Larman
Software-Engineering
keine Empfehlung spezieller Bücher, sondern nur Beispiele:
Software Engineering: A Practitioner's Approach, Roger S. Pressman (2005)
Beginning Software Engineering, Rod Stephens (2015)
Die Windows-Kommandozeile
keine Empfehlung spezieller Bücher, sondern nur Beispiele:
The Windows Command Line Beginner's Guide, Jonathan Moeller ( 2011 )
Learn Batch File Programming, John Albert (2014)
Die klassischen Werkzeuge (gibt es meist auch für Windows, obwohl unten „Linux“ steht)
keine Empfehlung spezieller Bücher, sondern nur Beispiele:
Unix and Linux: Visual QuickStart Guide, Eric J. Ray, Deborah S. Ray (2014)
Data Science at the Command Line, Jeroen Janssens (2014)
Programmieren mit Kontrakten
A Touch Of Class von Bertrand Meyer
Durchführung von Software-Projekten
keine Empfehlung spezieller Bücher, sondern nur Beispiele:
The Mythical Man-Month
Managing and Leading Software Projects, Richard E. Fairley (2011)
Agile Project Management with Scrum, Ken Schwaber (2004)
The Rational Unified Process: An Introduction, Philippe Kruchten (2004)
Numerik
What Every Computer Scientist Should Know About. Floating-Point Arithmetic. David Goldberg.
Compilerbau
Compilerbau von Niklaus Wirth
Compilers: Principles, Techniques and Tools von Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman (detailliert und mit viel Theorie und deswegen anspruchsvoll)
Informatik
Introduction to Formal Languages, Automata Theory and Computation von Jeffrey D. Ullman, John E. Hopcroft

Hinweise zum Lernen

In dem folgenden Text gibt Peter Norvig, der Leiter der Forschungsabteilung von Google, Tips zum Erlernen des Programmierens.

Lernen Sie zehn Jahre lang programmieren!
https://www.purl.org/stefan_ram/html/21-tage

Hier sind noch einige Gedanken von Stefan Ram zum Lernen zu finden:

>721639 Lernen lernen

FAQ „Warum wird Eclipse  im Kurs nicht unterrichtet?“

Teilnehmer, die Eclipse  bereits kennen, können Eclipse  gerne auch im Kurs verwenden! Es ist nur so, daß der Dozent Eclipse  nicht für alle  Kursteilnehmer erklärt. (Allerdings kann Eclipse  auf Wunsch in der Fragestunden gegen Ende des Kurses behandelt werden.)

Eclipse  wurde in der Kursankündigung nicht genannt, so daß von Anfang an, nicht der falsche Eindruck erweckt wurde, daß Eclipse  im Kurs behandelt werden würde.

Im Kurs werden zum Übersetzen und Starten von Programmen Kommandozeilenprogramme, wie »javac«, behandelt, die zum offiziellen (d.h. vom Inhaber der Rechte am Namen „Java “ stammenden) JDK  gehören und die (laut Berichten von Eclipse -Benutzer in Newsgroups) auch ein Eclipse -Benutzer früher oder später benötigt, und deren Handhabung daher ohnehin erlernt werden muß.

Das Thema des Kurses ist die Programmiersprache Java. Für Java  gibt es verschiedenen Entwicklungsumgebungen, wie beispielsweise Eclipse. Eclipse  ist aber kein Teil der Programmiersprache Java. Daher gehört Eclipse  nicht zum Thema des Kurses.

Neben Eclipse  gibt es verschiedene andere Entwicklungsumgebungen (Netbeans, Idea, BlueJ, Java Oriented Editing [JOE], jGrasp  und viele andere), und es wäre auch etwas willkürlich und parteiergreifend, wenn im Kurs nun gerade eine davon (Eclipse ) herausgegriffen werden würde.

Die Vorstellung von Eclipse  würde Zeit kosten, welche dann für die Behandlung des Kursthemas Java  fehlt. (Insbesondere, wenn gelegentlich Störungen oder Probleme beim Umgang mit der Entwicklungsumgebung auftauchen, kann deren Behebung zeitaufwendig werden.)

Da Eclipse  einen eigenen Java -Compiler an Stelle des Standard-Compilers »javac« verwendet, findet man auch nicht immer gleich alle aktuellen Fähigkeiten einer neuen Version von »javac« auch in Eclipse  wieder, und manchmal gibt es Probleme durch Abweichungen des Eclipse -Compilers vom Standard. (Anfang 2014 unterstützte Eclipse  in der Version Kepler  [im Gegensatz zu Netbeans ] beispielsweise noch nicht das JDK 8.)

Wer nur mit den Hilfestellungen von Eclipse  programmieren gelernt hat, ist vielleicht nicht in der Lage, auch ohne diese ein Programm zu schreiben, wenn dies manchmal benötigt wird (was beispielsweise in Einstellungsprüfungen oder anderen Prüfungen manchmal verlangt wird).

Aus fachdidaktischer Sicht könnte die Verwendung von Eclipse, dazu führen, daß die Themen Eclipse  und Java  mental zu sehr miteinander vermischt werden, und es für einen Lernenden nicht immer erkennbar ist, wo nun Java  aufhört und wo Eclipse  anfängt. Es wäre denkbar, daß ein Anfänger, der nur mit Eclipse  lernt, irrtümlich annimmt, daß Eclipse  für bestimmte Dinge notwendig sei, während diese tatsächlich auch ohne Eclipse  möglich sind.

Anfänger könnten sich zu sehr auf die Eingabehilfen von Eclipse  verlassen ohne zu lernen, den Quellcode selber richtig zu schreiben; sie könnten sich zu sehr auf die farbliche Markierung von Quelltext verlassen ohne zu lernen, den Quellcode selber genau zu lesen.

Eclipse  zeigt manchmal Meldungen an, die sich an fortgeschrittene Java -Programmierer richten aber für Anfänger unverständlich sind und nur eine Ablenkung darstellen. Die automatischen Hinweise und Korrekturen könnten die Aufmerksamkeit beim Eingeben von Quellcode zu früh auf unwichtige technische Details lenken und dazu führen, daß ein Programmierer dabei von seinen eigentlichen Plan abgelenkt wird. (Teilweise zeigt die Entwicklungsumgebung auch manchmal Stellen als falsch an, die gar nicht falsch sind.)

Nachdem Eclipse  jahrelang immer populärer wurde, nahm die Popularität von Eclipse  2013 erstmals ab, verschiedene Unternehmen (Google, IBM ) ziehen sich langsam von Eclipse  zurück (http://heise.de/-2039088). Unter diesen Umständen darf man gespannt sein, wie lange Eclipse  noch mit den Aktualisierungen anderer Software (wie dem JDK ) Schritt halten können wird.

Ein Software-Entwickler sollte ohnehin in der Lage sein, sich die Bedienung eines GUI -Programms, wie Eclipse, bei Bedarf selber anzueignen, verlangt die Programmierung neuer Software doch ohnehin größere geistige Ressourcen als die Nutzung vorhandener Software. (Es wäre ein wenig würdelos, wenn ein Programmierdozent erklären würde: „Um die Datei zu speichern, wählen Sie im Dateimenü den Eintrag ‚Speichern unter …‘ an.“, „Um ein neues Projekt anzulegen, wählen Sie ‚Neu‘ und dann ,Projekt‘ an.“, denn solche Dinge sind recht offensichtlich. Der Dozent sollte im Kurs eher das erklären, was man sich nicht so leicht selber aneignen kann, nämlich die Programmiersprache Java.)

Verschiedene sehr kompetente Programmierer bevorzugen Editoren gegenüber IDE s (“We haven't met a single great hacker that relied on an IDE ” — http://giraffesoft.ca/blog/2009/03/10/4-core-competencies-of-great-hackers.html), es gibt auch Berichte über einzelne Programmierer, die große Programme zunächst wochenlang mit einem Stift in eine Kladde schrieben und dann schließlich eintippten! – Auch wenn nur ein Minderheit dies für größere Programme bevorzugt, so sollte ein guter Java -Programmierer in der Lage sein, ein Java -Programm einigermaßen korrekt auf Papier zu schreiben. Bei einigen Einstellungsprüfungen für Programmierer in Unternehmen aus den USA wird erwartet, daß der Programmierer ein Programm schreibt, und zwar auf eine Tafel oder ein Blatt Papier, also ohne Hilfe durch eine IDE.

FAQ „Was muß man lernen, bevor man Android -Programmierung erlernen kann?“

Siehe Anfang/FAQ des Android-Kurses!

FAQ „Wie kann man eine EXE-Datei aus einem Java-Programm erzeugen?“

Dies ist mit verschiedenen Programmen möglich, wie beispielsweise

(Vorteile der AOT compilation mit Jet: Bei der Ausführung eines Programms wird die Zeit für die JIT-Kompilierung eingespart und die Dekompilierung wird erschwert.)

Kostenlos sind (teilweise veraltet, also nicht mehr gepflegt/aktualisiert)

Teilweise wird das Programm wirklich in Maschinensprache übersetzt, teilweise wird es mit einem JRE  zusammen in eine EXE-Datei gepackt.

Der »javafxpackager« aus dem JDK  kann eine installierbare EXE-Datei erstellen, wenn Inno Setup 5  vorhanden ist (oder eine MSI-Datei mit WiX 3.0 ).

Mit der SFX -Funktion kann das kostenlose Programm 7zip  ein beliebiges Verzeichnis in eine EXE-Datei wandeln (hier könnte man ein Verzeichnis nehmen, welches ein Java -Programm zusammen mit einem JRE  enthält.).

Allerdings hätte das Ausliefern einer EXE-Datei verschiedene Nachteile

Ein ausführbares JAR-Archiv kann unter Windows  auf dieselbe Weise wie eine EXE-Datei gestartet werden (falls ein JRE  installiert wurde), aber weist keinen der Nachteile einer EXE-Datei auf, weswegen die Erstellung eines ausführbaren JAR-Archivs oft zu bevorzugen ist.

Bei einer EXE-Datei ist es schwieriger, auf den Quellcode zu schließen, und sie könnte unter Umständen schneller starten und laufen als ein Java-Programm, das auf einer JVM läuft. Nicht alle Java -Programme können zu einer EXE-Datei kompiliert werden.

Aussprachehinweis
jet ʤɛt
Quellenhinweise
www.excelsior-usa.com/articles/best-jar-to-exe-conversion-tools-free-commercial.html
www.excelsior-usa.com/articles/java-to-exe.html
www.excelsior-usa.com/blog/excelsior-jet/java-app-as-a-single-exe/
www.excelsiorjet.com/kb/35/howto-create-a-single-exe-from-your-java-application

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram722553 stefan_ram:722553 FAQ zum Java-Kurs Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd722553, slrprddef722553, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/javakurs_faq