What people don't understand that programming is very much an art. You iteratively work on it ripping parts out, rewriting and rewriting and rewriting, while also rewriting and then rewriting every time a new feature, bug fix or scaling changes are needed.