I'm curious on what is the best approach to learning Java. I want to get to the point where I pretty much understand anything that is shown to me. At least the stuff that most people use. I would like to be able to be presented with a task and as long as it's within Java's limitations I could figure out how to do it.
I've jumped around a lot on ways to learn how to learn Java. I've watched a bit of video tutorial series on Youtube. I've downloaded a program called Academic Java. The most recent thing I've done is buy the book Java Head First 2nd Edition. I'm not expecting this to happen in 20 days or something like that.
I'm in High School so I can't go to college, I've seen the videos on Youtube called "CS106A". Those are somewhat hard to work with. I can't really get hands-on with the stuff that goes on there. The Java tutorials on Sun.com (can't remember what it is called) are really boring to follow. The book I'm reading right now is working well, I'm just afraid that it will leave out stuff. I want to get into game development.
So I'm curious on how you learned Java? If it is a book, name the book and tell me if it worked well for you.
The only way to learn Java (or any other language for that matter) is to practise, practise, practise (did I mention practise?) . Although the Sun/Oracle tutorials are a bit boring to read from time to time they are good. Books are another great source of information and are usually more fun to read. Although I haven't read Head First Java I hear great things about it.
Try, experiment, read, ask, and have fun. That is a great way to learn Java.
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." --- Martin Fowler
Please correct my English.
Wouter Oet wrote:The only way to learn Java (or any other language for that matter) is to practise, practise, practise (did I mention practise?) . ...
And don't forget to practice. ;)
Joined: Sep 25, 2010
I suppose that is a big problem that I have. Although Java Head First is a good book because it provides exercises. Other then that, I don't know how to practice lol. I wish that I could be presented with projects based of my Java knowledge so far (basically a college course). I guess a better way of putting it is: I don't know what to practice.
That's the point. You should set a problem for yourself you *don't* know how to tackle, and then find out how to do it. That's how you learn. Practicing the same old tired stuff will make you fluent, but not learned.
I highly recommend finishing at least the basic Oracle tutorials. They are very good, even if you find them a bit boring. Studying a language isn't always exciting.
I challenge you to make a text based Tic-Tac-Toe game. It should be a good first project to get a lot of the essentials down.
The game should print the game board to the console every turn, and it should accept keyboard input.
Once you've done that, you can think about making a graphical interface and making network games.
If you want to do something else, that's fine, but just start doing something.
The mind is a strange and wonderful thing. I'm not sure that it will ever be able to figure itself out, everything else, maybe. From the atom to the universe, everything, except itself.
Joined: Sep 25, 2010
Thanks, You're right though about the oracle tutorials. I think I'll start studying them. One question though. Do they provide exercises at all? Or do they just provide a large amount of clear examples? Either way is fine. Appreciate the help.
Ben Jass wrote:Thanks for the advice, out of curiosity how long did it take you to become good/professional/efficient, however you consider yourself to be? I do understand that we all move at own pace though.
Would it really be worth it getting these books though? Would money be wasted because 3/4 of the chapters are about things I already know? Or are they advanced add-ons to beginner java books?
I consider myself a good Java programmer, but not professional, since I only work on hobby projects. I have a good understanding of the Java basics, as well as a decent understanding of concurrent programming, I/O, AWT and Swing, and some 2D and 3D (with OpenGL) graphics. I have used Java for 4 years now. There is still plenty and plenty of stuff to learn, and I am considering doing the certification exams.
Like Christophe said, Effective Java is worth every penny. This book has done more for my programming style than any guide I could find online. I think it's a must for every serious Java programmer.
Just Java 2 is a student course book. I think it's an excellent one at that, and explains a lot of the lesser well known peculiarities of the language. If you've learned the basics of Java, it may contain a lot of stuff you already know, but I still sometimes grab it for reference.
Java Puzzlers is a very entertaining read. It's not essential, but it's *highly* informative. A great companion to Effective Java.