Hacker News new | ask | show | jobs
by bguthrie 4507 days ago
I have built many systems that were meant to be used seriously. Never once has my lack of understanding of graphics cards, for example, come back to bite me.

Every system is built on abstractions. You can argue about the value of understanding particular systems, but we are well past the point when any one person can or should understand them all. No one is arguing that it's acceptable to learn only the highest-level abstractions. But it is acceptable to let somebody else worry about some of the lower-level ones.

People who don't focus on understanding engineering systems often focus on understanding other systems––team dynamics, for example, or business needs. I've met a lot of developers who only cared about learning the technical side, and were happy to look down on developers who didn't feel the same. Is that wiser, somehow?

1 comments

What kind of systems were you working on?

No, you probably don't need to know much about how graphics cards work if you're working with databases or other software that doesn't really involve graphics in any serious way. But if you're working on graphics card drivers, high-end video games, visualization systems, or simulations, then you'd probably should have such knowledge.

The point is not to fully understand every single layer that exists, including those that your software never interacts with, or only just makes very light usage of. But you should have at least a basic understanding all the way down through the code and hardware you do use, directly or indirectly.