I a software engineering student who took a Java course last semseter.But currenlty I'm self-studying Java for expanding my Java knowledge.The problem is that Java is a very vast programming language and I'm confused where to head next. I would say I'm on the intermediate level with regards to Java; I know the basics and some advanced features like mulithreading and GUI app design. Recenlty, after surfing the web, I found that knowing XML to be a necessary aspect of a Java developer, however I also want to study Networking, JDBC and other advanced Java. So folks, what book or advice would you recommend for me? Thanks in advance.

ehm ... not to sound negative, but those "advanced features", multithreading, gui (swing), ... are not advanced, they are basic.
so is jdbc, by the way.

without knowing what your level is, it's pretty hard to give advice, but the sticky threads on top of this Java forum are worth a look at.

Ok, sorry for the misuse of the term "advanced", but as I said I'm on an intermediate level of Java.

ehm .. no, you are not.
if you have never used xml or jdbc in a project, calling yourself intermediate is like calling a Smart a BMW.

if you go for a job interview and say you are intermediate, they'll expect a lot more knowledge.

I really like your honesty. This means I have lot of studying and work to do. So, is there any reference material you would recommend for me to look at? And thanks for your reply.

Hi Xabush. Welcome to Daniweb.
I'm not going to join in any sematic debate about "intermediate", but I will refer you to the top sticky in this forum, which is a compendium of useful resources for learners. Doing actual projects is the best way to learn, so the second sticky may be helpful too.
Once you have the basics, "where next?" depends on where your interests lie and how you see yourself using Java in the future - custom desktop user interfaces, scientific computing, major corporate IT systems etc etc? If you start a discussion along those lines people will be able to comment with greater relevance.

I agree with JamesCherrill, the best way to further your knowledge is to think of a project. Then, go and create it. First try will be shit (pardon my french), but as you continue to develop applications, you pick up the different techniques required.

One thing I would say is try not to get bogged down in various technologies such as XML, it's a very basic technology. In terms of complexity, Java is far more complex than XML and things like C++ are more complex than Java.

If you do want to know about XML, use w3Schools, it's a great free resource. Also for learning how to incorporate it to Java, have a look at the Java Documentation.

Also on a side note, don't listen to stultuske, his attitude is unproductive. People lime JamesCherrill are far better as their goal is to guide you through to process of learning, rather than making themselves feel big.

Hope this advice helps, if you need anything don't hesitate to contact me.

ObSys: unproductive, yet realistic.
I was merely pointing out that 'basic Java' covers a whole lot more than just the primitive types, objects, collections.

I also pointed to the sticky threads especially created for people who are starting/looking for beginner projects. I assume that's what you referred to as 'unproductive'?

hmm, a Smart is a Mercedes, technically (they own the brand...), not a BMW.
Now a Mini, that is a BMW :)

OP, there are a ton of introductory tutorials available on Java, I strongly suggest you work your way through at least the one's on Oracle's own site at the OTN before you even attempt to get a job as a junior. As a senior I'd expect you to have at least 5 years and hopefully closer to 10 years of practical experience.

Thank you all for your advices.Actually I'm currenlty working on a project and I felt that things were out of my reach in the middle of it and just lost hope and started this thread. But your posts brought back my hope(especially ObSys). Now I'm back on the track.And if I ever get stuck again I know I can depend on you guys to help me out.

If you're still having trouble, I recommend getting the book Java Programming by Y. Daniel Lang. I used this book for my Programming Fundamentals class, and it was extremely helpful

This article has been dead for over six months. Start a new discussion instead.