title: Refactoring Code: When to do what?
body: <p>Ever since I started using .NET, I've just been creating Helper classes or Partial classes to keep code located and contained in their own little containers, etc. </p>
  
  <p>What I'm looking to know is the best practices for making ones code as clean and polished as it possibly could be.</p>
  
  <p>Obviously clean code is subjective, but I'm talking about when to use things (not how to use them) such as polymorphism, inheritance, interfaces, classes and how to design classes more appropriately (to make them more useful, not just say 'DatabaseHelper', as some considered this bad practice in the <a href="https://stackoverflow.com/questions/114342/what-are-code-smells-what-is-the-best-way-to-correct-them">code smells wiki</a>).</p>
  
  <p>Are there any resources out there that could possibly help with this kind of decision making? </p>
  
  <p>Bare in mind that I haven't even started a CS or software engineering course, and that a teaching resource is fairly limited in real-life.</p>