in reply to Musings of a Monk

Agreed... I don't have experience with large projects like you do (or with coding in general), but I've had quite a few personal projects with grand plans that I gave up on because I ran into dead end and realized my design really sucked, or encountered a problem I simply couldn't design a solution to. Lately it's gotten a bit better, possibly because of increased age, but maybe because I realized something:

  1. If you run into problem that you can't solve right off because you have no clue where to start and how to build it, redesign, it might be because you don't really know what you're doing. Stop, have a break, come back, write down (in comments is cool) what you're exactly doing, what is the problem, and everything like you were describing it to someone else. Then read it.
  2. Even better, explain the problem to another proficient coder.

I realize that sounds obvious but I didn't actually think of that in the first 5 years of my coding, so it's possible someone else didn't either... especially if this someone else is as unsocial as myself. Like it or not, coding is sometimes social practise.