I was an Enlisted AF computer programmer my whole 21 years. Air Force Specialty Codes 511x1, 491x1, 3C0x2, in that order.
(Multiple specialty codes because AFPC and the career field management team kept playing reindeer games with career field structure. The “x” is the skill level, from 1 (untrained) to 9 (manager/technical leader)).
Yes, we enlisted punks did program. We were doing work that would have cost the DoD 3 times as much to contract out, largely because leadership could order us to do stupid self-destructive things to meet schedule and budget and we’d be obligated to obey or go to prison for disobeying a lawful order. (Ask me about the summer of 1995, which consisted of 100 hour weeks for an entire 3 1/2 months, because our commander boasted to his boss about software which didn’t even exist… and we had to make the software exist before the demonstration he promised for September. :eek:)
1-level newbies went to technical school, where they learned the fundamentals of computers and computer programming. As much as you can in 6 weeks, anyway.
Pass tech school, and you’re a 3-level.
The 3-level, “apprentice” programmer was then assigned to his first unit and usually did trivial code-monkey stuff under the watchful eye of an NCO supervisor. In my early career, a setting like OP, the kid (an Airman First Class, for instance) would try writing a few lines of code to satisfy a small part of the flowchart. (Write, on a coding form.) Then the coding form would be reviewed by his supervisor, and if it passed muster, the kid would get to punch his stuff on cards and merge it with the rest of the supervisor’s deck.
Sometimes the apprenticeship was also being the keypunch monkey for the supervisor’s entire team. A form of “paying your dues”, and you get to see other programmers’ code as you poked it into the IBM 026.
You learn, you pass tests, you undergo a formal OJT process (like a correspondence course) along with the informal OJT, and you get certified as a 5-level Journeyman. You’re now skilled enough to be promoted into the NCO ranks. (That happens separately, using different test. One test is for your technical specialty, so your OJT is helpful for that, but the other test is general military/enlisted knowledge.)
Having your 5-level doesn’t guarantee your promotion. But not having it when you should guarantees you can’t be promoted. You can test, but they’ll hold the promotion and press your leadership to get you skill certified. (Try explaining to your commander why you’re too busy to get your formal OJT done. :eek:)
Now you’re an NCO. You’re Sergeant So-and-so. You get to supervise and train your own pack of snot-nosed airmen. You also get to design the flow of the software, some of the low-level architecture, and write a lot of the code. Plus testing, and quality, and paperwork, and being responsible to the rest of the organization for your code.
Do more OJT (technical and military leadership), plus some in-residence formal schools, and you can be certified as a 7-level Craftsman programmer. Now you can be promoted to an upper-tier NCO grade (E-6 Technical Sergeant or maybe eventually E-7 Master Sergeant) and supervise a large team, owning lots of the design and implementation space for a large project… plus budgets and schedule. Software development management plus system analysis/architecture/engineering. Drawing a salary and benefits less than half what you’d command as a civilian.
They you retire. At least, I did, as a Master Sergeant. I supervised a shop of about 20 folks, with both coding responsibilities and server management/sys admin responsibilities.
And that’s a microcosm of what happened to Enlisted Air Force computer programming. They added other responsibilities to the career field (like system administration, or network administration, etc.), then turned the actual software development over to contractors, then converted the entire career field into the other jobs they added (like 3Dxxx Cyberspace Support) or into subject-matter specific operations jobs (like 1Cxxx Command and Control Operations).
As far as “write code out longhand, punch it, etc.”, that was pretty much done in my neck of the woods by the early 1980s, but a lot of the practices remained (such as designing in paper flowcharts and coding on paper for review before sitting down at a terminal and entering your code on-line using a text editor).