Sorry, aber das ist genau der Punkt. Dass, was ihr als "viel" und "unnötig" bezeichnet sind absolut
minimale Grundlagen.
KFZ-Mechanik würde bedeuten, sich intensiv mit CPU- bzw Rechnerarchitektur und dem Aufbau
von Betriebsystemen zu beschäftigen. Der Threadersteller möchte C++ lernen, welchen Sinn macht es
bitte mit Java anzufangen?
Da er vorher nichts in der Art gemacht hat, braucht er Grundlagen.
Genaugenommen geht das Wissen um die Java-Virtual-Machine in Bezug auf Java schon viel tiefer,
als ich es mit meiner kleinen (unvollständigen) Liste für C umrissen habe.
"GUI-Programmierung" ist prinzipiell stinklangweiliger Kram.
Widgets arrangieren, an die Funktionen knüpfen und dann massenhaft Redaktionsarbeit für Lokalisierung, Dokumentation etc.
Interessante Funktionalität ist da nur seltenst vorhanden. Das weicht erst dann von Schema-F ab,
wenn man GUI-Elemente selbst entwickelt. Sei es Widgets bauen, oder an der Grafikengine arbeiten,o.Ä.
Eine GUI ist doch nichts weiter als eine andere Schnittstelle, für Daten Ein- und Ausgabe.
Das ist am Anfang nur deshalb so reizvoll, weil man sich gerade unter Windows, mit einem Konsolenprogramm
etwas "ausgestoßen" fühlt.
Da ist die Freude natürlich groß, wenn man "Fenster baut" und damit dann (vermeintlich) in der gleichen
Liga spielt, wie kommerzielle Entwickler.
Aber spätestens nach ein paar Frontends sollte man das hinter sich haben.
Vor einigen Wochen hab ich ein Projekt gehabt, bei dem es um heuristische Suchverfahren geht.
(greedy, A*, ...)
Als Frontend haben wir Swing-Komponenten und Batik in Kombination mit Graphviz verwendet, um die
Suchbäume dazustellen.
Abgesehen von der Integration des Batikframes (hatte ich vorher noch nicht benutzt) und der
Anbindung des Graphviz (bzw "dot") Outputs, war das Frontend absolute Knechtarbeit.
Es kostet Zeit und ist tierisch nervig, den ganzen Kram sauber zu arrangieren, Und wirklich erreicht
hat man inhaltlich nicht viel.
Etwas später hatte ich ein Projekt zu einem OBJ-Viewer. (Anzeige von Punkt-Flächen-Listen, Netzgenerierung, Netzglättung, Shader, etc.)
Das Langweiligste und Anstrengendste dabei war es, neben den JOGl-Frame noch Menüs zu basteln,
um die Modelle zu laden, die Glättungsiterationen oder das Shading einzustellen, blablabla (gähn).
Während der Entwicklung hab ich mich darum sogar gedrückt und eine "Quake-Style" Konsole
mit LuaJava eingebaut, um effizienter arbeiten zu können.
War natürlich nur Entwicklerfreundlich und nicht Anwenderfreundlich, also musst der Swing-Schmodder
später noch dazu. Ihr könnt euch kaum vorstellen wie froh ich war, dass Java einem da einen Großteil abnimmt, und ich
mich nur ein paar Stunden um die GUI kümmern musste.
Es gibt typischerweise zwei Extrema, was Projekte (gerade bei der PRogrammentwicklung) angeht.
Projekte mit tollen Ergebnissen, die furchtbar öde zu entwickeln sind.
Bsp.: Faltung mit Shadern. Es ist extrem nervig den Pflichcode runterzuschreiben um den Kern
über das Bild zu jagen und die Werte zu aktualisieren. Genauso nervtötend ist das Einbinden und Ansteuern
des Shaders. Das einzig "Interessante" ist evtl. der FIlterkern, und natürlich der WOW-Effekt, wenn von der
3D-Szene z.B. nur noch die gefilterten Kanten übrigbleiben.
Projekte mit vermeintlich langweiligen Ergebnissen, die in der Entwicklung sehr reizvoll sind.
Bsp: Wir haben/hatten gerade ein Projekt aus dem Bereich der Kryptographie.
Dabei geht es um einen schnellen/schnelleren Algorithmus zur Primzahlerkennung.
Der Output ("ist prim", oder "nicht prim") ist derb langweilig.
Den Algorithmus zu verstehen (z.B. Biquadratisches Sieb) und auf der Playstation3 zu implementieren
(in C

) ist dagegen wesentlich reizvoller.
Typischerweise stürzen sich Einsteiger immer auf Projekte aus der ersten Gruppe.
Dort kann man wesentlich leichter sehen, "dass man was geschafft hat".
Wer eine entsprechende Ausbildung beginnt, fängt überwiegend von der anderen Seite an.
Und mit zunehmender Erfahrung wünscht man sich dann einen Job, bei dem man tolle Ergebnisse
und gleichzeitig spannende Aufgaben hat (sprich sowas wie theoretische Informatik & Computergrafik).
So unheimlich viele Jobs gibts da aber leider nicht. (Deswegen bleiben solche Menschen oft
im Bereich Forschung und Lehre ^^)
mfG
-- -- muckelzwerg