| > data structure and associated algorithms That's the thing. 99% of programming is Big Data (and windows, thereof), so everyone is on about that. I tend to write stuff that is on a much more humble scale, like device control software, or systems that are used by thousands (not millions) of people. I guess that I could say that "Any programmer should know about ring buffers," as that was a staple of my device driver stuff (I came up through hardware). In point of fact, only low-level drivers need concern themselves with ring buffers. Even programmers dedicated to writing device control software don't have to mess with them. The same with hardware handshakes, IRQs, etc. We tend to view everything through the lens of what we know. |
As a side point, ring buffers are also useful in some high-level, high-performance code that is multi-threaded or using multi-processors.
io_uring is an example of this used to speed up Linux kernel-userspace communication (although it's not a great example for illustrating the general principle because it's so specialised).
DSPs use ring buffers extensively. Mainly for signal data, but sometimes for communicating tasks and messages between coprocessors.