Array Thinking

Notation as a tool of thought

Unless you're new to programming (congrats on finding array languages first if so!), you already have a repertoire of patterns, approaches, and idioms you've mastered to express data transformations and computations. This is the painful part: having achieved virtuosity with the instruments of your former programming languages, you are now challenged to put those instruments down, take up this new oddity called "array programming," put your fingers to the keys and try to make music. As with any new instrument, at first you're going to produce terrible noises, squeaks, and squeels; you're going to master tiny fragments first and struggle to put them together; you're going to over-use bits you understand first; and you're going to produce grossly inefficient programs. In short, you're going to be a beginner again.

What an opportunity!

What a curse!

Is it worth it?

Yes.