While there might have been a way to see the improvements I listed without understanding what algorithm the database was using and what the performance implications were, I don't know what it was. I do know that the way that I found the improvements was to actually understand what was going on. Once I saw it, of course, I could come up with simple non-explanations which you didn't need to understand the math to understand. However I doubt that understanding those non-explanations would really be useful to others.

In short I was there, I was involved, and I think that understanding algorithms was important.

You may have the opposite impression. But you weren't there.

Furthermore I have to say that I consider understanding algorithms so important that I have a standard algorithm question that I ask on interviews. It consists of showing a few lines of code, asking the person to figure out what it does, asking them to figure out why it could be a performance problem and asking for a suggestion of how to improve it. (You don't need to talk about big-O and all that, you just need to recognize that a billion operations takes a lot of time.) In general people either find it trivial (frequently they ask if there is more to the problem) or simply can't do it. (I've had people who've never taken an algorithms course find it obvious. I've had people who had it on their transcript fail.) Everyone who I had reason to think was competent has found it trivial. Most programmers that I've interviewed can't do it. I recommend against hiring the latter.

You may think that this is silly. But scaling issues have come up enough in my work that I want people around me to understand it. (More importantly, I've had enough bad experiences with programmers who didn't understand it that I don't want to get blank looks and no reaction when I point out what should be obvious...)


In reply to Re^7: Mathematics eq CompSci by tilly
in thread Mathematics eq CompSci by kiat

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.