CNC (computer numerical control) machines allow for complex geometries to be machined repeatably with high accuracy through computer-controlled motors and automated tool changes. CNC programming involves using G and M codes to specify tool paths, speeds, and other machining parameters. Common codes include G01 for linear interpolation, G02/G03 for circular interpolation, and M03/M04 to control spindle speed and direction. Proper CNC programming considers factors like coordinate systems, compensation, and machine capabilities for optimal machining results.