Why learn & understand when you can search?

A recently and widely (in my nerd circles) shared XKCD comic featured ineffective sorting techniques. The alt text (what you get when you hover over the comic) proposed an additional sort:

StackSort connects to StackOverflow, searches for 'sort a list', and downloads and runs code snippets until the list is sorted.

Internet nerdom being fairly OCD, someone (Gregory Koberger) of course went and implemented this, and it works!

As Gregory says, this is potentially a security nightmare waiting to happen, so it’s not clear that you should actually run his code. Being a brave and foolish (and somewhat careful) soul, however, I’ve fallen on this sword so that you don’t have to, and I can confirm that it works. After trying several dozen StackOverflow pages (most of which yielded either “Could not extract a function to run” or “Contained potentially bad code”), it stumbled across a working version of Quicksort in JavaScript.

Ta Da!

The success of this approach, however, does suggest interesting things about how people approach certain kinds of problem solving these days. Where “old people” like me would have bought a book to learn something new, my students are much more prone to assemble a patchwork understanding from tons of Googling. While I think this often leads to a quite fragile and incomplete understanding of the topic at hand, it is often sufficient to get them through what is assigned. In other words, they’re very skilled at answering the question that was posed, which was itself often somewhat shallow because that’s what we all have time for. So while faculty would like to think that we’re creating experts (whatever that means) in certain topics, we rarely have the time to give them assignments and tasks that require a deep level of expertise.

In the land and time of books, we might have believed that everyone read and understood the 8 assigned chapters, but the assignments almost certainly didn’t strictly require that. In fact I’m willing to bet a whole lot skimming actually went on that was not so different from the Googling that happens now. The difference is that when I skimmed a book, there was a reasonably coherent thread connecting the dots that were touched on. “Skimming” the Internet, however, is a much less coherent experience. The authors, examples, and assumptions aren’t the same from search result to search result. Worse (in computing) the versions aren’t necessarily the same, so we often end up with inconsistent and downright contradictory results! A few years ago I taught a class that used Python 3, and it turned out that almost all Googling pointed us at Python 2 examples and answers, which lead to all manner of confusion amongst my students.

So call me old-fashioned, but I still like a book, even if it’s an e-book, when I’m learning something conceptually new, as I do really appreciate a coherent voice and structure. If I need to remind myself of a library function or piece of syntax, it’s to the Googles. If I’m learning something that’s very similar to something I already know, then I’m happy with on-line docs if they’re well written. If, however, I’m expanding my horizons in more significant ways, a book is still the thing.

Related posts

I’m looking to do software development in the Cities this summer

I’m looking to do software development in the Cities this summer to enrich my teaching here at UMM. Any ideas or suggestions?

For years (over a decade) I’ve talked about spending a summer working in industry, primarily as a way of gaining some real-world experience in software development that I can use to enrich my teaching here at UMM. In my courses I bang on at great length about how teams work together to build software, but I don’t actually have a ton of personal experience of this kind of development. I’m not completely making it up; I’ve built a lot of software alone and in small groups, I talk to alums about their industrial experience, and I do a lot of reading. Still, it would be nice to actually spend a few months in that world to better ground and inform my teaching.

While our son was growing up, though, the idea of spending a summer away from my family really didn’t appeal. He’s now graduated from high school and is off in the world, so this has become a fairly realistic option. Consequently I’m talking to various friends, alums, and industry types in an effort to identify plausible opportunities.

I’m pretty flexible on this, but I’m definitely interested in doing development rather than R&D (the activity that my degrees and experience would tend to suggest). I’d probably prefer to be a member of an agile team rather than working primarily solo on a task. It would also be important that the job really just be a summer gig; my job here is more than enough to keep me busy, so I’m not looking for something that will bleed into the school year.

Anyone out there know of any opportunities that might make sense? Feel free to leave a comment or contact me directly (mcphee AT morris DOT umn DOT edu).

Many thanks!

P.S. In case you stumble here and have no idea who I am, a very brief synopsis: I’ve been programming since the late 70’s, and teaching computer science here at the University of Minnesota, Morris, since 1991. I have lots of experience with Java, also quite a lot of Ruby, Python, and Groovy. I’m useful with JavaScript and Grails, and have experience with Rails but it’s a little rusty. I was once quite competent at C and then C++, but haven’t used either in years. Most of my dissertation work (mid- to late- 80’s) was in Common LISP; more recently I’ve been teaching Scheme and Racket a lot, and also have some experience with Clojure, Erlang, and Haskell. I learn new languages, tools, and systems pretty quickly, as that is often required in my job. My primary research area has been evolutionary computation (EC), and I’ve led or assisted in the design and implementation of numerous EC systems over the years. I’m experienced in experimental design, data collection, and statistical analysis and data visualization. I’m an experienced writer and public speaker; my research is heavily cited and has won several best paper awards.

Related posts