5 ms·
It depends on what you're asking about. I remember an older engineer asking me what the term "amortized analysis" meant and that made me write him off as someon
by uyt 5y ago
It depends on what you're asking about. I remember an older engineer asking me what the term "amortized analysis" meant and that made me write him off as someone who doesn't know basic CS concepts (he was still a great product engineer, but I never once went to him for technical help afterwards).
In hindsight, I guess it's sort of forgivable given his age. The topic probably wasn't even invented yet so he couldn't have learned about it in school.
- arghnoname 5y agoEveryone has blind spots. I have a PhD in computer science. I wouldn't think any lesser of someone's technical chops if they weren't familiar with the term, so long as they quickly understood it when explained.
- bmitc 5y agoSeems ignorant to me, but what do I know? I've never studied or used amortized analysis either.
- jedberg 5y agoI'd never heard that term, so I looked it up. I was definitely familiar with the concept, but never heard that term for it before. Not everyone learns the same terms for the same concepts. Maybe you should be a little more accepting that not everyone had the same education you did.
- uyt 5y agoI am curious, what other name does it go by? I had a strong response because this came up while arguing about the cost of appending to a vector in loop. He had no idea what I meant when I said it was "constant time amortized" and didn't seem to know how resizable array work. This is always the first data structure you learn in CS 101 so I am surprised people are disagreeing that it is basic CS knowledge.
- jedberg 5y agoHonestly, I've never heard a term for it. Just talked about in the abstract: "That operation is O(n log n)" "Sure, but that operation doesn't happen on every loop, the entire algorithm is still O(n)".
- pitched 5y agoIt reminds me a bit more of talking about p50 vs p99 latency times but where we’re not measuring production data, more like what we’re guessing production loads will look like.
- not2b 5y agoI'm old enough to remember that Microsoft got this wrong back in the early 90s. In early versions of Microsoft Foundation Classes, which Windows C++ programmers were using before the STL took over and std::string became the thing, repeatedly appending a character to a string (I think it was CString) was quadratic, because they didn't increase array size by a multiplicative factor, but by a linear amount, so you'd get a ton of reallocation and copying. I used to use versions of this as an interview question. However, language for concepts evolves with time, and younger programmers shouldn't assume that older programmers don't know a concept because they learned it by a different name. (Though they might not know the concept).
- Chris_Newton 5y agoIn early versions of Microsoft Foundation Classes … repeatedly appending a character to a string (I think it was CString) was quadratic, because they didn't increase array size by a multiplicative factor, but by a linear amount, so you'd get a ton of reallocation and copying. I remember seeing production code slow to a crawl once because of that one. It wasn’t long after I’d left university, where I’d studied CS but the lectures on complexity theory had seemed quite theoretical at the time. Suddenly, here was a vivid example of how it could cause a problem in practice, in a situation as everyday as putting some text in a UI. The solution — using a string builder — then led me to several other principles about choosing an efficient internal representation for data and it being OK not to convert that data into its “true” form until you’re ready to use it. I suppose I should thank whoever made the original mistake, because despite causing a frustrating afternoon with a profiler, it also created several lightbulb moments early in my career.
- giovannibonetti 5y agoDon't conflate knowing the term with (really) knowing the concept. Some people might know what you're talking about even without having ever heard the term.
- FemmeAndroid 5y agoOne of the most substantial, frequent mistakes I see from junior developers is writing off the skills of their colleagues because of perceived gaps in knowledge.
- deleted 5y ago[deleted]
- sbarre 5y agoCounter-point: I had never heard the term "amortized analysis" before (I am self-taught) but when I looked it up, I realized "oh I've done this kind of thing before" and immediately understood what it was.. I just didn't know this kind of aggregated profiling had it's own name... So my advice would be don't be too quick to judge people based on assumptions you make about them.