What java principles did you know before you were given your first junior job opportunity? Tell us about the level of experience you had going into that first job and what you did to get there (Textbooks, Online Resources etc).. And is there anything you wish you learned before you sent out that first resume? For anyone who feels like sharing I'd love to read about it.
I had college + two internships. One of the internships used Java, college used in a couple courses, but I didn't take intro to java or data structures/algorithms. (because I had AP credit from Pascal/C++).
There was no such thing as Java when I first hired on. I was actually in the middle of implementing a bytecode-based ANSI C interpreter when Java was first announced. I dropped my VM project and started using Java right away.
I already had some 10 years of programming and development experience with other languages when I first programmed Java professionally so I probably had a leg up on some general programming practices and principles. However, I find myself recommending a few things these days that I wish were available to me back in my earlier days of Java so I wouldn't have had to spend as many years as i did struggling with common problems:
1. Test-Driven Development. There are many books on the subject but one that I really like is "Growing Object-Oriented Software, Guided by Tests"
2. Robert C. Martin's book, "Agile Software Development: Principles, Patterns, Practices"
3. Robert C. Martin's book, "Clean Code"
4. Joshua Bloch's book, "Effective Java Programming"
From these four, you'll find references to other great books and articles and so on. It's an ever-growing chain of references so take your time and try to focus one thing at a time, learn it and learn it well. But don't dwell on one thing for too long because you will find that you'll always come back to it with a better perspective after learning about other things.
Edit: "Refactoring: Improving the Design of Existing Code". I don't know if I've ever been more excited after reading the first chapter of a book than I was when I read Martin Fowler's book on the subject back in 2000. This was actually a couple of years before I started programming in Java (at the time I wrote Object Pascal / Delphi programs) so I guess this doesn't count towards answering the question. However, it's still recommended reading for all levels of developers.
And is there anything you wish you learned before you sent out that first resume?
I don't think there is anything you can read to prepare for the first job. There is so much you can learn on the job that cannot be replaced with learning that is acquired through a book.
Strongly disagree. When I changed my career from being a mechanical engineer to Java development, I prepared a lot on core concepts and got the entry level job. I believe learning the fundamentals continuously along with applying them on the job is the way to go. When there are so many quality Java blogs out there it really pays to get a bigger picture.