4 ms·
Today I learned that I don't know any of these numbers that "every" programmer should know. Where do I turn in my programmer card, Jeff Dean?
by bmitc 5y ago
Today I learned that I don't know any of these numbers that "every" programmer should know. Where do I turn in my programmer card, Jeff Dean?
- morelisp 5y agoYou could take this instead as an opportunity to learn them, instead of reveling in your ignorance.
- bmitc 5y agoThere is plenty I don't know. It's not me reveling in my ignorance. My point is that programming is an incredibly diverse field and yet people, even people who supposedly should know better, are obsessed with making global laws of programming. I know relative comparisons of speeds that have been useful in my day jobs, but I'd wager that needing to know the details of these numbers, how they've evolved, etc. is a relatively niche area. Regarding learning, I try to constantly learn. This is driven by two things: (1) need, such as one finds in their day job or to complete some side project; (2) interest. If something hits either need or interest or hopefully both, I learn it.
- zachberger 5y agoI don’t think it’s important to know the absolute numbers but rather the relative values and rough orders of magnitude. I can’t tell you how many times I’ve had to explain to developers why their network attaches storage has higher latency than their locally attached NVME SSD
- morelisp 5y agoThe absolute numbers are also important. I can't tell you how many times I've had someone coming from a front-end world tells me 5ms for some trivial task (e.g. sorting a 1000ish element list) is "fast" just because it happened faster than their reaction time.
- bmitc 5y agoThat's reasonable. My comment is a reaction to the unneeded title. Knowing relative speeds of things as well as ways to characterize and debug them is generally important.
- dekhn 5y agoThis was a doc handed to incoming Google engineers (along with Jeff's resume) to help assimilate them. MOst if not all of these came up at some point in the development of google.com and making decisions about (for example) whether to send an intercontinental RPC or look something up locally, or to put some part of the web index in RAM/disk. Don't read it as "you should have known this", read it as "you should know this" to be a more effective programmer. These sorts of guidelines have been invaluable for making arch decisions throughout my career.
- bmitc 5y agoAh, so this title/article is out of context then, because not every place is Google. Thank you for providing the context. And his resume was distributed? Why?