3 ms·
This was a big barrier to learning for me for a decade or more. As books and papers related to algorithms I needed to implement seem to always preoccupy themsel
by joshuak 8y ago
This was a big barrier to learning for me for a decade or more. As books and papers related to algorithms I needed to implement seem to always preoccupy themselves with proving to me that what they are saying is true, or illustrating the derivative insights that lead them to the discovery.
Reading them I would find myself thinking "Nice, such a lovely history of your enlightenment, but HOW!!?? How do I do it!?!"
For an embarrassingly long period of time, I misinterpreted these discussions to be a breakdown of a process to it's constituent parts. The 'proof' that it is correct is of passing concern to me. Like headache medicine on the shelf. Have you proven this compound won't kill me (quickly), great I'll take a bottle because I have a headache from reading the theoretical validation of cache-oblivious algorithms when what I need is a practical discussion of how to implement Funnelsort.
It's like there is a missing level of academic publication in which the initial proof, is supplemented with a paper on implementation. Here we prove this is correct, and here we implement one with Elmer's glue and popsicle sticks. We see publications on implementation if course, but they are usually much later and by different people. I don't mean to devalue anything in the existing academic process. I just feel there is a missed opportunity to communicate better by explaining things from the practical(aka outside) side in, in addition to the theoretical foundations (aka inside) out.
It would be nice to have it from the horses mouth, so to speak, by making such explanations a more formal expectation of academic papers.
- petertodd 8y agoI think a lot of that problem just stems from mismatched goals(1) and mismatched skillsets. Academics are rewarded for pushing academia forward, which means rigorous techniques that others can build on top of. But what those trying to use those techniques need are good models that they can build with. Secondly, the skillset required to explain something well doesn't have all that much to do with the skillset required to rigorously prove things. Sure, they overlap a bit because you need to have a reasonably good understanding of something to explain it, but that's where it ends. It's can also be quite a lot of work: I personally have made a bit of a career out of explaining this tech to people, and it's taken me a lot of work figuring out explanations that actually resonate with people. Unfortunately I don't really have any easy solutions to solving this problem. 1) I'd say mismatched incentives, but I don't want to imply anything nefarious about this problem in general!
- munin 8y agoProgramming is harder than proving. Well, programming poorly is easier than proving, but making something that you could release and won't look like gum and bailing wire is harder than proving. You wind up with a gum and bailing wire implementation that lives in your home directory until your laptop dies, and then you realize that nothing of value was lost because it has been years since you touched that project, and you move on. Proofs are the ideal artifact for a researcher because they don't require maintenance and don't have users. Think hard, write it down, publish, and move on. Academia punishes researchers that create and maintain tools for other people to use (for an example, look at the Sage people) and rewards researchers that publish papers. As a researcher, this feels wrong and frustrating, but there's really nothing I can do about it from within the system, or they'll kick me out for not publishing enough papers.