Hacker News new | ask | show | jobs
by sokoloff 2166 days ago
I agree that programmers should know about (the existence of the concept of) ring buffers, hardware handshakes, interrupts, synchronous vs asynchronous and serial vs parallel data communications, error detection/correction systems, grey codes, Karnaugh maps and logic glitching, split clock domains, etc.

If you tell me “I don’t want to know about anything that I don’t need clearly and presently to accomplish my next task”, you’ve told me something important.

2 comments

The parent is not wrong, coming up on two decades in this industry(and much more to keeping before that), the number of times I've encountered a binary tree is near zero. Only thing close was BSP trees in some engines we've licensed. There are parts of CS that get heavily over emphasised and parts that are neglected but super important.

It's also been my experience that the hardware things you mention are not well understood by most developers(it's a level of abstraction that honestly they don't need to worry about unless you want the last bit of performance from a piece of hardware).

Binary trees I agree. Binary search and friends? That’s come up quite a bit for me.
Never, for me, but I am sure that's because of the type of programming that I have done.

There's a chance that it may have been used in some of the convolution filters we developed, but I was no longer coding pipeline stuff (manager), by the time we got there.

> If you tell me “I don’t want to know about anything that I don’t need clearly and presently to accomplish my next task”, you’ve told me something important.

Oh, wow. I'm busted. I guess I should just sell my computer and take up turd farming.

Except...

> "I'm also constantly trying out stuff I don't already know."

That might indicate that "clearly and presently to accomplish my next task" keeps changing.