Ten years ago today, John Cook published his first blog post entitled Moore’s law and software bloat, a brief observation on how “Software bloat has increased at roughly the same rate as Moore’s law”.
Since then, he’s written over 2,700 posts (nearly 1 per day) on math, computing, software development, statistics, science, and more. His posts are rarely long, but they always give me something to think about. Over the last six years since I discovered his blog, John has encouraged me to
- engage with dead writers
- not look to diplomas for magic
- take care in inverting matrices
- cherish analytic functions
- be slow to say “they has too much time on their hands”
- second guess the need to always be in front of a screen to be a programmer
- use Bayesian methods to better order search results of customer-rated items
- consider the benefits of portable, open-source tools
- have humility when analyzing data
- be skeptical of “elementary” statistical books
- not feel dumb for being frustrated with statistics notation
- think carefully about how read code
- reevaluate what it would take for software to be bug free
- appreciate the massive importance of organization in software projects
- understand the real challenges of effectively applying mathematics
- wonder if time-spent-at-desk is a good proxy for getting work done
- better understand why software projects fail
- realize that it’s sometimes better not to produce more code
- realize automating might help me more by saving mental energy than by saving time
John earned his Ph.D. in applied math at UT Austin in 1992 with a dissertation on partial differential equations entitled Diffusion models with microstructure and secondary flux. In the years since, he has worked as a math professor at Vanderbilt, a software developer, a research statistician at M.D. Anderson Cancer Center, and, since 2013, an independent consultant in statistics, mathematics, and computing. His breadth of career experience reflect his breadth of interests that make his blog what it is.
Though John has (wisely) avoided labeling himself a data scientist1, his writings have shaped every aspect of my trajectory from being a operations research grad student to a practicing data scientist. John is an expert in Bayesian statistics, yet has taught me much humility about the power of statistics. John is a expert programmer, yet points me back to the importance of soft skills for the success of software projects. John loves applications of mathematics, yet reminds me to step back and see the intrinsic beauty of mathematics.
The most common tags on his posts are bayesian, creativity, differential equations, education, history, latex, math, networks, number theory, probability and statistics, productivity, programming, python, quotes, scipy, and special functions. He also brings a unique approach in his posts on music and has a neat collection of interviews he’s done with Fred Brooks, Michael Atiyah and others.
John’s blog is not his only educational outreach. He maintains 17 (!) Twitter accounts where he teaches about technical topics in
140 280 characters or less. I’m always learning little tidbits from @UnixToolTip and find my schooling refreshed by @AlgebraFact and @AnalysisFact.
One of John’s areas of expertise is implementing numerical algorithms in code. On his website, he has a handful of technical notes on this that many people have found invaluable. Two years ago, I did a quick survey of John’s articles mentioned in Github repos. Hundreds of repos cited his Accurately computing running variance article. No doubt countless more have used his resources without citing him!
If you don’t follow John’s blog, you should subscribe today.
Here’s to 10 more years, John!