Wie schnell Java lernen?
Der-Dennis
- meinung
0 suit0 Der-Dennis0 suit
0 fastix®0 Der-Dennis0 fastix®0 Der-Dennis0 Christopher0 splinter
Hallo zusammen,
ich bitte Euch mal wieder um Eure Meinung. Es geht darum: Ich muss nächstes Semester im Zuge meines Studiums eine Projektarbeit schreiben. Heute habe ich von einem Institut ein sehr interessantes Thema angeboten bekommen und würde die Arbeit auch gern zu diesem Thema schreiben.
Zu meinem Problem: Ein Teil der Arbeit wird aus der Entwicklung und Implementierung einer Java-Software bestehen - mit Java habe ich mich allerdings noch nie beschäftigt.
Deshalb meine Frage an Euch: Wie schätzt Ihr den Zeitaufwand ein, den ich brauche, um Java zu erlernen? Mir ist bewusst, dass das eine Frage ist, die nicht pauschal beantwortet kann (insbesonders dadurch nicht, da keiner weiß, wie lang _ich_ für sowas brauche).
Deshalb noch ein paar Hintergrundinformationen:
Die Projektarbeit dauert in der Regel 16 Wochen. In dieser Zeit müsste ich also Java erlernen (vorher hab ich keine Zeit dazu), das Tool implementieren und den Bericht (ca. 50 Seiten Text plus Anhang) schreiben.
Ich habe durchschnittliche bis gute Kenntnisse in anderen Programmiersprachen, darunter PHP, C++ und JavaScript; den Großteil habe ich autodidaktisch erlernt.
In dem Institut arbeiten "Software-Engineers" und Java-Programmierer, die mir laut heutiger Aussage zur Seite ständen (worauf ich mich am Ende aber nicht verlassen möchte).
Ebenso wäre nach heutiger Aussage eine Verlängerung möglich (aber auch darauf möchte ich mich nicht verlassen).
Ich bin kein Informatiker; wenn überhaupt kommt die Informatik nur rudimentär in meinem Studium vor.
Also, haltet Ihr das für machbar? Wie ähnlich sind sich beispielsweise Java, PHP, C++ und JavaScript? Habe mir eben "auf die Schnelle" ein Java-Tutorial durchgesehen, in dem ich viele Gemeinsamkeiten zwischen den genannten Sprachen entdeckt habe. Könnt Ihr das bestätigen?
Ich danke Euch wie immer sehr für Eure Meinung!
Gruß, Dennis
Ps: Ich werde jede Meinung von Euch lesen, werde aber wohl nicht auf jede antworten können - eine Meinung ist schließlich eine Meinung. Dies nur vorweg, damit nicht jemand denkt, seine Meinung sei mir nicht wichtig.
Ps2: Sorry, dass ich Euch das konkrete Thema nicht nennen darf, obwohl es sicher zur besseren Einschätzung dienlich wäre.
Also, haltet Ihr das für machbar? Wie ähnlich sind sich beispielsweise Java, PHP, C++ und JavaScript? Habe mir eben "auf die Schnelle" ein Java-Tutorial durchgesehen, in dem ich viele Gemeinsamkeiten zwischen den genannten Sprachen entdeckt habe. Könnt Ihr das bestätigen?
Ja, Java ist auch eine C-ähnliche (genauer gesagt C++) Programmiersprache.
Hey suit,
Also, haltet Ihr das für machbar? Wie ähnlich sind sich beispielsweise Java, PHP, C++ und JavaScript? Habe mir eben "auf die Schnelle" ein Java-Tutorial durchgesehen, in dem ich viele Gemeinsamkeiten zwischen den genannten Sprachen entdeckt habe. Könnt Ihr das bestätigen?
Ja, Java ist auch eine C-ähnliche (genauer gesagt C++) Programmiersprache.
danke für Deine Antwort. Wenn Java also C-ähnlich ist, sollte das Vorhaben ja kein allzugroßes Problem darstellen.
Ich hätte dann aber noch eine anschließende Frage an Dich: Gibt es irgendwelche (bekannten) Fallstricke für "Umsteiger" bzw. "Neu-Lerner"? Also Fehler, die man aufgrund der Kenntnis einer anderen Sprache macht und die man (wenn man sie denn weiß) einfach vermeiden könnte?
Gruß, Dennis
Ich hätte dann aber noch eine anschließende Frage an Dich: Gibt es irgendwelche (bekannten) Fallstricke für "Umsteiger" bzw. "Neu-Lerner"? Also Fehler, die man aufgrund der Kenntnis einer anderen Sprache macht und die man (wenn man sie denn weiß) einfach vermeiden könnte?
Das einzige was mir jetzt spontan einfällt ist, dass "const" in Java nicht das tut, was "const" tun sollte :)
Ich hab' mich mit Java auch nur beschäftigt, damit ich das mal gemacht habe - da fragst du leider den falschen :) aber es gibt sicher eine große Zahl an Fallstricken.
Hey suit,
Ich hätte dann aber noch eine anschließende Frage an Dich: Gibt es irgendwelche (bekannten) Fallstricke für "Umsteiger" bzw. "Neu-Lerner"? Also Fehler, die man aufgrund der Kenntnis einer anderen Sprache macht und die man (wenn man sie denn weiß) einfach vermeiden könnte?
Das einzige was mir jetzt spontan einfällt ist, dass "const" in Java nicht das tut, was "const" tun sollte :)
Ich hab' mich mit Java auch nur beschäftigt, damit ich das mal gemacht habe - da fragst du leider den falschen :)
das ist doch schon ein super Hinweis! Hab da gerade mal schnell nachgeschaut:
Das Schlüsselwort "const" ist reserviert, aber ohne Bedeutung. Oder besser: Es definiert eine gewöhnliche, öffentliche Variable und nicht die erwartete Unüberschreibbarkeit. Eine mögliche Lösung bieten Implementationen mit dem Schlüsselwort "final". Da muss ich aber erstmal noch ein bisschen Lesen.
aber es gibt sicher eine große Zahl an Fallstricken.
Das bestimmt. Aber auf einen hast Du mich schon hingewiesen. Entweder ich weiß es jetzt und mache den Fehler nicht oder aber ich weiß zumindest, wenn ich ihn mache, woher ein seltsames Verhalten stammen könnte und wo ich suchen kann. Danke!
Gruß, Dennis
Hi,
Das Schlüsselwort "const" ist reserviert, aber ohne Bedeutung. Oder besser: Es definiert eine gewöhnliche, öffentliche Variable und nicht die erwartete Unüberschreibbarkeit. Eine mögliche Lösung bieten Implementationen mit dem Schlüsselwort "final". Da muss ich aber erstmal noch ein bisschen Lesen.
ich als pythonista finde Konstanten sowieso unnützt... he he. Nochmal zu Java: ich kenne es vor allem aus der Programmierung mit Processing, also eher im grafischen Bereich. Du kannst Processing in Eclipse entwickeln, das ist ne feine Sache, weil Debugger etc. vorhanden sind. Für Java-Entwicklung würde ich sowieso nur Eclipse nehmen. In der Processingumgebung kannst du die Processing-Syntax nutzen, sowie pures Java. Das bleibt dir überlassen. Wenn du mit GUIs arbeitest, musst du dich in Threads einarbeiten. Dort gibts eventuell ein paar Fallstricke (Deadlocks, Heisenbugs ;)), ansonsten ist Java eher zahm.
Na ja, viel Spass. Java ist nicht so schwer, wird dir als C++ler a piece of cake!
Moin!
Ps2: Sorry, dass ich Euch das konkrete Thema nicht nennen darf, obwohl es sicher zur besseren Einschätzung dienlich wäre.
Für das Lernen nur spezifischer Teile von Java kann der der Aufwand sehr gering sein. Ich habe mal ein Java-Grundlagenseminar gehalten und eines, welches sich ausschließlich mit der Datenbankverbindung zu Oracle befasste. Meine reale Vorbereitungsszeit lag bei etwa der doppelten Seminardauer, also bei 32h und 16h. Und war nicht fleißig.
Es kann aber sein, dass Du auch deutlich mehr brauchst. Java ist wie C++ oder C: eigentlich lernt man da nie aus.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix
Hey fastix,
auch Dir herzlichen Dank!
Für das Lernen nur spezifischer Teile von Java kann der der Aufwand sehr gering sein. Ich habe mal ein Java-Grundlagenseminar gehalten und eines, welches sich ausschließlich mit der Datenbankverbindung zu Oracle befasste. Meine reale Vorbereitungsszeit lag bei etwa der doppelten Seminardauer, also bei 32h und 16h. Und war nicht fleißig.
Das hört sich ja schonmal gut an :-) Hast Du denn einen Tipp für mich, wie ich da am besten rangehe? Tutorial durcharbeiten oder einfach mal mit meinen bisherigen Kenntnissen der anderen Sprachen "draufloshacken" und schauen, wo ich Fehler gemacht habe? Oder wie bist Du darangegangen?
Es kann aber sein, dass Du auch deutlich mehr brauchst. Java ist wie C++ oder C: eigentlich lernt man da nie aus.
Das ist mir leider/zum Glück bewusst. Zum Glück, weil ich gerne neues lerne. Leider, weil ich in dem speziellen Fall noch nicht weiß, was auf mich zukommt.
Gruß, Dennis
Moin!
Hast Du denn einen Tipp für mich, wie ich da am besten rangehe?
Zuerst eine Soll-Ist-Analyse.
Die Frage ist, was Dein Projekt an Wissen erfordert. Wenn das Programm ohne grafische Oberfläche auskommt, keine Netzwerkverbindungen benötigt und alle Daten aus Files, Streams, der Umgebung oder mit jdbc/odbc adressierbaren Datenbanken kommen und die Ausgaben auf der Konsole, in (Text)dateien, einem Stream, einem Gerät unter Linux oder in einer Datenbank landen sehe ich kein Problem, was da benötigt wird kann man schnell lernen.
Der "Spaß" beginnt bei grafischen Oberflächen und Interaktion mit dem Benutzer - womöglich noch über Webbrowser oder bei Zugriffen in Netzwerke. Bei einigen speziellen Sachen ist es sinnvoll nach fertigen Bibliotheken zu suchen, dass kann mehr Zeit kosten als zu lernen, wie man diese einbindet und benutzt.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix
Hey fastix,
Hast Du denn einen Tipp für mich, wie ich da am besten rangehe?
Zuerst eine Soll-Ist-Analyse.
ja, die bleibt mir wohl nicht erspart... :-)
Die Frage ist, was Dein Projekt an Wissen erfordert.
Das wüsste ich auch gern! Tut mir Leid, dass ich Euch nichts genaueres sagen kann - aber ich kann das alles selbst noch nicht einschätzen und mir fehlen auch noch viele Informationen. Deshalb auch die schwammige Frage im OP.
Der "Spaß" beginnt bei grafischen Oberflächen und Interaktion mit dem Benutzer - womöglich noch über Webbrowser oder bei Zugriffen in Netzwerke. Bei einigen speziellen Sachen ist es sinnvoll nach fertigen Bibliotheken zu suchen, dass kann mehr Zeit kosten als zu lernen, wie man diese einbindet und benutzt.
Gut, dass Du das sagst. Es handelt sich tatsächlich um eine grafische Oberfläche. Ob die nun "auf dem Desktop" oder im Browser laufen soll, weiß ich noch nicht. Allerdings wurde mir gesagt, dass es da ein ganz-ganz-super-super-tolles Framework gibt, was mir quasi die ganze grafische Arbeit und noch vieles-vieles mehr abnimmt. An den Namen des Frameworks kann ich mich nicht erinnern, bin aber sehr gespannt... Nächste Woche kenne ich aber hoffentlich wenigstens den Namen.
Nochmal vielen Dank und Gruß,
Dennis
Hallo,
Allerdings wurde mir gesagt, dass es da ein ganz-ganz-super-super-tolles Framework gibt, was mir quasi die ganze grafische Arbeit und noch vieles-vieles mehr abnimmt. An den Namen des Frameworks kann ich mich nicht erinnern, bin aber sehr gespannt... Nächste Woche kenne ich aber hoffentlich wenigstens den Namen.
Falls es sich um eine Browserapplikation handeln sollte, koennte vielleicht Grails gemeint sein?
Grusz,
Christopher
Hey Christopher,
Falls es sich um eine Browserapplikation handeln sollte, koennte vielleicht Grails gemeint sein?
wie gesagt, ich weiß es leider nicht. Am Mittwoch gibt's noch mal ein Treffen, dann weiß ich mehr.
Hab mir aber gerade mal das kurze Video auf http://grails.org/screencast/show/15 angesehen. Schon echt faszinierend, was Frameworks mittlerweile so drauf haben.
Gruß, Dennis
Gut, dass Du das sagst. Es handelt sich tatsächlich um eine grafische Oberfläche. Ob die nun "auf dem Desktop" oder im Browser laufen soll, weiß ich noch nicht. Allerdings wurde mir gesagt, dass es da ein ganz-ganz-super-super-tolles Framework gibt, was mir quasi die ganze grafische Arbeit und noch vieles-vieles mehr abnimmt. An den Namen des Frameworks kann ich mich nicht erinnern, bin aber sehr gespannt... Nächste Woche kenne ich aber hoffentlich wenigstens den Namen.
Wenns im Browser laufen sollte vermute ich mal dass dafür Java Enterprise Technologien verwendet werden. Dieser Frage solltest du nachgehen, wenn du den Aufwand schätzen willst.
Wenn du "nur" mit der Java Standard Edition arbeiten musst wirst du mit deinen Vorkenntnissen keine Schwierigkeiten haben, sind aber Java Enterprise Technologien im Spiel wird das ganze viel zeitraubender weil du da die gängigen Java Technologien / Konzepte wie JavaBeans, JSP, JSF, JPA plus irgend ein zusätzliches Framework erlernen musst um einigermassen Qualfrei arbeiten zu können. ;-)
Erkundige dich nach den verwendeten Technologien und schau dir einzelne Einführungstutorials zu diesen an, dann wird dir schnell klar wie vill (oder wenig) du noch lernen musst.
Gruss
splinter