Skip to content

Comment on Deliberate Practiceparent

Comments

I disagree as I think the real difference is mainly in the design process. If there are too many bugs or things start to get complex an expert hacker will ask himself what I can do to improve the design? To make it simpler, more modular? If I've this problems probably I've a design error.

Actually most of the times like an expert chess player an expert programmer just using "pattern matching" and his experience can tell what the right design (right = simple, modular, scalable, ...) is among all the different possible solutions. That's the difference not testing or ways to avoid pitfalls.

I don't think we're really disagreeing, as usually the answer to "How do I make sure this never happens again?" is some sort of design change. My point is that this is done iteratively, in response to actual problems, instead of hypothetically in response to imagined problems.

I should probably also make clear that experts don't throw away everything they've learned with each new project and start anew. They do throw away some things, and part of being an expert is knowing what to throw away and what to keep. It's sort of an unfortunate fact of software engineering that each problem is different: otherwise, you'd just use pre-existing software. But there're some skills (like the C++ tricks I picked up from my Stratus friend) that you can take with you as long as you maintain the same technology platform, and others (like unit testing and clear component interfaces) that apply to all platforms.

> in response to actual problems, instead of hypothetically in response to imagined problems.

This is really one of the differences indeed and you stated it very well, and you are right, stated this way we are saying a very similar thing. Also I think this other sentence from your comment is very interesting:

> part of being an expert is knowing what to throw away and what to keep.

So now the picture I get is that the real difference is selectiveness: about what design to pick among the possible, what problem is worth to fix, what experience is worth to remember.

Thanks for the interesting comment.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.