Hackers and Painters
Zack Scholl — March 21, 2019
Some thoughts after reading "Hackers and Painters".
I consider myself a hacker, in the past year I wrote a bunch of programs/libraries, which range from the useful (i.e. find3 for indoor positioning) to the useless (i.e. a program to determine if random squiggles generate random numbers).
I also consider myself a painter - in the past year I’ve also painted dozens of paintings - large and small. One of my most proud paintings is that of a cow that I did on a huge canvas - 30” by 40” - with acrylic paint. It hangs in my bathroom hallway and I enjoy looking at it as I walk through every day.
In learning to code and learning to paint I’ve noticed some similarities that resonated with me while reading this book.
Open-source is amazing because it lets you learn how to program. You can read comments in people’s code that dictates exactly how and why they were doing a particular thing. You can also read the log statements in their version control system to see how the program started and progressed. I’ve tried to do something similar with paintings. Of course I can’t put comments in my painting (although I use a style that makes my brush strokes very visible), but I make my painting process “open-source” by taking periodic pictures and explaining the reasoning behind each step. For example, you can read about my process for painting the red heifer.
I’ve learned three interesting things from being a hacker and a painter.
Other ideas from PG:
- both utilize past references (museum for painters, open-source for programmers)
- both require learning by doing
- both allow building on what you learned previously
- development occurs through gradual refinement
- both programs and paintings are meant for a human audience and require seeing something from another’s point of view
“Most makers make things for a human audience” - disagree
Very little to touch on open-source
Differences (my own ideas):
- in painting the proof is in the eating of the pudding (wheras programming, people will critizize the executation as “non-idiomatic”)
- in painting, a lot of mistakes breed wonderful attributes. In programming, mistakes breed worse mistakes