90% of the functionality delivered now is better than 100% delivered never.
Do what you think is interesting, do something that you think is fun and worthwhile, because otherwise you won't do it well anyway.
The most effective debugging tool is still careful thought, coupled with judiciously placed print statements.
Believe the terrain, not the map
If you're as clever as you can be when you write it, how will you ever debug it?
Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.