Why do programmers always mix up Halloween and Christmas?
Q: Why do programmers always mix up Halloween and Christmas?
A: Because Oct 31 == Dec 25!
This is not an occupational joke, although one would expect it to be based on the setup. The joke - to be understood requires the listener to recognize Oct and Dec to mean Octal and Decimal.
Octal is a base 8 counting scheme (with numbers 0,1,2,3,4,5,6, and 7) just as Decimal is a base 10 counting scheme (with numbers 0,1,2,3,4,5,6,7,8, and 9). Both counting schemes can be used to represent any number, however programmers tend to be more aware of different number bases (because they regularly need to convert to hexadecimal and binary as a part of their work), so programmers would be expected to recognize why this joke is funny.
The punchline: Oct 31 == Dec 25 is actually true if you read Oct as octal, and Dec as decimal. 3*8+1 equals 2*10+5.
The taking of Oct and Dec and reading them out of context as octal and decimal is the critical element of the joke.