This is the right answer, In addition I think a CS degree teaches you to how to write algorithms and work experience teaches you to not. And modern practice teaches you to avoid monkeying with array indexes when possible.
0 or 1 based arrays is not a fundamental issue. It's more like little endian vs little endian. It's marginally better if everyone settles for one indexing.
In a good high level language and programming style you rarely need to think in indexes. In a low level language 0-indexing is better.
In low-level languages, an index is literally a pointer offset. p[n] is *(p+n), and 0 makes sense. In higher-level languages, it's a less direct dereference that may or may not be directly mapped in a similar fashion.
Since there's a real basis for 0-indexing and none for 1-indexing, obviously 0 is right.
5 comments
[ 3.3 ms ] story [ 20.7 ms ] thread0 or 1 based arrays is not a fundamental issue. It's more like little endian vs little endian. It's marginally better if everyone settles for one indexing.
In a good high level language and programming style you rarely need to think in indexes. In a low level language 0-indexing is better.
Since there's a real basis for 0-indexing and none for 1-indexing, obviously 0 is right.
There are plausible, though inferior, arguments for 1-based arrays. This person doesn't even manage to make them, though.