Earlier quoted context omitted.
Programmers don't count from 0. Its just in many languages it makes sense like in C where an arrays name is actually a pointer to the first element and the index says how many positions to move away from it so foo[0] is the pointer to the first element and then move 0 spaces away. The tradition of starting at 0 just got carried on to everything because having a standard is better than having to memorize what everythi…
There are good reasons to start counting at 0 beyond convention. Dijkstra wrote a small essay on the topic in 1982 called "Why numbering should start at zero." http://www.cs.utexas.edu/users/EWD/transcriptions/EWD08xx/EW...
Specially when dealing with Algol derived languages, where the indexes can be specified in a flexible way.