Why h j k l instead of arrow keys
Arrow keys live in the corner of the keyboard. Your right hand has to leave the home row, find them, navigate, and come back. h j k l are already under your right hand. The first day they feel awkward; by day three they feel like the arrow keys were a detour.
Vim was designed on the ADM-3A terminal in 1976, whose keyboard had those exact letters labeled with arrow icons. The convention stuck because it's mechanically excellent, not just for historical reasons.
Character movement
h, j, k, l for left, down, up, right. Yes, in that order — j goes down because it has a descender, k goes up because it has an ascender. The whole quest is full of these mnemonic accidents.
Word movement — the first big speed-up
Hopping character-by-character is fine for fine-grained edits, but most of the time you want to jump by words. w jumps to the start of the next word; e jumps to the end of the current (or next) word; b jumps backward to the start of the previous word.
Lowercase versions stop at punctuation: in hello-world they see three words. Uppercase versions (W E B) stop only at whitespace: in the same string they see one WORD. You'll use both constantly.
Line movement
0 jumps to the very start of the line; ^ jumps to the first non-blank character (usually what you actually want); $ jumps to the end. Imagine the keyboard row of numbers: 0 is the leftmost, $ sits over 4 on the right side — visual mnemonics again.
File-scale movement
gg jumps to the first line of the file; G jumps to the last line. :42 jumps to line 42 (so does 42G). Ctrl-d and Ctrl-u scroll half a page down/up; Ctrl-f and Ctrl-b scroll a full page.
5j moves five lines down, 3w jumps three words forward, 10l moves ten characters right. Combined with set relativenumber (Track 4), you can hop to an exact target by reading its number off the gutter.