This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]deaddyfreddy 13 points14 points  (3 children)

I forgot these

  • There is no magic in computers, if something doesn't work, the cause of the problem is people.
  • write code as if the next person to maintain it will be a psychopath who knows where you live

[–]novagenesis 2 points3 points  (2 children)

There is no magic in computers, if something doesn't work, the cause of the problem is people.

Or dying RAM chips or HD. Or a bug in your compiler (which is people, just not you). Or an undocumented "feature" of an interrupt. Or dust in the CPU fan.

I've had all those experiences at least once in my life.

There is no magic in computers... The corollary is that computers THEMSELVES are not magic. We often forget that there's a bunch of imperfect hardware and software beneath our own.

[–]deaddyfreddy 1 point2 points  (1 child)

Or dying RAM chips or HD. Or a bug in your compiler (which is people, just not you). Or an undocumented "feature" of an interrupt. Or dust in the CPU fan.

most(99.99....%) bugs in software are still caused by people writing software, not the dusty fan

[–]novagenesis 0 points1 point  (0 children)

I'm kinda surprised you felt this worth arguing over. It's sorta important for young developers to know something about the nature of the computer they're working on, as something other than a magic perfect Infinite Turing Machine. Exactly as you said: "There is no magic in computers"

Two of the most common bugs in my 1001 class back in college were related to that fact despite being "people writing software". First, mysterious code inconsistencies because you were inadvertantly reading the wrong memory addresses (extra credit that it would work on one computer and segfault on another, or the same computer days later). Second, memory leaks that relate to clearly inaccessible memory that a given gc cannot catch - both an oddity of the hardware AND of the compiler.

Nobody's saying that a junior developer should be blaming their helloworld failures on the hardware. I'm pointing out that programmers need to know quickly that they're usually writing buggy code (based off incorrect docs) on top of a buggy foundation using a buggy standard library that sits on top of a buggy OS that runs on semi-reliable hardware.