How Do I Become a CNC Machinist or Programmer?


If you like making stuff, computers, and challenging work, you might really enjoy being a CNC machinist. It’s what I’ve done for 12 years and I thoroughly enjoy it. I also was on the board of advisors for the local college’s machine shop program, so I can share a bit of what I know about how to get your foot solidly in the door.

I’ll be straight with you: most of the resources out there that explain what a CNC machinist is are super outdated.

For example, if you see something that tells you that a “CNC programmer reads tapes and selects feeds and speeds for operations”… Tapes were used in the 70’s, and now feeds and speeds are often automatically set. Sorry if you had your heart set on becoming a professional “selector”.

To become a CNC machinist, there are a few routes you could take. Some will get you there faster than others. You could start by taking machining as an elective in high school. You could learn it in college. You could upgrade from a career as a manual machinist. You could get a job as a shop hand and work your way up.

The “fake it ’till you make it” method can also work well in some cases.

CNC machining today is extremely advanced, challenging, and a whole lot of fun.

What is a CNC Machine?

Might as well start with understanding what you’ll be working with. A CNC machine is a computer controlled beast that screams, roars, and thunders as it rips away metals like aluminum, steel and titanium with shocking precision. Like I said, super fun.

A large 5-axis mill (left) and a twin-spindle, 3-turret lathe (right)

There are all kinds of CNC machines. Mills, lathes, grinders, EDMs, robotic machining cells, along with the lovechilds: Turn-mills, mill-turns, multitaskers, any kind of devious combination that gets manufactured components out the door faster. Some machines have cutting tools hanging out in every imaginable direction and can process multiple parts at once. Some look terrifyingly wonderful.

Don’t worry about those complicated machines when you’re just starting out, though. You’ll probably start off with the simpler machines, like a basic mill or lathe.

The point here is that once you learn the basics, you don’t have to worry about getting bored. These machines are just too awesome for that.

What’s the Difference Between a CNC Machinist and a CNC Programmer?

Honestly, there’s not much of a difference between a CNC machinist and a CNC programmer at most companies. Technically, a CNC programmer is expected to primarily program the machines, whereas the machinist will likely be more involved in all the tasks, including programming, setup and operation.

Tomato, potato. Most places don’t really distinguish between a “CNC machinist” and a”CNC programmer”.

Don’t get too hung up on terms and just make sure you understand what the employer expects.

There are a few jobs out there for CNC programmers that will just have you working in an office without getting your hands dirty. These jobs are few and far between, though, and you really won’t learn to be all that great if you’re never on the shop floor. In order to be the best at what you do, you need to understand how the whole process works intimately.

If the idea of getting your hands dirty makes you feel lightheaded, then close this tab right now and take a breather. But if you’re like me and are entirely satisfied with going up to your armpits in cutting fluid if need be, then you just might have found what you’ve been looking for.

How Are These Machines Programmed?

CNC machines can be programmed several different ways, depending on how they’re made. The programs are created or processed by the machine controller, which then directs the machine so it can perform the requested operations.

Controllers will vary by manufacturer, but they’re basically all just a box or panel with a screen and a bunch of buttons that do things.

One of these ways of programming is through something called “conversational programming”.

Here’s how it works:

The programmer will pick out an appropriate operation from a list on the machine controller (there you go, professional selectioner). Then he’ll match it up with an appropriate tool, along with the cutting parameters. Then he’ll manually punch in the specific information required to define the motions that tool needs to make in order to machine the features that are planned for this operation.

All of this is manually entered into the machine, and it’s a great way to make simple programs quickly. For example, drilling a series of holes in a part, turning a profile in a lathe, or milling a basic pocket.

There are a few types of machines that can work conversationally to one extent or another. For example, Hurco, Haas, Nakamura, Fagor and Milltronics all have some kind of user interface that create programs by punching in data without really needing to code very much. These are great machines for repair shops or machine shops that produce simpler parts. However, they can also be programmed in another way that allows for much more complexity.

G-code is the most common CNC programming language. This is an example of what it can look like. It’s very numbery.

G-code programming is the most common way of programming CNC machines. Essentially, a number of programming blocks, or commands, are placed inside a carefully thought out program. These programs can be written either by hand or with the use of a computer.

Generally, it’s only very simple programs that are written by hand. Complex shapes and toolpaths are programmed with the use of a computer and special software. I’d highly recommended for all CNC programmers to be familiar with both systems.

Ultimately, the most common way to program these machines is by using Computer Aided Manufacturing (CAM) software. This will let you work with a 3D model of the part. You’ll create paths for the tool (the technical term for this is “toolpaths”) so that the machine can carve away a block or blob of material into something absolutely beautiful.

There are many different kinds of CAM software, but common ones to see in schools are Fusion360, Mastercam, and Gibbscam. At the end of the day, what you learn on one CAM system is fairly straightforward to transfer to another.

