I second the java tutorial. While I learned the basics in college, I later took a class in java network programming, ordered the book they suggested (core java vol.2) but the book took so long getting to me, the class was already over, and I had aced the exam (and lab work that made up most of the final grade). In the absence of a book, I turned to the first reference my teacher gave, and that was the java tutorial at sun.