What is programming?
I enjoyed this philosophy of programming from one of Greg Wilson’s slides for Software Carpentry.
What is programming
- Novice: writing instructions for the computer
- Expert: creating and combining abstractions
- Figure out what the pattern is
- Write it down as clearly as possible
- Build more patterns on top of it
Having been working with scientists, but non-computer scientists over the last several years, this is a very, very apt description of the differences in programming style that I have been experiencing at my jobs. I doubt that there's much way around it, but it's good to be aware of to help me work better with my co-workers. Generally this means that I let them write the instructions and then I'll do the abstract re-factoring, which seems to work fairly well, as long as we do complete testing in between revisions.
blog comments powered by Disqus