Believe me..Learning CNC is quite easy. Only that, mastering takes more time.
To start with, being good at mathematics (especially Coordinate Geometry) is enough for coding. The G codes and M codes can be found in internet easily. You dont need to by-heart them. Just start coding by looking at the codes. The more you practice, the easier it will be.
A program contains
1. Definition statements. They contains program number, defining the origin, selecting tool etc.,
2. Machining statements. Based on the coordinates, you move the tool using commands like G 0, G01, G02, G03…
3. Closing statements to tell the machine that the program is ended, bringing the tool and workpiece back to origin, stopping coolant…
The defining and closing statements will be same for most of the programs. So master the machining statements first.
Computer Numerical Control (CNC): Programming Basics - M&G Codes, Easy Steps and Tutorials

Author: Steve F. Krar