-
-
eventually though the abstraction gets pleasant and usable enough that new people start showing up and only ever learning the abstraction
-
and this works well enough almost all the time but then one day they run into a problem caused by something underneath the abstraction and are totally fucked
-
there was an amusingly common pattern with activerecord (rails db interaction thing) misuse I saw twice when freelancing and is apparently pervasive among rockstar ninja types
-
where because they didn't know sql and only ever used activerecord they manage to accidentally make simple, fast queries incredibly slow
-
eg `select * from table where column = 'whatever'`, with an index (thing that organizes values, usually in a tree, for faster lookups) this is probably O(log n)
-
meaning, for a table of n rows you have to touch log n of those rows at worst to find your things, because the way a tree is organized you automatically exclude half of things from consideration each step
-
what they'd manage to do is turn it into an O(n^2) operation: pull out *all the rows*, check the *one row* you're interested in, repeat both steps for *every* row
-
so it works fine with a small enough dataset and then the moment it goes live (if your prod dataset is huge) or years later (when it gets huge) it takes fucking forever
-
(my former freelance partner got pulled in by an old job once as a contractor at way more than his previous to solve literally this exact problem, which none of their employees could do)
-
I call it the rails problem because I love this example and think it's hilarious but it's basically the history of programming languages
-
people used to working in hex saw assembly languages as an extravagance that would sissify the next generation of programmers, people working in assembly said same of compiled langs, etc
-
personally I think anyone who doesn't know at least one level down from where they're working is reckless bordering on dangerous
-
webdevs should know enough C/C++ to have intuitions about how their languages are likely implemented and be able to read the implementations if needed, C devs should know their archs' assemblies, etc
-
this is perfectly reasonable to demand of ppl imo, expecting everyone to know "everything" under them (chip fab? EE?) probably isn't
-
but anyway the real issue is once more "programming" shifts from writing compiled/interpreted languages to offloading more work to machine learning frameworks they have zero understanding of the math behind
-
where they have some inputs and some desired outputs and as far as they know everything that happens in between is a magic black box because hackernews told them they don't need to know linear algebra
-
and these people are easily >90% of the field lol
-
sorry for writing a blog post lol anyway the paradox is standards are both higher than most people can achieve and much lower than they should be because most people in the industry are worse than useless
- 3 more replies
New conversation -
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.