• 0 Posts
  • 56 Comments
Joined 1 year ago
cake
Cake day: September 7th, 2023

help-circle




  • “From computer science papers/academic texts I know this method of reading works perfectly”

    This is almost certainly due to pure familiarity. CS papers are just as indecipherable to unfamiliar persons. Possibly even more since things like complexity are heavily used, without any explanation of what it is. Data structures are another common one that the vast majority of non-CS people would not understand when referenced.

    I know because this is exactly how I felt coming from an intermediate mathematics background.



  • Mathematicians are good at writing algorithms, but not at the development aspect, which is basically building for different systems, packaging software and documentation.

    I would disagree on the performance part, the vast majority of software developers aren’t writing high performance software and the ones that are tend to be computational mathematicians or physicists.


  • “seeing the differences in the result”

    This just means that you are testing against a very narrow output. It’s actually pretty common to run across tests that don’t even check for the likely failure cases, because the developer(s) don’t actually understand the algorithm.

    A common example is prime factorisation, most nontrivial factorisation algorithms (Pollard rho, elliptic curves), don’t guarantee producing a prime factor they simply tend to produce them because they prioritize small factors. Programmers see that their function produces primes for the one or 2 test cases (out of say 2^64) and assume that it works. It generally does, but when it doesn’t you get incorrect results (often undetectably) which poisons all the rest of your calculations.