ну для маленьких проектов особо изощряться не стоит в программировании... они того не стоят. А вот для больших - другое дело. Надо предвидить все возможные пути изменения ТЗ (а тз менять заказчики ох как любят ), и каконибудь маленький, но важный момент может заставить переработать весь движок. Так что надо уметь планировать довольно гибкий и модульный код (можно и не уметь конечно, но так сайт будет раз в 10 больше места занимать и писаться - а оно нам надо?).
Вобщем, друг, читай книжки, форумы (ссылку указывать не буду, а то еще накажут - если хочеш знать что за форум, милостипросим в приват), разбирай чужие хорошие работы и сам пытайся для начала их воспроизвести.