"I love shitty code that just gets the job done. This job probably isn't for me"
tomblah.posterous.com
tomblah.posterous.com
It's incredibly naive to say that crappy code that gets the job done is generally good. Ok, sure. Sometimes you just have to roll up your sleeves and write an ugly hack to get the job done. But if you keep it up, you spend more time maintaining the ugly hacks than you do coding new stuff.
So here's my advice:
1. Stop. Breathe.
2. Think about what you're doing before you do it.
3. Do it.
This has worked wonders for me. It's incredible how easy it is to not write crappy code, and it pays off. And for the record, I'm one of the biggest instant gratification junkies I know. I'm not saying one needs to write good code because I don't want to get things done.
This may be semantics at some level, but I think it's important to not imply you just don't care about the quality of your code. Prototyping intentionally sacrifices some quality to prove a point quickly, but once the point is proven, you throw it away and rewrite with your normal, high standards.