Is Manual CNC Programming Practical?

Since most programming is done with computer software, some people wonder if knowing how to manually code is a worthwhile skill.

It most definitely is. Understanding CNC code will enable you to debug issues that could come up if your programming software isn’t communicating properly with the machine controller. If you don’t have a really good understanding how G-code and machine functions work, you’ll be severely limited in your ability to problem solve.

The bottom line is that you should understand the concepts, and it’s definitely an asset to be able to code by hand. For most of us, though, we don’t program manually on a regular basis. We’ve got fancy software that’s far too expensive for us to be spending our time clicking numbers into a machine.

How Hard is CNC Programming?

Really, it depends on the kind of parts that you’re being asked to make. Some parts are so simple and basic that a computer can nearly program the toolpaths automatically. All the programmer needs to do is check that everything looks good before it goes to the machine.

Honestly, though, there aren’t many programmers that get away with doing that little work. Because offshore manufacturing is so popular, manufacturing facilities in places like the US, UK and Canada often stick to very technical and challenging parts.

Some programs can take weeks or even months to finish. This can be especially intensive on multitasking and multiaxis machines, or if you’re setting up multiple machines to run fully automated in a robotic cell. In terms of challenge, the sky’s the limit!

What Are the Prerequisites to Become a CNC Programmer or Machinist?

In terms of education, most colleges that teach CNC machining will expect you to have a high school diploma or GED. Sometimes they’ll offer evening courses that directly teach CNC programming, but unless you have a good knowledge of machining, you’ll probably be totally lost.

The best way to approach CNC programming is to learn the basics of machining first. For many people, this means starting with manual machining for a time. This isn’t a mandatory prerequisite, but it can give you a great foundation.

Whether you’re learning the basics of machining with a manual machine or a CNC, make sure that you understand principles like machining forces, feeds and speeds, tool load, chip thinning, blueprint reading, geometric dimensioning and tolerancing (GD&T), fixture design and precision measuring to name a few.

If you don’t learn these fundamentals first, you’re going to have a tough time keeping your head above water once you’re on the job.

Where Can I Learn CNC Programming?

There are several routes to becoming a CNC programmer. You could take a precision machining course at a community college or at a vocational high school. There are also some apprenticeship programs out there.

I learned to program on the job. I was hired on with an aerospace manufacturer after learning manual machining at high school. We were using some older CNC machines to make fixturing for production machining. I had a total blast.

An old Russian guy named Vlad gave me an old textbook and taught me how to program. I learned how to punch everything in manually along with how to proofread and troubleshoot. Later on, when I went to college, I got to fill in any gaps in my programming knowledge.

If you can study half as intently as this dude, you’ll be just fine.

The most straightforward way to learn CNC program is with a college course that will teach you after at least a year of learning manual machining. This will let you get a great grasp of the basics before moving on to what interests you.

If you’re trying to pick a school, one of the best things you can do is try and find some of the people that graduated from the program. The teachers can probably put you in touch with them. Ask them what they thought of the program and what they’re doing now. This will give you an idea of what to expect.

There are also some decent online options that can teach you the basics, but it’s best if you already have a good knowledge of machining. At the end of the day, though, you won’t know how to set up and run a machine until you set up and run a machine. The online lessons are just a good way to pick up some things when you’re able to apply them at work.

If the online course interests you, I’ve found a great one. This makes sense more so if you’re already exposed to machining. For example, maybe you’re an operator that wants to learn to edit code without blowing things up. Or maybe you’re a hobbyist and you’ve built a home made router running Mach 3. Or maybe you’re a manual machinist and want to give the CNC world a go.

If you fit into those categories, I’d really recommend that you take a look at G-Code Tutor. You can definitely patch together a bunch of answers from the internet, but this is a targeted set of courses that will teach you the basics of coding. If you understand the basics of machining and want to get your foot in the door with programming, this is really worth the investment.

If you can get yourself through a CNC machining program and then keep pushing yourself to learn, then you’ll be in a really great spot. Google is your friend, especially when it takes you to this website 😉 . Try to soak up as much as you can from your coworkers with some experience.

The best thing that you can find is an employer that’s willing to invest in you. If they want you to get good, they’ll send you out for training that will really let you kill it on the floor.

How Much Does CNC Machining Pay?

Obviously, this varies based on where you live and what kind of CNC machining you’re doing. I personally find the resources currently on the internet to be a little out of whack, since they don’t quite understand the different types of work that’s out there.

Let’s assume that you’re not working in a big city, where McDonald’s employees can make $25/hour starting wage. Since I used to be a shop manager in Winnipeg, MB, Canada, which is a lower-cost city, I’ll share what I know about the job market there, and you can use that as an order of magnitude. You might make more, you might make less.

