CNC machining allows for the economical production of complex geometries with repeatable accuracy. It provides advantages over manual machining like easier programming, storage of programs, avoidance of human errors, and safer operation. A CNC machine typically has three linear axes (X, Y, Z) and can add additional rotary axes. Programming involves using G and M codes to specify functions like tool movements, feed rates, spindle speeds, and coolant control. Proper programming considers factors like interpolation types, tool compensations, and machine features.