Ask whether anyone still writes G-code by hand and you will hear two confident, opposite answers. Both are half right. CAM software generates essentially all long production programs, and machinists type code every single day. The resolution is that CAM changed which code gets hand-written, not whether.

Where does hand-written code survive?

Five places, and every shop has all five:

WhereWhat gets typedWhy not CAM
MDI during setupG54, spindle starts, single movesSeconds of typing vs minutes of posting
Machine-side editsFeeds, depths, offsets, missing chamfersThe program is already in the control
Simple parts10-20 block jobsFaster to type than model and post
Probing and macrosMeasurement routines, custom cyclesHand-written by nature
Post fixesCorrecting what the post-processor mangledCAM caused it; a human fixes it

The MDI row alone settles the question: every setup on a CNC machine involves manually typed blocks, which means every setter writes G-code daily without calling it programming. Some corners of the trade run almost entirely on machine-side code: Swiss-type lathe work is edited and synchronized at the control as a matter of routine.

Why is the simple part faster by hand?

Because the CAM round trip has fixed costs: model, toolpath, post, transfer, verify. For a square boss or a drilled plate, a fluent machinist types the dozen standard blocks in less time than the CAM seat takes to open. A concrete example: a fixture needs one extra dowel hole at lunch. The hand-coded version, safety block, G81 cycle, two positions, M30, runs before the CAM workstation finishes booting. Multiply that by every small job in a year and manual fluency is shop throughput, not nostalgia.

What about the code nobody chooses to write?

Some code is manual because nothing else produces it. Probing routines, tool-breakage checks, and custom canned cycles are macro programming, hand-written logic with variables and conditions of the kind walked through in CNC turning macro programming examples, and the machinists who own them are the most senior programmers in the building. Post-processor fixes are the involuntary version: a post that outputs the wrong tool-change sequence or an off-by-one offset call gets corrected line by line, by someone reading the output the way a program should be read.

What about programs older than the CAM seat?

There is a sixth survivor: legacy programs. Shops run proven programs that predate their current CAM system, sometimes by decades, and those programs earn their keep precisely because they are proven. Re-modeling a running job invites new errors for zero gain, so when a legacy program needs a tweak, a new tool number, a feed bump, a revised depth, the change is typed into the code directly. In plants with long product lives, maintaining this inherited code is a quiet, permanent duty, and it is pure manual work by definition.

Does the rise of AI change this?

It raises the stakes on the reading half. Generated code is multiplying, from CAM, from conversational systems, and now from language models, and none of it arrives trustworthy, the argument detailed in why ChatGPT G-code crashes machines. The machinist who composes code by hand reads generated code critically by reflex; the one who never wrote a block reads it like a tourist. Manual writing is how verification skill gets built, which is why training programs still assign hand-coded parts decades after CAM won production.

Should you still learn to write it?

Yes, scaled to your role. Operators need MDI confidence and small edits; setters add prove-out fixes; programmers add macros and posts, the ladder mapped in from CNC operator to programmer. The learning order question, whether code or conversational menus come first, has its own answer in conversational or G-code first, but no rung of the ladder skips manual literacy entirely.

Bottom line

Machinists still write G-code manually because the daily slice outside CAM never went away: MDI, edits, simple parts, macros, and post fixes. CAM owns the long programs; humans own the connective tissue and the verification. Build the vocabulary with recall drills on the G-code practice hub, then write small and often, because composing code is still the fastest teacher of reading it.

Sources

Frequently asked questions

Why do machinists still write G-code by hand?

Because daily work happens outside CAM: MDI blocks at setup, machine-side edits, quick one-off parts, probing and macro routines, and fixes to imperfect CAM posts. CAM owns long programs; the connective tissue is typed.

Is manual G-code programming obsolete?

Writing whole complex parts by hand is gone; manual code survives where it is faster or unavoidable, and the underlying reading fluency matters more than ever for verifying generated code.

Do CNC programmers write code or just use CAM?

Both: CAM for long toolpaths, hand-written frames around them, safety blocks, probing calls, and post fixes, with manual fluency speeding every diagnosis.

What is the best way to learn to write G-code by hand?

Read fluently first, then write small. A free app like G-Code Sprint drills the everyday codes and repeats whichever ones you miss; supervised MDI and ten-line parts turn vocabulary into composition.

G-Code Sprint is a study and practice tool only. Always follow your instructor, employer, machine manual, and shop safety procedures.