Typical cursor movements in Emacs navigate the two-dimensional plane of buffer rows and columns, so that left, right, up and down mean moving by column and by row, respectively. This is a very general way of moving around that you can use for any kind of text, including code.
Symex motions are more specialized and navigate the two-dimensional tree structure of your code, so that left and right move to adjacent expressions, and up and down move across nesting depth. When you’re working with code, this is more precise, and often, therefore, more efficient and more scalable.
In addition to these basic motions, Symex also provides many other ways to get around that are intuitive for trees but which don’t have analogues for unstructured, coordinate-based buffer navigation. For instance, “traversing” forwards and backwards visits every expression at every depth, precisely and in a predictable order, while “skipping,” “climbing,” and “descending” offer ways to get around faster in specific directions when you know where you’re trying to go. Finally, you can also “leap” to nearby branches at the same height as your current position without explicitly navigating to them. This is very common as code frequently has repeating shapes and patterns — patterns which you may wish to exploit to get around quickly or even for automating repetitive tasks via macros.
See Movement for the full list of movement commands and keybindings.