CNC machines allow for complex geometries to be machined repeatably and accurately through computerized control of cutting tools. They have advantages over manual machining like easier programming, avoiding human errors, and producing complex and simple geometries with equal ease. CNC machines move tools or workpieces along linear axes, with typical machines having X, Y, and Z axes. Programming involves specifying coordinates, cutting parameters, and coded instructions to direct the machine's motions.