Since you're comfortable with php, you've already got a fairly decent grasp on basic data structures and algorithms. What makes java unique is that it's better suited to object oriented programming. You'd probably be better off looking for a course/book on data structures using java (see http://tinyurl.com/5pzyl) , an object oriented programming book (see http://tinyurl.com/63g49) and a design patterns book (see http://tinyurl.com/5qf4k). For learning the java language, the books already mentioned are all good as are the tutorials on the Sun website. Hth -chris http://www.semioticpixels.com