1. Encapsulation<p>Learning to encapsulate code is very easy. It basically comes down to templating your code. Everywhere you might put a comment like:<p>// Do database authentication<p>That should instead be a function:<p>var db = do_database_authentication();<p>Learning to write functions into your code before you write the actual function is an important skill and will make you a better programmer.<p>2. Simplicity<p>Simplicity is relatively easy as a concept. Don't ever nest logic more than 3 levels deep (and try and keep it to 2 or less), don't ever pass more than ~6 parameters to a function (unless the limitations of your language dictate as such), and don't ever have a method more than ~50 lines or a single file more than ~500.<p>3. Readability<p>I think if you follow the rules of simplicity, readability comes down to indentation, code organization, and naming conventions. Follow what your language idioms are, not what you prefer (in most cases).<p>4. Abstracting a problem<p>This is probably the biggest and hardest beast to tackle, but it's also probably the least important when you're starting out. If you focus on this now, you'll never ship anything. The biggest thing to know is that if you've got a class with more than ~10 public-facing methods, or an object that has a constructor with ~10 parameters, you probably have something in place that could be refactored into a more abstract solution.<p>5. Speed / Quantity<p>Writing code quickly is important. If you follow what I've said above and you're relatively competent, you'll produce good code quickly.<p>6. Code efficiency<p>Never worry about this until it's an issue. When it is, use a profiler or debugger to isolate issues, and fix them one at a time. Optimization needs to be surgical.