Overkill is a good thing

2011-10-03 by . 3 comments

Post to Twitter

Recently, a question was asked about how to get enumeration with non-sequential, random-ish numbers. (I say random-ish because the point of the question was not to generate random numbers, but to take a given list of random looking numbers and enumerate with them. The obvious answer is just to use the optional argument of \item to do it manually. Tobi’s answer suggests exactly this. This is, I think, The Right Answer in this case.

So why did I suggest my own answer which, by my own admission, was an insane way of achieving the same thing? Given that the right answer had been given, why did I offer a much more complicated solution to the problem? Isn’t this a waste of everybody’s time?

No! The reason that my answer wasn’t a waste of time relates to something that you occasionally see mentioned on the StackOverflow blog. To quote from that linked post:

[W]e shouldn’t care about the questioner – the goal is to create a useful piece of information that makes the internet better. We’re here to serve the 15 million people who get answers from the site without ever typing a word.

What’s overkill for the question as it is asked might not be overkill for someone later stumbling across the question while browsing questions about enumeration on TeX.sx. For example, imagine that our hypothetical TeXer Alice is wondering “How could I make my own list type, with an arbitrary set of symbols?” In this case, while Tobi’s answer works, the automated and general solution that seemed so over the top for the original case, now becomes a good solution to that problem.

So I would encourage you to offer really over the top super general solutions to questions with obvious simple answers. This encouragement is qualified however: if the simple answer hasn’t yet been given, give that first!

When I am writing LaTeX, I often indulge in over the top solutions to my simple problems. Why? Because as a PhD student, procrastination is an important part of staying sane. But also because it gives me a chance to learn more about TeX and this may save me time in the future, when I come back to something and I need the generality of what originally seemed an over the top solution.

I will leave you with a comment exchange between me and Herbert that illustrates this side of my liking for over the top solutions. I wanted to draw a brace across several lines of text. I commented on one of Herbert’s answers that I would prefer a TikZ answer to his PStricks answer. Why would I do that? Because I wanted to learn about TikZ. Of course, TikZ was overkill for this simple problem, but I’ve since used TikZ for much more complex drawings, and without those “overkill” baby steps, I wouldn’t have known how to do that. Herbert put it nicely: “I see, you like to shoot with canon balls on sparrows … ” I responded “as a way of learning how to use canons, it’s good practice.”

Filed under LaTeX

3 Comments

Subscribe to comments with RSS.

  • [...] also marks my third blog post of the day. The others being here and here. I must have a deadline or something. (In my defense, the other two were already substantially [...]

  • liantze says:

    “Because as a PhD student, procrastination is an important part of staying sane.” This is probably the 2nd Corrollary about Grad School, if I may claim the 1st to be the tagline on my website, “Because all research students are insane at one time or another”.

  • I disagree with the quote as stated, but I agree with your (unstated) reinterpretation of it. We should care about the questioner! That should be our primary goal: to answer the question that the questioner actually asks. Our secondary goal is then to “make the internet a better place”.

    You actually say this since you say: “This encouragement is qualified however: if the simple answer hasn’t yet been given, give that first!”

    I often give hacky solutions, but I tend to wait a bit first to see if there’s a nice simple package that solves it (unless it’s obvious that the questioner needs it now because their PhD deadline is in two hours’ time!). The hack might help “future readers”, but it also might discourage the current questioner from asking more questions.

    Jeff says: Don’t optimise for sand, optimise for pearls.

    I prefer: Don’t optimise for pearls, optimise for pearl-producing sand.

  • Leave a comment

    Log in
    with Stack Exchange
    or