An Interview with Donald Knuth where he talks about open source, reusable code, Linux, and other stuff:
…authors these days often introduce arcane methods that outperform the simpler techniques only when the problem size exceeds the number of protons in the universe. Such algorithms could never be important in a real computer application. I read hundreds of such papers to see if they might contain nuggets for programmers, but most of them wind up getting short shrift.
Okay, I know you all know who Donald Knuth is, but just to waste some bandwidth, I’ll provide his background anyway:
Knuth wrote The Art Of Computer Programming, considered the Bible of computer programming for those with an academic background. I remember seeing the beige, hard-cover volumes at MUN‘s book store for graduates, yet I bought them as a 1st year student because they were so damn interesting. They’re not light reading.
Knuth has been working on Volumes 4 and 5 for many years, as he lists on his website, and has tentative plans for Volumes 6 and 7. Aren’t you excited?!
Besides The Art of Computer Programming, he’s noted as the creator of TeX (computer science and mathematics students should know about that), a typesetting system, and providing a reward for any mistakes found in his published books.
Oh, and his name is pronounced “Ka-nooth” – the “K” is not silent.
5 algorithms you must know:
Algorithms are underrated and probably underused – it comes up maybe 1% of the time, but in that 1% of the time, it’s 100% important. These are real algorithms, with real-world application, but the lesson is in the paradigm.
They list Sorting, Binary Searching, Hashing, Dynamic Programming, and Search Algorithm.
The first four are common, although most people I know simply google solutions, not knowing they’re using a Quick Sort. I don’t think I’ve used any Search Algorithms in my professional life.
Knuth‘s Fundamental Algorithms (volume 1 of his The Art Of Computer Programming – you DO have a copy, don’t you?) describes how to use Linear Lists, Trees, and similar structures. He devotes all of Volume 3 to Searching and Sorting.