1. Write out your program on paper.
  2. Punch your program onto cards, one card per line, using a machine called a keypunch, the size of a desk.
  3. Correct any typos by inserting a card into a read slot in the keypunch, duplicating it onto a new card up to the typo, typing the correct char, and then duplicating the rest of the line.
  4. If a card is damaged it may jam in the keypunch. Use a card saw (like a hacksaw blade) to pry it out in pieces.
  5. Add job control cards before and after your program to tell the computer how to compile and run it and what files it will read and write. When creating a new file, specify a few parameters:
    1. name
    1. volume it will go in (like a partition)
    2. whether to catalog it (so future users don't need to know the partition)
    3. is the file new or existing?
    4. disposition when the job finishes, e.g., keep or delete
    5. disposition if the job ends abnormally
    6. type of units of storage to allocate, e.g., cylinder or track
    7. number of those units
    8. number more to allocate whenever more space is needed
    9. whether to keep or release any extra storage at the end
    10. format of records in the file, e.g., fixed or variable length
    11. if fixed, the record length
    12. how the records are grouped into blocks
    Most of the above are required and do not have useful defaults. Example:
    //SYSUT2 DD DSN=MYFILE,DISP=(NEW,KEEP,DELETE),
    // SPACE=(CYL,(5,1),RLSE),RECFM=(FB,80,3200)
  6. Use a magic marker to draw a diagonal line across the top edge of the card desk to aid in sorting the cards if you drop them.
  7. Read the card deck into the computer.
  8. Wait for it to print out the result on 15" wide fanfold paper.
  9. Examine the output. Add lines to your program by punching new cards and inserting them into the deck.
  10. Repeat.