it was 1963 in a electrical engineering course. it was a lecture or two on introduction to programming. the computer was a bendix g-15. magnetic drum memory - 20 tracks of 100 words of 29 bits. an instruction had a next-instruction-address field. optimization was to space instructions such that the next instruction was under the read head just as the last instruction finished execution.
now isnt that a total waste of neurons?
my first language was intercom, an interpreter for mere mortals on the G-15. i started coming in nights and soon progressed to assembly on the machine.
next weeks in the e.e. course was analog computing. i cheated and used the G-15 to time-scale the analog problems. that was the first "real" program that i wrote.
rather simultaneously, i sought out most available computers on campus. ibm 1620, ibm 1401, dec pdp-5, dec pdp-6, ibm 7090 and xds/sds 940. languages were assembly, fortran, algol, smalgol and neliac. i knew cobol enough to consult, but never programmed in it.
the magic words: mea culpa. a prank in a time of weakness. my only excuse - boredom.
My dad taught me to program when I was 5 or 6 (so 1985/1986). I'd always watched him program and was curious. He sat me down with a piece of paper at the dining room table and wrote a program on paper:
10 PRINT "HELLO"
20 GOTO 10
"What do you think that does?", he asked. "Print hello to the printer, forever?" "Well, no, it prints to the screen, not the printer. That would be LPRINT." "Why?" etc
The computer was a homemade, bootleg Apple ][, with the ROM burned onto faulty memory chips with bits stuck high or low that my dad had got from a company's trash. If you have enough faulty chips, eventually you'll find one where the faulty bits are stuck high or low in the right places. Still amuses me.
We later got a 386 and a family friend & neighbor gave me Turbo C a few years later and I enjoyed being able to control the mouse and do better graphics than I could in BASIC.
Early in high school took a worthless course using mark-sense cards programming BASIC on an HP minicomputer. Turnaround for jobs was three days*. I got fed up and taught myself FORTRAN using WATFOR on the UofT IBM/360; there was a public access room where you could run anything that fit on less than 2000 cards (one box) and consumed less than 3 seconds of total compile, link, run, and I/O spool CPU time. (It was about a 1MHz machine; work out what that means in terms of today's computer environment and understand why I bitch how slow everything is today.)
I took a single year of a PL/I course in university, then discovered Unix (it was a heavily hacked v5) and learned everything that mattered from the guys in that room (The Dynamic Graphics Project): Tom Duff, Bill Reeves, Mike Tilson, and so on. I owe it all to Ron Baecker seeing something in my enthusiasm and letting me in the door. We got to use the PDP-11/45 starting at 5PM every day. It had 2.2 megabytes of disk space for all of us to share.
* Bob Dewar once told me that he and Ken Belcher wrote SPITBOL with the same kind of turnaround to a remote batch machine, but of course in 360 assembly language. He is a much better programmer than me and did it in some remarkably few round trips. I wish I could remember the details.