Believe what you want, it doesn’t mean you’re right
I saw a tweet (or was it a blog post, or was it an article) recently which used the categories of “tinkerer” and “mathematician” to divide up programmers. My recollection of its conclusion was that each type of programmer was secretly envious of the other. To me it seems that many people fall into the easy trap of using the extremes of a spectrum as categories, and then using those categories as a slapdash way of excluding or demonising others.
In the programming world I’ve seen a minority of people use this kind of thinking destructively. I’ve seen the agile manifesto which values “working software over comprehensive documentation” often interpreted as there’s no need for any documentation; I’ve seen dogmatic adherence to pure languages (Haskell) or “pure” cultures (Python) used to damage or destroy working teams and products; I’ve seen mathematicians or tinkerers drive members of the other camp out of projects. I find it unfortunate that my experiences with this type of misguided zealotry seem leave deeper and more lasting impressions on me than the time I spend with more pragmatic people.
I think I’m closer to the tinkerer end of the programmer spectrum than the mathematician end. I like to think that I can appreciate and use the ideas from all along the spectrum in the appropriate context, and that I’m willing to learn and understand.
I have come to understand that my experience of life is better when I’m around practically oriented people who can make good arguments for their preferences rather than zealots in pursuit of purity. I think that I have learned that you can’t reason people out of some positions, so in 2017 I’m going to value spending time and energy with practical people over spending time and energy with “purists” (and not just in the software development sphere.)