Like most folks who started programming in the 70's and 80's, I began on mainframes. It was years before I programmed a desktop computer.
And while I strive to avoid damn-kids-get-off-my-lawn graybeard ramblings, I'll sometimes get this question from a brash young whippersnapper trying to understand what pre-PC era programming was like:
Back in your first programming job, what kind of computer was on your desk?
In my first programming job, I didn't have a computer on my desk.
My desk - like those of my co-workers - was device free. The nearest we had to a personal computing device was an LCD calculator.
Not only didn't I have a computer on my desk, there wasn't one in the entire office, or even in the same building. We were programming a mainframe that was about five miles along the road.
Instead, imagine a stack of these on my desk:
This is an IBM coding sheet, for COBOL. We had them for other languages, too: Pascal, Assembly language, Fortran.
You'd use these to hand-write your computer programs. In pencil.
Because this was the dizzying heights of "undo" technology:
And when you were finished handwriting a section of code - perhaps a full program, perhaps a subroutine - you'd gather these sheets together (carefully numbered in sequence, of course) and send them along to the folks in the data entry department.
They'd type it in.
And the next day you'd get a report to find out if it compiled or not.
Let me say that again: the next day you could find out if your code compiled or not.
If you'd made even a simple typo - say, a missing period, or something that looked more like a colon than a semicolon - it'd take at least another 24 hours to get a fix in and turn it around.
This method, as you might imagine, requires a somewhat higher level of attentiveness to writing code than the way most of us work now.
I wouldn't want to work like this again, but I'm glad I have worked like this.
And though it may seem primitive now, several of the programmers I worked with at the time viewed that state of affairs as programmer-friendly, if indeed not simplistic.
They'd been used to working with punch cards, something I only ever did a handful of times.
I'll admit that even at the time (early 80's) this was a little - though not much - behind the times. I was working for the British Government, not some new-fangled highly-funded tech company. You use what you can get.
A year or two into this, we were finally upgraded. Amidst much rejoicing, we were provided a handful of IBM 3270 dumb terminals - monochrome devices, with the classic IBM Model M clicky keyboard.
Imagine the sensation - type your own code in? Compile a program yourself? How marvelous! What an age we lived in!