Hacker News new | past | comments | ask | show | jobs | submit login

I start by building the smallest possible subset of the answer as fast as possible. I think Paul Buchheit said he liked to do this too.

This was my approach also, until I find that growing a project "organically" ends up being very disorganized and missing "the bigger picture," compared to the open code I read. I sometimes also find a mistaken assumption at the start led me in a wrong direction from the start.

I'm just trying to refine my coding without losing the instant satisfaction of hacking something together at the start and seeing it work.

The way to avoid disorganization is to refactor your code constantly. As soon as you complete a feature, refactor. Most high-quality "open code" you've read has probably been rewritten 4+ times as the developer became more familiar with the problem domain.

Yes. Till I read your comment I wasn't sure what to say to the guy. I couldn't imagine how this couldn't work for him, because I'd forgotten it was possible to program without constantly rewriting your code.

In fact, the word "refactoring" feels a bit strange, because I was doing it for so long before there was a word for it. It's one of those terms (DSL, agile, etc) invented by mainstream programmers as they gradually reinvented Lisp hacking.

I noticed that you used the word "agile" in On Lisp, which can hardly have been a word to be expected in a book about hacking. By the time I read it, though, the agile software movement existed, so it leapt out at me.

"Refactoring" is a particularly strange word. It's as if people were talking about "exhaling" as a distinct and even controversial practice. How can anyone breathe without exhaling? Yet articles and books would be written about it: "Should Breathers Exhale?" "When Is An Appropriate Time To Exhale?" "Exhaling: For And Against". People would ask their managers for approval to exhale and the managers would say no we can't afford it, and eventually they'd either just do it anyway on the sly or else turn blue and keel over.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact