Posted by: davidhayden | September 19, 2010

Proven Tips and Tactics: How to get started learning CNC Programming

I received an interesting question the other day. A computer programmer that works in industry asked “How do I get started learning CNC programming?” Great question and I thought I should share my answer with you.  

 So what do I say to someone who wants to know how to get started learning CNC programming?

I ask they why do they want to learn CNC programming? Their answer to this question makes all the difference.
If you are a supervisor wanting to learn CNC programming so you can better communicate with your operators / machinists, then what you need to know is different from the hobbyist. If know why you are learning CNC programming, or any other subject for that matter, your ability and motivation to learn is greatly enhanced.  

Why knowing why makes it easier and more motivating to learn a subject

Imagine picking up a guitar and deciding you want to learn to play. It gets pretty boring just learning chords, scales and picking styles. Day after day you do your scales and chords but still don’t know a song or a piece. But when you start with a song in mind, you get focused, you learn the chords and scales specific to that song and pretty soon you can play it and enjoy it. In a matter of time you can play it flawlessly. The next song you want to learn is much easier.
It is easier because you have learned a lot more than scales and chords, you have learned a music system that includes, rhythms, strumming or picking all fused together.  

Learning CNC programming is much like learning music

When you decide why you are learning CNC programming, you narrow the field to what you need to know. And, what you learn is immediately applicable to your situation. For the supervisor, learning about coordinate systems and the general concepts behind CNC machines, you are far more able to communicate with your operators. The more you know the less likely you are able to be fooled or confused by an operator.
If you are an operator and want to have more control over your machine and your career, you need to learn more than generalities. You need to learn the specifics of the various canned cycles, subroutines, looping, G and M codes. As you develop your understanding of the CNC language, coordinate systems and efficient programming methods, the easier your job becomes.
Learning to program CNC machines is significant step you can take to get off the shop floor and into the CNC programming office.  

Where do you begin to learn CNC programming

After you have decided why it is important for you to know CNC programming, there are a lot of resources available to help you. Here are some suggestions:  

