The first rule of coding for Drupal : This is one of the things I’ve learned about Drupal over the last year, and the which I’ve struggled with more than any other. My first inclination is always to write code. But you’d be amazed how far you can get with Drupal without writing any code.
The consistent mistake that developers make is to plunge in with the intent of writing code. We do not write code. That’s a rule you should make with the expectation of breaking it, but with the intent of keeping it as much as you can.
If you’re a developer with any fluency in PHP/MySQL/HTML/CSS, this is a hard rule to face. If you’re new to Drupal and don’t understand the vast landscape of contributed modules and themes (design packages), it’s especially hard. You know your tools. You know how to get things done. So you reach for the comfortable and the familiar. Who minds if you’re reinventing the wheel? It seems faster to just do it your way.
With Drupal, writing code should be a very rare thing, to solve really bizarre problems. Most of the common problems have already been sold and are configurable.