Even when programming in "high-level" languages (aka FORTRAN IV), input devices could be quite rudimentary. As an after-school activity, I got to punch code using an [IBM Port-A-Punch](https://www.ibm.com/ibm/history/exhibits/specialprod2/specialprod2_5.html), which was simply a plastic frame holding a pre-perforated 80-column card, with a stylus that you used to push out the chads to write statements in IBM card code. Though the cards were 80-column format, they only had 40 usable columns -- I can't now recall whether it was the even or odd columns. This meant that every other column was effectively a space character, i.e., no holes punched. For FORTRAN code that doesn't matter since spaces are ignored, except in Hollerith constants, so you doubled up the count. Actually, we only had one actual Port-A-Punch to share between a half-dozen nerds, so I made my own: straighted-out paperclip expoxied into an old [BIC](https://en.wikipedia.org/wiki/Bic_Cristal) barrel, polystyrene (styrofoam) backing pad. Totally crap, but totally available. Programs were submitted by post office mail to be run on a [7094](https://en.wikipedia.org/wiki/IBM_7090#IBM_7094) under [IBSYS](http://frobenius.com/ibsys.htm) using the [PUFFT](https://dl.acm.org/citation.cfm?id=365671) compiler. Half-a-week later you learned of your mismatched parentheses. Kids today and their IDEs - huh! :-)