Nowadays, CNC programming is getting more dependent on the use of CAD/CAM softwares. These softwares are used to create a solid model of the part (CAD) and then it is utilized for creating its part programming on the manufacturing module (CAM) of the same software.
When we create part program, the post processer converts the cutter location file (CL) into the machine readable format (tap file). This converted file is actually in word address format or G-code programming. This is the most efficient mode of manufacturing currently going on.
On the other side, if we opt not to link computer with CNC machine, then we have to learn the g-code programming. That is a complete programming thing. In my opinion, CNC Programming Handbook by Peter Smid is the best book to learn it.
The simplest way is to get a job at a machine shop, read machine manuals and ask questions to the programmers and setup guys, stay after your working hours and try to practice at every chance you have. Once you feel that you cannot grow in that shop, because you are a master in everything, switch to another job and you will see that you can keep learning new things everyday.
Learning CNC programming is one thing, learning MACHINING is another beast.
First you can learn how to make the machine move the way you want by using G codes (move in a straight line, make a circle, slower, faster, etc).
The theory is really simple, but it can get complicated when calculating intersections of curves and lines, or when tons of code are required. For that we use CAD/CAM and/or macros.
To learn CAM, you need accesss to the CAM program and have the basic knowlegde of computers. Today it is easy to learn by doing the program tutorials and looking at youtube videos.
Now, to actually machine a part, you have to know not only how to make the machine move here or there, you must know WHY you want it to move that way. What tools will you use? What strategy? What feeds and speeds? Will you use a common vise or have to make a special fixture?
That knowledge is only acquired by experience, and that’s why being in a shop will give you more chances of seeing how reality differs from the “perfect program, setup and run” of a classroom and the day to day life at the shop.
By the way, machining conventional or CNC is really fun and interesting, and sometimes really frustrating, but is worth the price.
For example, today I was asked to make in the machining center a thin, simple part out of a billet. The part was obviously designed to be made out of a metal sheet, punching when flat and bending it after. So there I was squeezing my brains out to stand up to the challenge. I succeded, I am proud, let’s see what will bring tomorrow.