• kaffiene@lemmy.world
    link
    fedilink
    English
    arrow-up
    3
    arrow-down
    1
    ·
    9 months ago

    There’s a lot of software engineering that doesn’t require understanding Big O

    • Buddahriffic@lemmy.world
      link
      fedilink
      arrow-up
      6
      ·
      9 months ago

      Also big O analysis IMO should just be the starting point of maximizing efficiency. Those coefficients that just get dropped can have a huge impact. For example, any algorithm written in JavaScript or visual basic will be of the same order as that same algorithm written in C/C++ or rust, but will likely perform much slower. And the exact manner of implementation could even result in the C version being slower than the VB one.

      And on the other hand, I wouldn’t call a lot of big O analysis very advanced math. You might get a tighter bound with advanced math on some algorithms, but you can get a rough estimate just by multiplying and adding loops together. The harder question would be something like “does this early exit optimization result in an O(x³) algorithm becoming an O(log(x)*x²)?”

      • kaffiene@lemmy.world
        link
        fedilink
        English
        arrow-up
        2
        ·
        9 months ago

        I think the tldr; of what you said is that even when you have a theoretical handle on the growth function, you still need to actually benchmark anyway