Programista maszyn jest odpowiedzialny za tworzenie zaprogramowanych instrukcji, które sterują zautomatyzowanymi urządzeniami w środowisku produkcyjnym lub innym środowisku przemysłowym. Na przykład technologia komputerowego sterowania numerycznego (CNC) jest wysoce skutecznym rozwiązaniem w sektorze przemysłowym, ale wymaga wykwalifikowanego operatora, który wprowadza wskazówki, które mówią maszynom, jak mają się zachowywać. To jest zadanie programisty maszyn. Technologia CNC jest zaangażowana w wiele karier programistów maszyn, chociaż istnieją inne technologie, które również wymagają umiejętności programisty maszyn. Podstawową umiejętnością programistów maszyn jest ich umiejętność czytania, pisania i rozumienia języków programowania używanych przez maszyny sterowane CNC.
G-Code to dominujący język programowania używany przez programistów maszyn. Polecenia w G-Code i większości innych języków używanych przez programistę maszyn zawierają składnię bardzo niskiego poziomu, co oznacza, że nie przypominają angielskiego ani innych języków używanych do komunikacji międzyludzkiej. Dlatego programista maszyn demonstruje kompetencje, rozumiejąc, w jaki sposób te polecenia odnoszą się do rzeczywistych procesów wykonywanych przez maszynę. Rozumie również naturę zadań fizycznych, o których wykonanie jest proszona maszyna poprzez programowanie. Zadania te mogą obejmować takie rzeczy, jak nacinanie gwintów na metalowych powierzchniach lub wiercenie w materiale.
Zadaniem programistów maszyn jest zaprojektowanie kodu, który umożliwia maszynie wykonanie zadania produkcyjnego wiele tysięcy razy. Dlatego ważne jest, aby programy, które piszą, powodowały, że praca maszyny mieściła się w bardzo wąskich parametrach jakościowych, zapewniając, że proces nie spowoduje powstania wadliwych produktów. Praca programisty maszyn ma zatem bardzo istotny wpływ na jakość całego procesu przemysłowego.
Maszyny CNC są w stanie wykonywać zadania, które byłyby niezwykle trudne dla ludzi do wykonania w kółko z precyzją. Niektóre zadania, jak np. nacinanie gwintów w śrubach, od wielu lat są w pewnym stopniu zautomatyzowane, jednak zastosowanie nowoczesnych, zaprogramowanych maszyn pozwala na jeszcze większy stopień automatyzacji, a tym samym większą wydajność. Zaprogramowana maszyna jest w stanie wyciąć linię prostą lub wywiercić otwór z dokładnością nieosiągalną ludzką pracą.
Mimo że automatyzacja przemysłu doprowadziła do wyeliminowania pracy fizycznej, maszyny nie mogą same się programować bez udziału człowieka. Kariera programisty maszynowego zależy od tego niezbędnego połączenia między mechaniczną wydajnością a ludzkim kierownictwem. Ta kariera wydaje się mieć długofalowy potencjał, pod warunkiem, że programista maszyn będzie w stanie nadążyć za postępującą technologią.