I fully agree with this.  Far more important to me than a great algorithm is readable, maintainable, and well-structured code.<p>If your algorithms suck but your code is readable, maintainable, and well-structured, it'll be a lot easier to find someone who has a better knowledge of algorithms to come fix it.  While, if your code is unreadable, unmaintainable, and/or poorly structured but has great algorithms, you'll have a much harder time finding someone to fix it (or even fixing it yourself).<p>Here's what Rob Pike had to say on the role of algorithms in programming (from the recent HN submission on the Basics of Unix Philosophy <a href="http://www.faqs.org/docs/artu/ch01s06.html" rel="nofollow">http://www.faqs.org/docs/artu/ch01s06.html</a> )<p><i>"Rule 3. Fancy algorithms are slow when n is small, and n is usually small. Fancy algorithms have big constants. Until you know that n is frequently going to be big, don't get fancy. (Even if n does get big, use Rule 2 first.)<p>Rule 4. Fancy algorithms are buggier than simple ones, and they're much harder to implement. Use simple algorithms as well as simple data structures.<p>Rule 5. Data dominates. If you've chosen the right data structures and organized things well, the algorithms will almost always be self-evident. Data structures, not algorithms, are central to programming."</i>