If you graduated from a CNC machining course, don’t expect to be rolling in it just yet. It’s not uncommon to start around $15-18/hour. But you can expect to be doing much better in the 5-10 year range, once you’ve built up some good experience and can get things done without needing much help. It depends on how hard you push yourself, though.

For example, you might keep your CNC expertise to a very basic level. Maybe all you do all day is drill holes in plates on a simple machine. Some people love having more repetitive jobs like this. Just don’t expect it to pay all that great. For a lot of places, you might eventually cap out at around $20-25/hour.

If this is what you’re going for, there are faster ways to get it than CNC machining. That said, this can earn a good, steady income for the people that work hard for it.

Or maybe you’re working in a job shop. The machines aren’t usually overly complicated, but still pretty challenging, the work is extremely varied and you need to be a really good problem solver to get the parts out the door. You might cap out at around $30/hour.

Or maybe you really decide to go all out. You start learning the multitasking and multiaxis machines, and you work on some really high-end parts. Maybe parts for aerospace, medical, or high performance racing. To get here, you’ll need to push yourself. You’ll probably need to have an employer that will pay for extra training, since this isn’t the stuff that’s usually picked up in a basic course in a community college. You might cap out at $35/hour.

Of course, all of this depends on where you live. In higher-paying areas, like Toronto, California, etc., you could be making $50/hour or more.

After enough years on the job, you could also find other ways to boost your salary. For me, it was a matter of becoming a job planner and shop manager. Maybe you’ll work out a different route.

Ultimately, do your homework to see what people are making in your area. Sometimes colleges will ask their alumni how much they’re making once they’re hired and publish their information anonymously. This can be a really handy resource if it’s available.

How Can I Become the World’s Best CNC Machinist?

Ok, now sit down, son, ‘cuz I’mma give you some career advice.

CNC machining courses will get your foot in the door. You won’t be a pro because you did a little bit of extra school, and there is a lot of stuff to learn in this trade. You can literally be born on a filthy shop floor and stay there until your last crusty dying breath and still not come close to learning everything about CNC machining.

In other words, expect that you’ll need to spend some time staying current and picking up new tricks. For me, this meant spending my breaks and lunches reading through machining magazines and looking up stuff online that could help me work smarter. Technology is steadily changing, so you can expect that you’ll need to do your homework to stay up to date.

The bottom line is that you’re going to need to keep learning. Whether you’re doing this from other guys you work with, from your company sending you out for additional training, or from you doing a ton of extra reading, it’s all up to you. Personally, I’d recommend doing all of those things.

You can expect to never get bored with this career. If you find that your job is getting old and repetitious, just move on to another company. You’ll soon realize that you’re no longer an expert, and you’ll be better for it.

What Kind of Parts Can I Make as a CNC Machinist?

Ok, now here’s some fun stuff. Generally, as a CNC machinist, you’ll be making components for some kind of mechanical system or machine.

For example, I’ve made a ton of aerospace parts. Things like landing gear components, engine brackets, wing spars, you name it. I’ve also made satellite parts for science experiments in orbit.

I’ve made medical parts, like instruments and orthopedic implants. For example, hip and knee replacements, spine implants, wrist implants, and surgical tools.

Agricultural and industrial parts, like drive shafts, hydraulic attachments, manifolds, couplings, etc. I made Farmer Joe a new planetary gear when his tractor broke down in the middle of the field during harvest season.

I’ve made mining equipment, like rock crushing jaws and drill heads. And energy sector components, like 4′ pipe isolation and repair kits. And marine components, like underwater couplings.

You get the idea. We make some pretty cool stuff.

Here are a few pics of what a bunch of guys have made during their career as CNC machinists:

A lead screw for a custom plastic injection machine
I have no clue what this actually is. This is one of the downsides of the job; customers don’t always want to tell you what you’re making.
A custom bracket to hold a hydraulic cylinder securely at a precise angle.
Sometimes you’re not just making individual components; you might be asked to make an entire assembly.

More shiny, precise metal stuff. You get the idea.

How Hard Can CNC Programming Be?

Working as a CNC machinist can be as hard as you want it to be. If you can’t do basic trigonometry or algebra, this probably isn’t the job for you. But if you like numbers and physics, the sky’s the limit.

Some manufacturing processes are so challenging that there’s no way you’d be able to figure them out by yourself. At one aerospace company that I worked at, we had a team of 4 people working on producing a massive airplane part for a year and a half before we were able to work out all the challenges and produce acceptable parts.

Some parts will take you an hour to finish before you can ship them.

If this is the kind of stuff that interests you, then go for it.

Jonathan Maes

I've been working in manufacturing and repair for the past 14 years. My specialty is machining. I've managed a machine shop with multiaxis CNC machines for aerospace and medical prototyping and contract manufacturing. I also have done a lot of welding/fabrication, along with special processes. Now I run a consulting company to help others solve manufacturing problems.

Recent Posts