In 1972, I wrote a tiny program in machine language for an IBM 1620. It was a decimal machine (sort of: see below) with 12 digit instructions and 40000 digits of memory. I punched the program onto cards. The program read a punched card, added two numbers on the card, and punched a card with the result.
The machine had a disk operating system, a macro assembler, a Fortran II compiler, and a useful set of file manipulation programs. You could enter commands from a teletype machine. We had a washing machine sized disk drive and a line printer.
We were required to start at the bottom with machine language so we knew what was really happening. The instructor introduced addressing, conditional branches, loops, subroutines, etc before we were allowed to use Fortran. He then convinced us, not rigorously, that it was at least possible for a computer to parse, translate, and compile. Only then were we allowed to use Fortran.
I left home at 6AM to ride the New York City subways to school, arriving one hour before first class so I could learn assembly language from a manual I found in the closet. I struggled to write programs that were too advanced for me. When I eventually learned a technique, I had been primed with a problem that required it.
For every type of computer I have ever programmed, I programmed it first in assembly language. I retired when this stopped being practical,
http://tincansandstring.net/co...
(Footnote) The hardware actually used 8 bit bytes. Six bits represented the usual characters, and the remaining 2 bits per byte where used for special purposes.
--
Hi to all my friends at NSA.