Es ist schon etwas spät, könnte also etwas abschweifend werden...
Lazarus hat gesagt.:
Hallo ich hab mal ne Frage was Java lernen angeht. Also was muss man den so wissen bzw. in welche Richtung sollte man am besten seine Lernanstrengungen lenken.
Was muss man wofür wissen? In welche Richtung? Die, die zum Ziel führt! Ok, da das wohl nicht hilfreich ist, mal anders gefragt: wo willst du hin? Es nützt doch herzlich wenig, wenn du komplexe verteilte Anwendungen entwickeln kannst, aber eigentlich lieber mit J2ME großartige Spiele verwirklichen möchtest. Wenn jemand sagt, er möchte Sportler werden und fragt wie er trainieren sollte, damit er zur Weltspitze gehört, sollte sich ja auch im klaren darüber sein, ob er Boxer werden möchte oder irgendwann unter der Anweisung von John Neumeier tanzen möchte.
Lazarus hat gesagt.:
Ich hab mal so ne olle Umschulung gemacht. Angeblich haben wir da Java Programmieren gelernt. Nur also was ich aus der Umschulung an Java Kenntnissen bekommen habe das weiß sogar ich daß das lächerlich ist und ich mich auf keinen Fall JavaProgrammierer schimpfen sollte. Gut ich habe weiter gemacht und selber dazu gelernt.
Sehr gut, dass ist schon mal eine wichtige Erkenntnis, die manchmal viel zu spät kommt...
Lazarus hat gesagt.:
Das Java Verständnist hab ich nun drauf. Das Buch Java ist auch eine Insel schon zur Hälfte durch. Kann ich davon ausgehen wenn ich das ganze Buch drauf habe, natürlich nicht auswendig aber sämtliche Kapitel verstanden und durchgearbeitet daß ich Java drauf habe?
Hm... Nein! Das ist in etwa so wie mit dem Autofahren (keine Ahnung, ob du schon einen Führerschein hast, wenn ja, wirst du es nachvollziehen können): Wenn man seine Führerscheinprüfung bestanden hat (das Buch durch hat), weiß man zwar, wie man das Auto bedient (die Syntax, etc.), aber es fehlt einfach die Erfahrung, um sagen zu können, man sei ein guter Autofahrer. Ich kenne keinen Fahranfänger, der nach seiner Führerscheinprüfung z.B. nachts bei Regen alleine eine längere Strecke von mehreren hundert Kilometern angetreten ist... Theoretisch wäre das zwar möglich, aber praktisch würde das (fast) keiner machen. Und wenn man es doch machen würde, würde man sich eingestehen, dass man sich überschätzt hat (was bei vielen Hobby-Projekten ja leider nicht die Ausnahme ist). Dieses überschätzen äußert sich dann wohl darin, dass man entweder abbricht oder wesentlich später das Ziel erreicht als es mit mehr Erfahrung nötig gewesen wäre. Beides bringt nicht sonderlich viel Spass...
Lazarus hat gesagt.:
Ne Vergleichsmöglichkeit habe ich nicht weil das was ich jetzt mache ist schon x mal komplizierter als das in der Schule. Aber noch denke ich einen guten Tacken entfernt von JavaProfi.
Wenn du schon eine Vorstellung hast, was du gerne mal realisieren würdest, dann schau doch einfach mal nach, bei welchen Elementen du nicht wüsstest, wo du anfangen solltest. Das ziehet in der Regel zwar einen endlosen Rattenschwanz hinter sich her, wenn man erst einmal angefangen hat, einer Sache auf den Grund zu gehen, aber der Lerneffekt dürfte enorm sein (auch wenn man meist nicht gleich zu verwendbaren Ergebnissen kommt).
Lazarus hat gesagt.:
Wer kann mir sagen wie so die Anforderungen sind. Und bitte ehrlich. Weil die einschließlich dieser ollen Dozenten die ich gefragt habe konnten mir nichts dazu sagen ohne selber zugeben zu müssen, daß sie es voll nicht drauf haben.
Lern programmieren! Es ist völlig egal, mit welcher Sprache du arbeitest. Programmieren ist mehr, als nur ein bißchen Syntax und Befehle zu kennen. Anfangs wird man selten Theorie für sonderlich interessant oder sinnvoll finden. Wer aber schon mal eine doppelt-verkettete Liste oder ein Sortieralgorithmus in Pascal implementiert hat, wird auch in Java keine Probleme haben, da er das Prinzip schon verstanden hat. Ebenso ist es wichtig, dass man versteht, WAS man überhaupt verwendet. Zum Sortieren gibt es in Java auch Methoden. Wenn man aber keine Ahnung hat, was sich 'theoretisch' dahinter verbirgt (oder verbergen kann), wird man irgendwann Nachteile haben.
Und was ich ebenfalls sehr wichtig finde: für jede Aufgabe das richtige Tool! Immer wieder sehe ich, dass Leute, ihre hochgeheiligte auf keinen Fall wechseln wollen. Verdammt noch mal! Wenn ich einen Bootloader brauche, schreibe ich den in Asm. Brauche ich ein CGI-Skript, mach ich das in Perl. Soll's ein kleines Tool mit GUI werden, mit Delphi. Bei einigen Dingen bleibt einem gar keine Wahl (z.B. Bootloader), aber wenn jemand ein CGI-Skript mit Asm schreibt, dann ist er entweder Fetischist oder hat etwas nicht begriffen.
An sich sollte dieser Punkt klar sein. Nur können die meisten Anfänger nicht entscheiden, WANN sie WELCHES Tool verwenden sollten. Wenn man, dass nämlich weiß, ist es egal um welches Tool es sich im speziellen handelt, da dann wieder der vorige Punkt zum tragen kommt.
Lazarus hat gesagt.:
Ich würde mal gerne bei der Realisierung eines Java Projektes mitarbeiten. So nach und nach größere Aufgaben übernehmen und quasi mit dem Projekt auch mal Profis bei der arbeit sehen und was die so drauf haben. Hab mal so ein Praktikum gemacht aber das einzige was ich da sehen konnte waren so ein paar kaputte, die ganz stolz waren daß sie Homepages mit NOF erstellen können und Datensätze aus Exel nach Access bringen und anschließend einen Seriendruck starten. Da war so ein Informatiker , der nicht mal wusste ob man mit WinZip ein selbtenpackendes Archiv erstellen kann und der so eine Datensatzparser für die Firma geschrieben hat. Na so einen Datensatzparser bekomm ich nun auch schon hin und das sogar mit eine Grafischen Oberfläche und nicht im d-Base Stil.
OT: Was ist NOF?
Hm, muss man als Informatiker wissen, ob WinZip ein selbtenpackendes Archiv erstellen kann? Nein! Ich weiß, dass das geht, ebenso mit ARJ, Filzip und WinRar. Ob's mit WinAce geht? Wahrscheinlich auch. Wie sieht es mit LHA aus? Keine Ahnung. Der Punkt ist doch: weiß ich, wenn ich es brauche, wo ich nachschauen kann, um es zu verwenden! Da ich diesen Informatiker nicht kenne, kann ich nichts weiter dazu sagen.
Lazarus hat gesagt.:
Kennt jemand so ne Gruppe von Programmierern, die auch nach dem Studium weiter gelernt haben und nicht auf so Pilefitz stolz sind?
Nicht nur in der IT-Branche heißt es: Stillstand ist Rückschritt. Alle werden sich sicherlich irgendwie weiterbilden (müssen). Nur ist es nunmal so, dass Leute, die den Job schon etwas länger machen, weder die Zeit noch die Lust haben, immer auf den neusten Hype anzuspringen. Und außerdem werden alte System ja nur in den seltesten Fällen umgeschrieben, so dass meist auch gar kein Bedarf an neuen Wissen in neuen Technologien verlangt wird.
Lazarus hat gesagt.:
Was soll man den von so Pfeifen lernen?. Ich denke sich mit sowas aufzuhalten ist reine Zeitverschwendung.
Autsch! Von solchen Pfeifen lernt man eine ganze Menge! Nur leider kommen diese Ergebnisse meist viel viel später. Und zwar lernt man, wie man es NICHT macht! Das heißt zwar nicht, dass man automatisch weiß, wie man es richtig macht, aber das sind Erfahrungen, die einem später nützlich sein werden.
Noch ein paar generelle Dinge, die mir jetzt spontan einfallen:
- Viel programmieren! Und vor allem fertig machen! Mit allem was dazu gehört. Die meisten Leute verlieren irgendwann die Lust an ihren Projekten und hören auf (nicht umsonst heißt es: nach den ersten 90 % kommen die zweiten 90 %). Wer aber ein Projekt fertig gestellt hat (mit Dokumentation, etc.), kann dieses ggf. irgendwann als Referenzen verwenden.
- Nicht mit der Tür ins Haus fallen! Lieber mit etwas kleinem anfangen und dies ordentlich zu Ende machen. Gerade am Anfang schreibt man Code, der einfach nicht schön ist (vom Stil her, Probleme lernt man eleganter zu lösen, etc.)
- Sich einen guten Programmierstil aneignen! (Fremde Sourcen lesen, hilft da nicht immer, aber mit der Zeit erkennt man, was schön ist und was nicht). Außerdem gibt's da etliche Bücher zu diesem Thema.
- Team-Arbeit üben. Teamfähigkeit ist nicht jedermans Sache. Und selbst Menschen, die von Natur aus Team-Player sind, können sich manchmal nicht in komplexe Projekte gut eingliedern (zum Thema 'Projekte im Team' gibt's auf meiner Homepage auch einen etwas ausführlicheren Artikel).
- Zeitplanung! Das planen von Projekten ist nicht ganz so einfach, wie etliche Pressemitteilungen auch belegen. Deshalb früh genug damit anfangen, wenn es noch keinem 'weh' tut. Einfach nur, um ein Gefühl dafür zu bekommen.
- Auch bei kleineren Projekten schon mal mit den Dingen anfangen, die später in großen Projekten unerlässlich werden. (Kommentare, Dokumentation, Pflichtenheft, Zeitplanung, UML, etc.)
- Viel lesen! Und zwar nicht nur Java-spezifische Dinge.
Hm... was noch? Achja, Kommunikation und sozialer Umgang sind noch wichtige Punkte. Auch wenn sich einige damit brüsten, lieber vorm Rechner zu sitzen und zu programmieren, als was mit Freunden zu machen (soweit diese vorhanden sind). Wer später im Team sich nicht formulieren kann, diplomatisch ein Trampel ist (man fängt ja selten gleich als Chef an) und nicht sachgemäß argumentieren/diskutieren kann, wird auch verloren haben.
Habe ich was vergessen? Bestimmt, aber vielleicht hilft die das eine oder andere ja weiter...