In many of the classes that I teach, I require students to learn the basics of Mathematica which we use throughout the semester to do computations and to submit homeworks (in notebook form). Some students really like this and some... not so much.
Since I teach in an engineering department, almost everyone already knows some programming language: Matlab, python, java, or C are the most common, though there is quite a variety. One thing that I have found pretty effective is to try and relate Mathematica formalisms, structures, and ideas to those that students already know. For example:
$-$ When talking about using the Listable
Attribute of functions, I compare this to Matlab's vectorization
$-$ When talking about alternatives for loops, Mathematica's Table
function is analogous to python's List Comprehensions, for example, observe the similarity between
squares = [x**2 for x in range(10)]
and
squares = Table[x^2, {x, Range[10]}]
$-$ Mathematica's Notebook format is analogous to Jupyter notebooks which merge word processing, computation, and interactive presentations.
My question is this: What are some other analogies between Mathematica functions, expressions, and structures that might be helpful to new users in understanding "what Mathematica is thinking" or "why it works that way"?
Update: It seems that we have some very good answers for Matlab and for python. How about other languages? Any nice analogies for/with other popular languages?