Decent Programmers Would Know

An attitude often seen on programming forums.

Decent Programmers Would Know to: do all sorts of things that require both broad and deep knowledge of every single aspect, language, theory, and latest security hole.


It's an impossible standard to meet. It doesn't matter if you have ten years of C++, Java, C#, Fortran, and 8086 assembly. DECENT PROGRAMMERS WOULD KNOW what happens in the algorithm of the garbage collector hidden by interface. DECENT PROGRAMMERS WOULD KNOW that the latest security hole discovered yesterday in a specific version of an open source library exposes it to a subtle vulnerability when using associative arrays that didn't first do input validation before trying to concatenate it to another string!

I submit that decent programmers would know nobody knows everything.

Decent programmers would know the quirks and gotchas of their toolset and domain - for programmers, that means the languages in which they claim expertise, and the problems upon which they labor, and even the compilation environment and IDEs they use. The same is true of any other craftsman or expert - these things are learned by experience. Security vulnerabilities? Decent programmers would know those if their domain has to do with security (e.g. OpenBSD developers), or if the vulnerability is well known (e.g. buffer overflows in C programming language). Garbage collection issues? Decent programmers would know those if their language has a garbage-collector and their work is sensitive to RealTime concerns or precise algorithmic complexity or temporal scheduling interleave of events. There is much that DecentProgrammersWouldKnow (if there weren't, the bar for "decent programmer" is pretty darn low), but there really ought to be an if-clause sitting to the immediate right of any such claim.

Sure, but this is an attitude that always comes after the fact. Something happens, and other programmers are quick to jump in with how of course they knew that would happen(no matter how subtle the bug or mistake). It seems to be a strong ego-thing, almost always implying they ARE the Decent Programmer. It'd be like saying "Well, anyone that knows what women want would know.."

That must be a social environment thing. At my workplace, programmers who jump in claiming foreknowledge of a bug or mistake are asked why they didn't bring it up before it happened. Suffice to say, we don't see many such claims.

Well, I was referring more so to online forums. Although in the open-source world that's not a bad argument, "well if you knew so much, why didn't you help their project?"


This attitude applies to more than just programmers on forums. It applies any time politicians, engineers, or other "responsible" personnel are accused of lacking foresight or planning when a bridge falls down, a hurricane devastates a city, a flood immerses a community, or some other disaster befalls an identifiable group. "You should have known!" crows the media, the masses, and sundry pundits, but hindsight always has perfect 20/20 vision...

Worse is when it is proven that they tabled or buried some report from a concerned engineer that basically predicted it.

Related: RealProfessionalsGetSued


NovemberZeroSeven


EditText of this page (last edited November 21, 2007) or FindPage with title or text search