How do I learn quality java programming?
<blockquote>
  <p><strong>Possible Duplicate:</strong><br>
  <a href="http://stackoverflow.com/questions/78293/good-book-to-learn-to-program-well-in-java-engineering-or-architecture-wise-not">Good book to learn to program well in Java (engineering or architecture-wise, not syntax)</a>  </p>
</blockquote>



<p>I am undertaking a java project and the purpose behind it is to  learn and practice java programming as I am new to it. I understand that albeit there is no set way of writing programs and every programmer has there own style. But you can get into bad programming habits such as bad styling, using inappropriate syntax for e.g not turning enough design problems into classes or maybe creating too many classes ,reinventing the wheel,  Not using the right design patterns or maybe even the correct algorithms. So my question is how do I become a good java programmer rather then just someone who can write code?</p>