So how do you get started learning CNC programming? Do these 5 simple steps:  

  1. Determine a goal or why you want to learn CNC programming
  2. Knowing why, now determine what you need to know to achieve that goal
  3. Search the internet, book stores, libraries and school resources for information you need to know
  4. Study your books with the intention of meeting your goal and measure your progress
  5. Set new goals and continue learning to expand your knowledge and horizons

 Do you have a question about CNC Programming?  Simply post your question on this blog, I will do my best to answer the question or point you to a resource that will answer your question.


  1. I don’t usually reply to posts but I will in this case.
    my God, i thought you were going to chip in with some decisive insght at the end there, not leave it
    with ‘we leave it to you to decide’.

  2. I recruit a lot of experienced CNC Programmers in the UK and most of them learnt their programming skills during an engineering apprenticeship

  3. i work with mazaks setting them up and programming in conversational. i want to learn more about speeds and feeds. currently we just guess on both, but i don’t want to be one of those people. i would like to be able to to calculate the speeds and feeds. i know the calculations are just a starting point. what books or courses do you recommend!

  4. Hi really cnc programming is not that easy to master, it takes time, I have 17 years experience in cnc programming and cnc machining and I am in love with cnc machine programming still sometimes I have to jerk my minds.. I have a CNC Programming Blog tanvon CNC Blog.

    • When I tried to view your blog I got a script error that froze up IE. But from what I can see you have some good CNC information there. Thanks for sharing the link.

      I started progamming machines that were NC machines without computers. Controls like the early GE 100S or GE 500 and GE 550 controls. These had no cutter compensation, no canned cycles, etc. One machine did not even have absolute programming and since it was an 8 bit processor, the largest value we could put in was 99999 which equated to 9.9999 inches. The machine was a large 72″ VTL so to move the tool to the center of the machine required incrementally moving
      X- 9.9999
      X- 9.9999
      X- 9.9999
      X- 6.0003
      Just to get to the center of the table. Keeping track of where the tool was all the time required good concentration.

      It was a pretty exciting day when we got our first Fanuc 6 CNC machine.

      • hi, no doubt cnc machine makes our lives easier in workshops, but now the the time is tough again, there are CAD/CAM software to help us but again we have broaden our boundaries, now people are making such component in very limited time that I just get amazed.

    • Hello Tanvon,
      As you have great amount of experience in cnc programming, I am seeking some advice from you.
      I am into making drawings of turbine components in Pro-e and autocad since 10 years.
      I want to add “cnc programming” in my skill set to fight the predictable loss of my current job after 6 months.
      I have basic knowledge of all machining processes.
      Please give some clear suggestions on what books are perfect for this task and above all,
      can it be learned properly in a year ? My email

      • I am very sorry I did not see your comment until today. This response is truely much later than you wanted.
        That said the important things to know about CNC programming you may already know such as:
        Rectangular coordinates
        machining processess
        Blueprint reading
        and so on.

        Learning CNC programming is easy and you could learn it in far less than a year. But to be good you have to understand how parts are set up, locating surfaces and safe efficient machining methods, proper speeds and feeds and have a good sense of machining a wide variety of materials. You will also need familiarity with the basic machine controls and various machines and their limitations.

        A great deal of CNC programming related information is free and readily available on the internet. Look for books by Peter Smid he has written a number of good books on CNC machining and programming. And it goes without saying I would recommend my book 7 Easy Steps to CNC Programming . . . A Beginner’s Guide to give you a very solid introduction to the CNC programming language and concepts.

  5. Hello. Can someone please tell me how I can learn cnc programming. I tried the vo-tech schools and none of them offer the program. I would even work as an apprentice but everyone is required to have so many years of experience to start. I can’t get the experience if no one will teach me. Please let me know how i can learn the trade to get some experience for employment. Thank you

  6. hi , i m planning to learn cnc programming so can anyone help me to get start from scratch. Tell me some topics which i have to learn first and then go for advance? ….and one more query while learning programming do i have to learn from g-codes or use cad/cam like G-wizard to make programme…

    • There are a few areas you need to know to be a good CNC programmer.
      speeds and feeds,
      and the CNC programming language.

      I have worked with CNC programmers that did not know machining and they did alright but to advance in their career they had to learn the the manufacturing side of things.

      Writing G&M code is definitely old school but can be really handy in small shops that can’t afford expensive CAD/CAM systems. Most companies of any size are using CAD/CAM of some variety whether it is BobCAD, MasterCAM, Unigraphics, SurfCAM, or even conversational programming on the machines.

      Some of the machine controls are well eqipped with conversational controls that will do a lot of the programming for you.

      I strongly believe that a good understanding of G&M codes is essential because that is the language the machines speak. CAD/CAM systems are really only translators that translate the CAD and machining process into the G&M codes via a post processor. If the post is not good or reliable, sometimes the only way to debug the program is to know G&M codes.

  7. Im a 20 year old cnc programmer with cnc milling certificate without experience because iv never got a chance to operate the machine,the thing is that when im searching for jobs they require me experience of 2 years or i want to know i can i get experience?what do i do to obtain experience? there lot of opotuniteis out there but these opotunities are made for people who already working,how about young people like me who a still developing but required to have experience while they still from school?

    • That has always been a tough cycle. Everyone wants experience but no one wants to train someone so they can get that experience.

      I would think at your age you might have some advantage. Very few people are chosing to go in the trades these days and companies need to hire a new generation of employees of they are going to make parts in the future. I have worked at a couple of large shops that expected 60% of thier seasoned workforce to retire with in 5 years of the time I was there.

      Some places are starting up appreteniceship and internship programs these days and working cooperatively with trade schools and local community colleges.

      I would start with a local college and see if they may be working with companies in the area, maybe they have an introductory program through which you could get some hands on experience. Also check with the larger manufacturing companies and see where and when they are having Job Fairs. Go in and present yourself and your credentials and see what they may have to offer in the way of internships/apprenticeships.

      Hang in there. You are in a good trade. Depending on the company a CNC machinist / CNC programmer can make $20-$45 per hour with benefits and overtime.

  8. Hey there I’m interested in becoming a cnc programmer in the future. I’d like to know what’s the first step I have to do? Is there any specific class in college I must take?

    • Hi Daniel.
      That is a good question. A little depends on your background and interests. CNC programming can be used to program woodworking machines, metal working machines, 3D printers, water cutting tables, lasers and so on. As far as specific classes, that depends on what is avalible in your community, your interests and skill level and local industry.

      So if you have a background in one of these area you are off to a better start because you understand how the CNC program relates to the finished product. Most CNC programming these days is accomplished through CAD/CAM programs such as MasterCAM, BobCAD/CAM, GibbsCAM Unigraphics, SurfCAM, to name but a few.

      The next step after deciding where you interest lies may be a) looking for schools offering classes in the CAD/CAM that is used most in you local area or in the area in which you would like to live or B) look for jobs offering on-the job training, however you see very few of these any more. (Different areas of the country seem to gravitate to different CAD/CAM software so knowing GibbsCAM may help you in one are of the country but not others)

      If you are working in a shop that uses CNC programming, go to you supervisors and ask what their requirements are for a CNC programmer and if they would help you move your career along that path. Similarly you could contact places you think you would like to work and see what their requirements are for their CNC programmers and then search for books or training programs to fill any gaps you have.

      If you are just wanting to learn CNC programming for your own shop or hobbies, I would start with books. There are a lot of them out there. Also, You-Tube is full of videos on the subject.

      Good luck. Don’t hesitate to ask additional questions.

  9. Very nice article and right to the point. Your write up is a great example. Thanks!

  10. Maybe you can write next articles referring to this article. I wish to read more things about it! Excellent post!

  11. What are the basic things that a student should aware of before learning the cnc programming…

    • Great question. Here are some things that someone new to CNC programming should learn and/or make themselves aware.

    • Computer controlled machines, particularly ones that remove material can be dangereous. So, a constant awareness of safety is always the first order of business.
    • CNC controlled machines do or at least try to do exactly what they are programmed to do, so double check your work before you hit the start button. You can save a lot of time, reduce scrap, have fewer crashes and break less tools.
    • Different materials cut differently. Some are free machining and cut fast and easy, others are hard or tough and require slower or less aggressive cutting strategys. So know the materials and keep a handy reference around to suggest speeds and feeds. Much of this can be found on the internet or if you are working in a shop, use your tool salesperson. The representatives from the tool companies (Kennametal, Iscar, etc.) are a wealth of information and have access to Application Engineers that know this stuff inside out.
    • Understand or rely on someone that knows how to set up machines. You should plan for the most rigid set up possible that allows access to the features you intend to machine. How you fixture and hold the part will determine how you machine it, the tools you use and the most practical speeds and feeds. You can’t create a very good CNC program with out knowing how you are going hold the part.
    • Spend a lot of time on the shop floor and make friends with the machinist/operators. They know the limitations of the machines and tools better than most and if you treat them with respect, they will help you.

      I am sure there are a lot of things I failed to mention and I invite anyone viewing this blog to add their comments.

By: davidhayden on October 7, 2015
at 7:54 am


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s



Get every new post delivered to your Inbox.

Join 392 other followers

%d bloggers like this: