I've been teaching myself java using youtube videos of Starnford Engineering Everywhere. So far its been good, till the code started getting complicated and i got stuck.
I need advice on how best to learn java.

Hi Kenyan,

Well i don,t know your level in programming.If you are beginner to oops programming languages.You should learn oops concept first.But if you know oops concept already then it would be easier to go with java language or any other oops based language.

oops concept are:- Abstraction,Encapsulation,Inheritance,Modularity,Polymorphism

After oops concept go with book (Head First Java) by Kathy Sierra & Bert Bates
or you go directly with this book.

java how to program is good too.

If either of you(ashok5, saqib_604) bothered to look at the link I provided you would found that these and many other resources are already recommended there

Thanks all. followed the peter budo link and it was helpful.