Back when I was at the cult compound in Kalona, Iowa, I taught myself programming. The BASIC language, to be specific. For the TRS-80 (always and forever and affectionately known as the "Trash-80").
At first I didn't even have a computer available to work with, but somehow I fell in love with programming nonetheless. Late into the night I would pour through my beginner's tutorial book, memorizing every detail and writing out programs that I had no way to run. Sometimes I would get a chance at a store to find a computer and enter little programs to print my name on the screen in an infinite loop. Perhaps everyone's first programming experience back in the day?
One night I came across this line of code in my book:
REM Draw a circle
I was furious. For weeks I'd been stressing over the math and intricate coding crap to place pixels on the screen one by one and all I really needed to do was just say "draw a circle"? Everything I'd been learning had been a useless lie, and apparently no actual skill was required. It was a betrayal by the authors. I slammed the book shut and went to bed angry.
The next night I read further in the chapter and leaned what a code comment was, and that REM stood for "remark" and that all the intricate crap was in fact still required. Ah, okay, learn something new every day.
(I guess young me would be disturbed to learn that decades later we are actually a point where you can say “draw a circle” and it will happen…)
After a while I got access to a TRS-80 someone had available at the cult compound. But I could only use it during the day and when not busy with classes or work, so I continued my late-night reading and then applied what I'd learned in short bursts when I could get on the computer.
My first attempt at programming something useful was for the cult's snack bar in the Shiloh compound. I worked at the snack bar (my first real job?), which was called Harvey's Barn in honor of an old codger in the church who had a decrepit moldy half-collapsed red barn on his property that seemed like it had been there since the beginning of time.
Aside from wanting to be helpful and earn a bit of money, I worked there to be close to Trish, a hippy-dippy chick who wore flowing dresses and was all spiritual and whom I, um, liked. She had a boyfriend, I was barely through puberty, and she was ten years older than me. So the perfect recipe for a really intense hopeless crush, the best kind.
The snack bar was a health disaster. When I'd open the door and turn on the lights in the morning, thousands of cockroaches would scritch and scramble across the floor. Some would be caught in the sink and I'd have to clear them out.
Harvey's had some problem with their receipts, which for some reason had amounts that were all out of whack and they needed to get the books cleaned up (as I recall, a clueless person who didn't know how to use the cash register added two zeroes to everything she rang up). So I offered to write a program that would take the receipt information and figure things out.
Financial software written by a clueless 14 year old as his first real program. Yes that was going to work out well. While I loved working on it and it turned my brain on in new intense ways I hadn't experienced before, it turned out I was not that kind of software prodigy you read about. I wrote a piece of crap that didn't work.
Same thing happened later at Bellevue High School in Washington, where I wrote some student-tracking software for a teacher. I had no idea about testing or anything, so I just wrote something and gave it to him when I thought it was ready. One day I was in gym class when I was pulled out by the freaked out teacher; he'd had a student entering information into my program and it went into an infinite loop, could I fix it? Nope. All data entered was lost.
Fast forward to my days in hospital billing. I wanted to get back into programming, but this time real programming not the kiddie BASIC stuff. That meant becoming a C programmer.
C was a much lower level language than BASIC, requiring the programmer to deal with many more intricate details. It had "pointers" and memory management and other things that scared me.
But I really wanted to learn it. I wanted to be a real programmer.
Problem was, not being on a University's computer system, my only access to a C compiler was buying one for something like $200, an amount that was far outside my resources. (Anyone with a browser installed has programming tools for free that would have cost me thousands back then…)
Then one day on a Friday my partner and I were browsing a local book store and I found a C tutorial book with a CD-ROM included that provided a compiler. It wouldn't let you create a binary that you could distribute, but you could compile and run programs for learning purposes.
My partner was upset that I had found this. We were heading into the weekend and he knew that I was going to be doing one of my 24/7 obsessions where I didn't sleep and wasn't emotionally present while I did a deep-dive into this.
He was completely right, of course.
Except that I failed. I tried working my way through the tutorial and got nowhere. I just didn't understand these pointers and pointers to pointers and dereferencing and all this. The teaching animations in the interactive tutorial on the CD were meaningless to me. By Sunday I sat in front of our computer in tears, defeated.
I wasn't going to become a real programmer after all.
A while later, acutely aware of my lack of education and not wanting to be in hospital billing forever, I decided to take some cheap classes at the local City College to improve myself. One of the classes available was C programming. I knew I couldn't hack it...but I swallowed my pride and signed up.
Learning programming from an instructor was a completely different experience. I was forced to focus on topics that were uncomfortable for me, that I'd always just skipped when teaching myself. Linked lists. The dreaded pointers. Creating programs that actually had to work for me to pass.
I am at my best when I'm afraid to fail. While in High School I hadn't been too challenged and hadn't cared and had done just okay, when it came to college classes I was terrified that I'd fail, so I went into full obsession mode on each of them (programming, astronomy, writing), much to the annoyance of my partner.
But when we got to the Final for the programming class, I looked at the test in horror. The last half of the test was one long page of 25 questions. Each question relied on the answer to the previous question. That is, if I got question #3 wrong, the next 22 questions would be wrong.
And every single question on that page was about pointers, pointers to pointers, dereferencing pointers...my heart sank.
I was pre-defeated. I worked through them all with a hollow mechanical approach. After the test was over I called my partner and told him I'd failed the class. Nothing else was conceivable.
Two weeks later I got the test results. I'd gotten every single question correct.
I remain infinitely thankful to that instructor, and to the availability of cheap education.
This was the first step toward an unexpected and amazing career.