What is a CNC Programmer?

What Do They Do?

CNC Programmers develop programs to control machining or processing of metal or plastic parts by automatic machine tools, equipment, or systems. Students in the AJAC CNC Programmer Apprenticeship will learn to use CAD and CAM fundamentals to design for manufacturability (develop tooling). Students will gain a thorough understanding of the underlying manufacturing processes that are essential to developing a part program; they will know how to build a part and will understand the role of the CNC Programmer in a team and an organization.

CNC Programmers:

  • Establish manufacturing process for machining
  • Develop tooling
  • Create CNC code
  • Verify Numeric Code in a software platform
  • Develop set-up documentation utilizing various methods
  • Manage manufacturing data

How do I Become a CNC Programmer Apprentice?

This program is designed as a training for journey level Machinists. It has been structured as a 4,000 hour program for journey-level machinist graduates or those with a college certificate/degree.

For individuals with at least 5 years of proven machining experience, this is a 6,000 hour program to accommodate experienced Machinists achieving their journey level status through work experience but lacking formal academic preparation.

Based on subject matter experts and employer recommendations, the following is the candidate eligibility criteria:

  1. Apprenticeship Completion: Journey-Level Machinist. Automatically awarded first year course work (3 classes) and 2,000 OJT Hours.
  2. College Certificate or Degree + Industry Trained | 5 Years of Experience/Certificate or Degree: Up to 3 classes of the first year’s coursework and 2,000 OJT Hours.
  3. Industry Trained | 5+ Years of Proven Machining Experience: Required to complete all 9 RSI Classes and 6,000 OJT Hours.

RSI Class





College + Industry



APM 103 

Engineering Drawings



APM 122

Applied Geometry & Trigonometry



APM 201

Geometric Dimensioning & Tolerancing




CNC 201

CAD Fundamentals

CNC 202

Design for Manufacturability

CNC 203

Manufacturing Processes Related to Project Management


CNC 301

Basic Tool Path for Mill & Lathe

CNC 302

Multi Axis/Indexing

CNC 303

Advanced CNC Programming Techniques


What are the Benefits of Becoming a CNC Programmer?

A long-term career with a good salary, job advancement opportunities and the chance to work with your hands and cutting-edge technology.

Become a CNC Programmer through AJAC’s apprenticeship program. Get paid while learning on the job and attend classes only one night a week! To find out how you can become an apprentice and launch your career in aerospace or manufacturing, visit AJAC’s Get Started Section.

Related: Program Outline | Standards of Apprenticeship

On-the-Job Training Competencies:

OJT Competency

Approximate OJT Hours

Establish Manufacturing Process


Develop Tooling


Create CNC/NC Code


Verify Numeric Code


Develop Set-Up Documentation


Manage Manufacturing Data


Provide Customer Service




CNC Programmer Apprentices Will Take the Following Classes:

  • Technical Drawings, GD & T and Precision Fits: Engineering drawings, geometric dimensioning, theory and application of standard tolerances
  • Shop Algebra, Applied Geometry and Trigonometry: Perimeters, areas, volume, trigonometric ratios, algebraic processes relating to manufacturing
  • CAD Fundamentals & Design for Manufacturability: Foundational CAD skills such as data management, validation, drawing arts and tooling that are essential for CNC Programmers. Work-holding solutions for each manufacturing sequence, develop jigs to aid manufacturing process, establish 3D data sets for each work-holding sequence, create bill of materials lists, design custom cutting tools, create set-up documentation etc.
  • Manufacturing Process Related to Project Management: Confirming customer requirements, defining manufacturing sequences, performing risk assessments to identify manufacturing issues, selecting tools, and documentation
  • Basic Tool Path for Mill & Lathe: Use 2D and 3D CAD to create basic tool paths for both mills and lathes. Apprentices will create and verify CNC code, develop set-up documentation, and verify manufacturing data meets current engineering revisions.
  • Multi Axis/Indexing: Create basic macro programs, sub programs, sub-routine programs and 3 + 12 axis programming Multi-axis CAM tool paths for mills and lathes and indexing. Apprentices will create CNC code, verify CNC code, and develop set-up documentation for more advanced machines and projects.
  • Advanced CNC Programming Techniques: How to choose the specific tooling for the job based off the complex material being used, and create tool list documentation procedures. They will calculate cycle times and record cycle times, to understand job scope.

Now Accepting Applications for Spring 2021!

Apply Today!