Krautkanal.com

Veröffentlicht am 2015-02-10 10:27:01 in /prog/

/prog/ 6589: Java lernen

areus Avatar
areus:#6589

Hallo Bernd,

ich habe Bild relatiertes Buch durchgearbeitet und kann jetzt sicherlich von mir behaupten, über Grundkenntnisse in Java zu verfügen. Mehr ist es aber ganz sicher nicht.

Gibt es Werke o.ä., die an Grundkenntnisse anknüpfen, um dann vertiefendes Wissen zu vermitteln? Wie kann Bernd sich jetzt weiterentwickeln?

Vielen Dank.

yassiryahya Avatar
yassiryahya:#6590

Effective Java von Joshua Bloch, einem der Mitentwickler bei Sun/Oracle.

Java Concurrency in Practice, ebenfalls von Joshua Bloch, unter anderem

Design Patterns: Elements of Reusable Object-Oriented Software (Gang Of Four Buch); alternativ, wenn dir diese Head First Bücher von OReilly zusagen, gibt's von denen auch Head First Design Patterns

craighenneberry Avatar
craighenneberry:#6594

Von Kopf bis Fuß bläht die Inhalte sehr stark auf.

Wichtig ist, zu verstehen, dass es Java als Sprache gibt und Java-Bibliotheken wie Netzwerk, Ein- und Ausgabe, GUI usw. sowie dass für Spezialfälle ein Rückgriff auf native Bibliotheken möglich ist.

Andere haben sich die Arbeit gemacht und Frameworks erstellt, z.B. libGDX mit Java-Support für Spieleentwicklung.

Wiederkehrende Programm-Strukturen lassen sich unter dem Begriff Design Patterns zusammenfassen.

Falls es Dich in die Spieleprogrammierung zieht, ist die Game Loop (Eingabe, Update, Ausgabe), Timing (ticks oder deltatime) sowie saubere Code-Struktur (MVC-Pattern) ein wesentliches Thema. Nach meiner Erfahrung unterscheiden sich Bücher sehr stark in ihrem Anspruch an diese Sauberkeit. Gute Bücher kenne ich keine.

Weiterentwicklung funktioniert nur durch Programmieren selbst. Dazu muss man aber motiviert sein oder sich motivieren können, sonst wird das nichts. Das Wissen eignet man sich dann Stück für Stück durch Tutorials an. Ein Buch zum Durchkauen ist mir auch hier nicht bekannt.

http://docs.oracle.com/javase/tutorial/
(Gibt es als Download)

http://www.amazon.de/Java-Beginners-Guide-Herbert-Schildt/dp/0071809252

http://www.amazon.de/Java-Complete-Reference-Ninth-Edition-ebook/dp/B00HSO0X6C

http://zetcode.com/
(Nach "Java" suchen)

https://www.youtube.com/playlist?list=PLRIWtICgwaX0u7Rf9zkZhLoLuZVfUksDP

https://www.youtube.com/playlist?list=PL19F2453814E0E315

http://jmonkeyengine.org/
(Beide Bücher)

Design Patterns
(Die meisten aus der Praxis lernt man on-the-fly)

Android Programmierung
(Da kommt dann alles zusammen)

http://www.amazon.de/Beginning-Android-Games-Mario-Zechner/dp/1430246774
(Zuerst wird ein Framework und mit diesem werden dann Spiele erstellt)

http://libgdx.badlogicgames.com/

http://ludumdare.com/compo/ludum-dare-22/?action=preview&uid=398
(Minicraft Source)

cat_audi Avatar
cat_audi:#6596

>>6589
Kannst du nur Java. Oder kannst du auch Programmieren? Ich vermute nur Ersteres. Besorg dir ein Buch (etc.pp.) ueber Algorithmen und Datenstrukturen.

mutlu82 Avatar
mutlu82:#6597

>>6596
Theoriewissen ohne konkrete Umsetzung in einer Programmiersprache bringt nicht viel. Unterschied zwischen Wissen und Weisheit kennste?

exevil Avatar
exevil:#6598

>>6597
Ohne theoretisches Wissen keine Softwareentwicklung. Deshalb fragte ich ja ja nahc Programmiersprache UND empfahl dazu Wissen ueber Algorithmen. MERKSTE.

jitachi Avatar
jitachi:#6609

Anstatt jetzt das nächste Buch zu holen, solltest du erstmal eine ganze Weile darauf verwenden die Grundlagen in tatsächliche Programme umzusetzen.

abdots Avatar
abdots:#6616

>>6589
>Wie kann Bernd sich jetzt weiterentwickeln?
Praxis.

Such dir immer ein Projekt raus, das ein Thema behandelt, was du noch nicht kannst/verstehst.
Z.B. das erste für OOP, dann eins mit Datenbanken und ORM, dann Webentwicklung, dann was mit UI wie Spiel oder implementier Datenstrukturen etc etc.

Les den Code von anderen!

Wenn du nicht weißt, was du alles nicht weißt, dann lauere regelmäßig auf den bekannten Seiten wie HN.

Relatiert:
http://www.vikingcodeschool.com/posts/why-learning-to-code-is-so-damn-hard

Auch: Was >>6609 sagt.

lisakey1986 Avatar
lisakey1986:#6617

>>6616
Ja scheisse und woher nimmt man sich ein Projekt? Und von wem kann man den Code begutachten lassen?

andrewofficer Avatar
andrewofficer:#6620

>>6617
Da gibt es doch genug existierende Projekte.

Selbst in Java, z.B. jEdit (wo es immer Bedarf an Mitarbeitern gibt) oder JMonkey Engine, oder Groovy und Grails.

aiiaiiaii Avatar
aiiaiiaii:#6622

>>6617
>woher nimmt man sich ein Projekt?
Brain.exe
Ist das echt so schwer? m(
Siehe hier:
>Such dir immer ein Projekt raus, das ein Thema behandelt, was du noch nicht kannst/verstehst.

>Und von wem kann man den Code begutachten lassen?
Wie wäre es erst mal mit dem Compiler? Ansonsten open source es.

bruno_mart Avatar
bruno_mart:#6626

>>6616
>HN

Was soll das sein?

pf_creative Avatar
pf_creative:#6643

>>6626
Hacker News
https://news.ycombinator.com

madebyvadim Avatar
madebyvadim:#6644

>>6643
in_den_müll_geht_es.mdl

BrianPurkiss Avatar
BrianPurkiss:#6648

>>6589
>Wie kann Bernd sich jetzt weiterentwickeln?
Statt einem Buch würde ich wie schon gesagt würde mal ein Reale-Welt-Projekt vorschlagen, dass einen dann auch vor ganz konkrete Probleme stellt.

Wenn dir gar nichts einfällt was du selbst machen willst oder wo du dich einbringen möchtest: programmier das Game of Life. Wurde kürzlich in einem von mir besuchten Workshop behandelt und ich war erstaunt wieviel das hergibt an Problemen und Herangehensweisen.

Effective Java ist schon ganz gut, wenn auch nicht mehr so richtig up-to-date.
Wenn dein Buch es noch nicht behandelt und du es geübt hast wäre TDD sicher ein spannendes Thema.
Auch sehr empfehlenswert, aber vielleicht erst später wenn man schon wirklich produktiven Code prodiziert hat ist Robert C- Martin - Clean Code (alle Beispiele in Java).