Possible Duplicate:
Is there a canonical book for learning Java as an experienced developer?

I've been coding for close to 25 years now in basic, (C64 & Amiga), (Object) pascal, C, LPC and for the last few years, Python. Python is definitely my favourite (and strongest) language. However, lately I've been forced to do stuff in Java - I have never written a single line of java code so far.

So I'm asking your advice - what is the fastest and most efficient crash course to learn java.

EDIT: I'm really looking for something along the lines teaching java to people who know how to code and what OOP is - not something that has with no previous programming experience in the synopsis.

marked as duplicate by Matthieu, user8 Jan 20 '12 at 0:00

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • Do you understand object oriented analysis and design? Sounds like you might not with the background you have. If not, you should definitely learn that first. – Bjarke Freund-Hansen Sep 8 '11 at 12:14
  • 2
    Yes, I'm familiar with OO -stuff – Kimvais Sep 8 '11 at 12:29
  • Just curious, what version of Java are you developing with? Java 7 introduces some new language features that won't be covered in early resources. – Thomas Owens Sep 8 '11 at 12:36
  • I see no reason why I would learn an old version for starters. :) – Kimvais Sep 8 '11 at 12:45
  • It depends on what version your target environment is running. Not all users have upgraded their runtime environment to Java 7. Anything developed for Java 6 (or previous) will run on Java 7, but since our customers aren't running Java 7 yet, we can't build for it. I also haven't upgraded my home computers to Java 7 yet. – Thomas Owens Sep 8 '11 at 12:57

For a much cheaper and far more up-to-date alternative to the books mentioned, I recommend starting with Oracle's Java Tutorials. Since you have a programming background already, some of it is going to be easy that you can read and power through. When you get to a topic you aren't comfortable with, spend the time to read it, understand the sample code, and work through it. It might be a good idea to have the API documentation handy as well.

Just a note - the links I provided are for Java 7. Searching can find the documentation and tutorials for Java 6 as well. I know the API documentation is available, and the tutorials should be as well.

If you're going to be developing enterprise applications, you might also be interested in the Java EE Tutorial as well.


I would recommend the book Thinking in Java. IMHO opinion it's one of the best books about object-oriented programming and Java. You can even download the previous edition of the book for free to make your own conclusions.


I know c# and recently learned Java. I got a couple of good Java books and just started doing the project. If you know the concept of programming then language specifics are easy to pick up as you go.

The best way of picking it up is on the fly while doing something.


You already know how to code? Great! Pick something, that is relatively generic, that you've written in Python (or any of your existing languages) and write it in Java. You'll start off not knowing anything, but by the end of it, you would've learnt a huge amount.


Jump right into it with a good IDE (for syntaxctic support) and always have the standard API docs open. Then work through the tutorial that comes with the Oracle JDK distribution.

  • Is there a good IDE that builds upon vim? I've bene suggested (read forced) to use NetBeans. – Kimvais Sep 8 '11 at 12:34
  • 3
    Honestly, I had eclipse or netbeans in my mind. There's a big difference between an editor no matter how good it is and an IDE. – Ingo Sep 8 '11 at 13:02

I started with Core Java.

This book is to the point, it has most of the basics covered, and you can read the second volume if you want to know more about Java.


You could use BlueJ to learn both Java and Object Oriented (OO) programming at the same time. The BlueJ environment provides class diagramming and object inspectors which would help you understand OO in an easier fashion.

I'm pretty sure that you might have an easy time learning Java with Head First Java as well, since they try to go over the class-based OO. It is quite verbose, so if you like reading a lot of pages that explain with figures and text then that book is for you.


I would recommend Sams Teach Yourself Java in 24 Hours, that's what I learned on. then just give yourself a programming project with it. one of the great things about the book is that after every chapter, it has you build something, gives you the code, and explain each line.

  • @MarkBooth - That comment is entirely subjective. The book worked well for me. I haven't read the other sams 24 books so I don't know whether they are good or not, but each book is not the same author, so you cannot group them together like that. Until you have actually read the book yourself, there is no way for you to say that it is inherently a bad choice. – Ephraim Apr 20 '12 at 15:29

Write an Android app. You might end up producing something genuinely useful along the way.

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