How to Identify a real Programmer:
Real Programmers (RP) don't write specs -- users should consider themselves lucky to get any programs at all and take what they get.
RP don't comment their code. If it is hard to write, it should be hard to understand.
RP don't write in COBOL. COBOL is for wimpy applications programmers.
RP's programs never work right the first time. But if you throw them on the machine they can be patched into working in "only a few" 30-hour debugging sessions.
RP never work 9-5. If any RP are even around at 9am, it's because they were up all night.
RP never write in BASIC. Actually, no programmers ever write in BASIC after the age of 12.
RP don't write in PL/1. PL/1 is for programmers that can't decide between COBOL and FORTRAN.
RP never make up schedules. Only planners make up schedules. Only managers read them.
RP never deliver programs on schedule. Either the program is "done" in 2 days or it is never finished. In any case, it is never delievered when it was scheduled.
RP never eat at restaurants. If the vending machine sells it they eat it.
If it doesn't, they don't. Recently RP discovered that popcorn was being sold in vending machines. Common coders discovered that it could be popped in the microwave oven in the vending-machine room but real programmers use the heat escaping from the top of the CPU.
RP do not clear registers twice before using them. In fact, if you annoy a RP, he/she won't clear the registers at all. And that goes for your memory too!
RP do not wonder where the bits went following a shift operation. They do not care.
RP are not in it for the money. Most of them are secret millionaires.
How To Identify A Real Software Engineer:
Real software engineers don't read dumps. They never generate them, and on the rare occasions that they come across them, they are vaguely amused.
Real software engineers don't comment their code. The identifiers are so mnemonic they don't have to.
Real software engineers don't write application programs, they implement algorithms. If someone has an application that the algorithm might help with, that's nice. Don't ask them to write the user interface, though.
If it doesn't have recursive function calls, real software engineers don't program in it. Real software engineers don't program in assembler. They become quesy at the very thought.
Real software engineers don't debug programs, they verify correctness. This process doesn't necessarily involve executing anything on a computer, except perhaps a Correctness Verification Aid package.
Real software engineers like C's structured constructs, but they are suspicious of it because they have heard that it lets you get "close to the machine."
Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure.
Real software engineers regret the existence of COBOL, FORTRAN and BASIC. PL/1 is getting there, but it is not nearly disciplined enough; far too much built in function.
Real software engineers aren't too happy about the existence of users, either. Users always seem to have the wrong idea about what the implementation and verification of algorithms is all about.
Real software engineers think better while playing WFF 'N' PROOF.
How To Identify A Real Computer Scientist:
Real computer scientists don't write code. They occasionally tinker with 'programming systems', but those are so high level that they hardly count (and rarely count accurately; precision is for applications.)
Real computer scientists don't comment their code. The identifiers are so long they can't afford the disk space.
Real computer scientists don't write the user interfaces, they merely argue over what they should look like.
If it doesn't have a programming environment complete with interactive debugger structure editor, and extensive cross module test checking, real computer scientists won't be seen tinkering with it. They may have to use it to balance their checkbooks, as their own systems can't.
Real computer scientists don't 'write' in anything less portable than a number two pencil.
Real computer scientists don't debug programs, they dynamically modify them. This is safer, since no one has invented a way to do anything dynamic to FORTRAN, COBOL, or BASIC.
Real computer scientists like C's structured constructs, but they are suspicious of it because its compiled. (Only Batch freaks and efficiency weirdos bother with compilers, they're soooo un-dynamic.)
Real computer scientists work from 5pm to 9am because that's the only time they can get the 8 megabytes of main memory they need to edit specs. (Real work starts around 2am when enough MIPS are free for their dynamic systems.)
Real computer scientists regret the existence of PL/1, PASCAL and LISP. ADA is getting there, but it is still allows people to make mistakes.
Real computer scientists love the concept of users. Users are always real impressed by the stuff computer scientists are talking about; it sure sounds better than the stuff they are being forced to use now.
Real computer scientists love conventions. No one is expected to lug a 3081 attached to a bit map screen to a convention, so no one will ever know how slow their systems run.
