This is Steve Hollasch's Typepad Profile.
Join Typepad and start following Steve Hollasch's activity
Join Now!
Already a member? Sign In
Steve Hollasch
Recent Activity
Regarding "Algorithms are for people who don't know how to buy RAM", one tip-off to the quote is that it was related by a computer science associate of Clay Shirkey's. Given that CS main focus is algorithms, there should be enough clue that there's subtle wisdom in this statement. I've been around the block a few times, got my master's degree in CS, love algorithms, and still see the wisdom in this statement. Three real-world examples quickly sprang to my mind. I remember all the time I spend in my CS studies learning mergesort algorithms for two tape-deck sources spooling to a streaming tape output. Do YOU know how to optimize sorting algorithms for 1k of memory and a trio of streaming tapes? No? Thank your RAM. Problem solved. I also spent a lot of time learning a number of hairy hidden-line and hidden-surface algorithms to display the visibility problem in computer graphics. My first graphics computer (Amiga 1000) didn't have enough working RAM to hold one screen's worth of 24bit pixels. Today? Ray trace or use a Z-buffer. Indeed, modern raster graphics today have Z-buffers, A-buffers, bumpmap sources, texture sources, stencil buffers and on and on. Better algorithms? Nope -- today we finally have enough RAM to dump all the crazy algorithms we used to have to employ. If you use Z-buffers today but don't know the floating horizon, Roberts, Warnock or Weiler-Atherton algorithm, then hold your tongue and thank your RAM. I spent several years of my career working on a advanced rendering solution that was predicated on the belief that RAM would be prohibitively expensive and that better algorithms (essentially decomposing scenes into 2D affine sprites with asynchronous error-based update) would save the day. Several years later, RAM prices had dropped considerably and our hardware was a footnote in history. Yes, learn your algorithms. Study big O and little O notation and learn about the asymptotic performance of the algorithms you use and write day-to-day. But there are clearly areas where RAM is THE solution to various problems we encounter day-to-day. If you think algorithms will save your butt every time, then you're no better off than the fool who believes that RAM will save his butt every time.
My favorite interview had me desperate to ask a programming question that one particular "expert" candidate could answer. After asking successively simpler questions, I ended up asking him to implement a while-loop using [drumroll] if and goto. "Sure, that's easy!", he replied. I offered the whiteboard marker. "Can you show me?" "Of course!", he nodded, not moving to take the offered marker. "Will you show me, now?" "Sure, I could do that!" ... [pause] "Please show me now." ... [pause] "Well, no, I can't." Here's the flip-side of all this, though. I love good programming interviews. Sure, there's only so much you can glean with these distilled and contrived programming problems. And yup, I've bombed some interviews that I smacked myself over later, and that I believe underestimated my true abilities. That said, answering puzzles like these for four to eight hours during a grueling day is my idea of a Good Time. Call me crazy, but isn't that why we've picked this career anyway?
Toggle Commented Feb 23, 2010 on The Non-Programming Programmer at Coding Horror
Steve Hollasch is now following The Typepad Team
Feb 22, 2010