Learning Java - Tutorials?

Miscellaneous Forums/General Discussion/Learning Java - Tutorials?

I have to teach myself Java in a few days. Are there any online tutorials, guides etc. you have read and would recommend? I can find quite a few using Google, of course, but it's not so easy to tell which of them are good or thorough.

I know BlitzMax, C++ and some C# so it doesn't have to start with basics - but I need to learn syntax, conventions and the most important bits about the classes.

Any opinions appreciated!

Yeah. Bruce Eckel's "Thinking in Java". It's the only book you'll ever need (and you can get it as a real book too if you're so inclined). Enjoy.

Bruce Eckel's book is great, but I think the best book for learning Java still is Kathy Sierra's and Bert Bates' "Head First Java" - it's fun to read and to learn with it. You won't get it online, though, but it's worth to buy the printed book.

do the books cover java2d? or just programming

I cant vouch for Head First Java - but I have Head First C# and its great - the book in general is much easyer to learn -- its more picture oriented.

http://java.sun.com/docs/books/tutorial/index.html

If you know any c++/c#, then java is pretty easy.

Also, this is the ultimate reference:

http://java.sun.com/javase/6/docs/api/index.html

Thanks for the suggestions. I'll look into the Eckel book.

Head First Java does not cover Java2D - it's about learning the language, and since Java is one of those overly complex design-by-committee-languages, just learning the language and its concepts will keep you busy for a while. (Presuming that you're not a hardcore C++ or C# programmer already.)

"Head First Java" is very visual and more like a Comic book; Eckel is very verbose, scientific, thorough and almost exhaustive. It's an awesome second book.

I'd also recommend "Java in a nutshell" as a reference manual.

"Killer Game Programming in Java" probably is the best book - or better: "tome", because it's quite thick - for people who already know the language and now want to dive into game programming with it.

Killer Game programming is notoriously out of date.

However, the good news is that game development, whether it's Java, C#, BlitzMax, or Blitz3D pretty much follows the same pattern:

Start Loop
Determine state
Logic based on state
Update world statistics
Render world based on statistics
End Loop

Get a solid understanding of Java using Head First or Thinking...

Then look into the APIs/Engines out there for java:

JMonkey ( http://www.jmonkeyengine.com/ )

and

Slick ( http://slick.cokeandcode.com/ )

are about the best ones out there... though there are several others...

are about the best ones out there...

Having now read half of Bruce Eckel's "Thinking in Java , 3rd ed." I have to say it's excellent. I recommend it for everyone who feels comfortable with BlitzMax and wants to learn Java.

All in all, after you come to grips with the C-like syntax, programming in Java is not very different from programming with BlitzMax. Just another set of framework classes to learn to work with.

For now I'm not planning on game development using Java. I just had to learn it for a couple of college courses.