It's the difference between ordinal and cardinal numbers. In other words, counting and indexing.
https://news.ycombinator.com/item?id=5888459 (quoted here for convenience)
—————
Formally, ordinals start at zero too :-) [0]. We owe their latest definition to Von Neumann, but AFAIK, the former definitions were similar. [...snip...]
--
[0] This is meta-meta-contrarianism.
- The layman counts from 1
- The uptight programmer counts from zero, because Dijkstra said so (or so he thinks).
- The meta-contrarian (I used to be one) says fuck it, ordinals start at one.
- The meta-meta-contrarian reads Wikipedia[1], realizes he was formally wrong, and goes one step further in pedanticity, back to zero [0].
That being said, my brain prefers 1-indexing programming languages like Lua, Julia, R and Matlab...
[1] http://en.wikipedia.org/wiki/Ordinal_number
[0] Help! I'm stuck in a Boolean algebra[1][0]!
[1] http://en.wikipedia.org/wiki/Boolean_algebras_canonically_de...
[0] ... where xor is an addition that wraps around ...
I do not believe for a second that you taught them to count by holding up one finger for zero, two fingers for one etc.
Reminder that we're specifically talking about array indexing.
My kids' school also uses zero-based tables.
"Natural" is a very loaded and ambiguous term, best avoided if you hope to have sane discussions.