Books
- Data Structures and Algorithms with Object-Oriented Design Patterns in Java by Preiss (online)
- Algorithms by Sedgewick
- Introduction to Algorithms by Cormen, Leiserson, Rivest, Stein
- The Art of Computer Programming by Knuth (the book)
Some Useful Resources
- A Java coding conventions by Google