Hacker News new | ask | show | jobs
by ChuckMcM 5029 days ago
Hah. Yes, you have reached the edge of grey-land where the number of black and white statements become fewer and fewer. :-)

Yes this is entirely a function of your experience, so now that you know what can be done your ability to choose is compromised. Its funny because this happens with anything where there is a surplus of the currency [1]. The short answer is that the next step on the journey is to prune meta-requirements. You have this endless tree stretching before you and you start writing the code where you put blocks in the group and you note how it would have to change if it would need something more complex and then you stub that off with a comment like:

   # this only handles one level of grouping to group further
   # will require a subclass for groups which identify the type
   # and a method for invoking that groups display policies.
Then move on. People will be amazed when they come to you and say "Uh, we kind of want to group by color..." and you say "Ok" and then blam that change is in. Basically you build your potential into the structure of the code so that if any of these possibilities are realized you can do them quickly.
2 comments

Chuck, you reference a footnote in your post but I don't see it.
Sorry too late to edit, there is a common problem which is of the form 'too much currency'. If you consider problem solutions as a choice which are constrained by the currency available to purchase and you increase the currency you increase the choices and then you lose faith in the choice you make. Ok, that sounds too circular, lets try an example.

Lets say you're a techy and you want to buy a motherboard for you new desktop. If you're poor, you invest a lot time researching motherboards and then go out and buy the best motherboard you can afford. Often you have to make compromises but that is ok, you only have so much money. Now you take that same scenario where you have up to $500 to spend (I picked that to be 'more money than any motherboard you might put in a desktop costs' number. Now you go to the local computer shop and you can buy any motherboard and you're frozen. How do you choose? Often this is a much harder place to be.

The problem manifests itself as too many choices. So once you have too much money you can't efficiently choose (no forcing function to give up) and once you have too much experience programming its harder to choose a path which has known deficiencies, hence the OP's issue. Also called analysis paralysis, but the enabling factor is that you have enough currency for too many choices.

Or... date someone who can design her own website? ;)