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

This question comes up a lot. My latest formulation is that programming has elements of a all sorts of disciplines: science (debugging is often about making and then testing hypotheses), engineering, mathematics, design, art, but can't entirely be encapsulated by any of these. I usually call it a craft: "an activity involving skill in making things by hand" but like everything, this definition only partially applies (eg, the "by hand" bit).

I also like the Hunt/Thomas formulation of programming as gardening: http://www.artima.com/intv/garden.html

That nicely captures the often improvisational nature of things.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact