Daniel Lemire's blog

, 3 min read

Staying sharp requires “intellectual gardening”

Gardening requires consistency. A beautiful garden is unstable. Some plants want to expand their reach and kill out the competition. Some plants are simply out of their element and need a little bit of help. Generally, there is too much competition for water, sunshine and minerals. So the gardener must, from time to time, intervene to move plants around, dig some out, or plant new ones. Sometimes extra watering is needed.

For years, I try to make my garden as self-sufficient as possible. A strategy that I have pursued is to try many things and let them fail. For example, when I plant something, I do not try to keep it alive with artificial watering or nutrients. This has served me well as I have found some very robust perennials that are ideally suited to my garden (like hardy geraniums).

Nevertheless, if I neglect a piece of my garden for too long, it goes out of balance. For example, some plants start dying out, leaving nothing interesting in their place.

My garden is also limited. Over the years, I have slightly grown my garden but its rate of growth has diminished for fear that I would be overburdened with maintenance.

I view my mind in a similar manner. There are a few things that I am good at. For example, I am a decent programmer using a few mainstream languages. I can do probabilistic modelling and some algorithm design. However, my skills get rusty if I stop using them. To stay sharp, I have found that I need to constantly “train”. Hence, by design, I try to use a little bit of Java and C++ every few months even though my job does not require it. Similarly, I try to keep on proving mathematical results when I get a chance.

But because time is limited, I cannot stay sharp with everything. For example, I am a database researcher and I teach database courses. I know the SQL syntax. However, anyone using SQL for a living can easily outgun me in SQL. Once a year, I have to look up how to do an intersection in MySQL for example.

And even with the skills that I regularly need, I limit the scope of my knowledge. For example, I was unaware until a few days ago of Java’s Double Brace Initialization idiom. Far from being embarrassed by my shortcoming, I view it as necessary. If I chose to know everything there is to know about Java, I’d have to restrict my scope more than I like. (Consider that Java is much more complex than Chess and, yet, people devote their lives to studying Chess.)

Following my gardening analogy, I have pursued two strategies to stay sharp:

  • Be deliberate about what I know. Within even the smallest subdomain, there is more to know than my brain can swallow. In some sense, I am defined by what I know and that’s something I like to have control over.
  • I purposefully “train”. For example, I will find excuses to apply certain skills at regular intervals.

Does it work? Not as well as I’d like. I feel tremendous tension between what I should know and how well I should know it. Still, I find that gardening analogy useful. Whenever I feel like I have covered too much ground, I think back about my garden. It is not the ground you cover that that defines a beautiful garden.