Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm a software developer that just switched teams so I shall write code in Java now. Last time I wrote something in the language was in programming 101 at uni (I was already an amateur coder back then).

So what is the best book/tutorial to get up to speed with Java? Where's the Java - the good parts? Learn you some Java for great good? Learn Java the hard way?

Or is it too enterprisey for that kind of passion...?

share|improve this question

closed as off-topic by Yannis Rizos Oct 16 '14 at 10:50

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions asking us to recommend a tool, library or favorite off-site resource are off-topic for Programmers as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it." – Yannis Rizos
If this question can be reworded to fit the rules in the help center, please edit the question.

There is exactly a books with this name oreilly.com/catalog/9780596803742 –  Chiron Jul 3 '11 at 12:06
“Learn you some Java for great good” — I’ve never liked the look of Java, but I’d buy a book with that title. –  Paul D. Waite Jul 3 '11 at 17:15
@Kosta keep in mind that Java 7 is coming out at the end of the month, with a number of new language features too...just something to be aware of. Some of the new features borrow from C#, like the try-with-resource statements. You can check out what else is new at download.oracle.com/javase/7/docs/technotes/guides/language/…. –  Cupcake Jul 3 '11 at 18:08

4 Answers 4

up vote 5 down vote accepted

There's always Effective Java.

P.S. - There's actually a Java - The Good Parts, but that's not what you want now. It's more like a collection of essays.

share|improve this answer

There is a ton of advice out there about what makes good Java - you're right that it's not a language that a lot of people do for fun, but developers still care about doing things right.

The answer to your question depends on what sort of level you're coming in at. The Sierra-Bates SCJP book is quite a thorough introduction to the syntaxy issues.

You can decide if you want to do the exam or not, but regardless the book is a decent reference.

For more OO-stuff, Head First Design Patterns is good.

The must-read for idiomatic Java is Josh Bloch's Effective Java 2nd ed. Not an introductory book, but really good advice throughout.

share|improve this answer
These resources are good, but perhaps a bit advanced for a beginner. –  user1249 Jul 3 '11 at 12:02
Seems like he's done some coding in other languages, but point taken. –  Fritz Meissner Jul 3 '11 at 12:05
Yes, I'm looking for the advanced stuff to get me up to speed. Very nice suggestions so far! Thanks a lot everybody :) –  Kosta Jul 3 '11 at 12:11

Note, Java is not a big language, but it has an enormous runtime and eco-system. Start with learning the core language and the core runtime libraries.

A good online resource is the Java Tutorial.

If you want a book, then Head First Java is nice.

share|improve this answer
Much as I usually like Head First Java, for somebody who already knows how to program it’s an utter waste of time. In fact, even for beginners one of the core criticisms of Head First Java is that it takes a lot of time to work through it, where other books cover the same topics much faster. –  Konrad Rudolph Jul 3 '11 at 13:44
For a C# programmer I see your objection. For less Java-ish languages you still need the introduction to the concepts. –  user1249 Jul 3 '11 at 14:42

While books will teach you the basics, if you want to practice there are some sites with problems you could always try to get up to speed.

CodingBat (online Java, easy problems) and Project Euler (difficult problems) have some programming problems for you to solve.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.