I just found this incredible article via digg and had lots of fun reading it. I really recommend for you to read it and get some good concepts in your toolbelt.

The top 10 concepts are:

  1. Interfaces
  2. Conventions and Templates
  3. Layering
  4. Algorithmic Complexity
  5. Hashing
  6. Caching
  7. Concurrency
  8. Cloud Computing
  9. Security
  10. Relational Databases