DEV Community

Cover image for The Accidental Programmer
Adam Schmideg
Adam Schmideg

Posted on

The Accidental Programmer

Many years ago, I discovered programming in an unusual way. This is the story of how I became a programmer, first a hobbyist, then a professional.

The quiet linguist

A friend once walked into my room and saw me poring over a book. "What are you reading?" she asked, peering over my shoulder.

"It's a French grammar book," I replied, turning a page filled with explanations of verb tenses (le passé composé and l'imparfait in case you want to know).

She raised an eyebrow in surprise. "So, you're learning French?" she asked.

"No," I answered with a small smile, "I'm not really learning to speak it. I just like understanding how it's structured, how it works.

My friend looked puzzled as I explained further. "Actually, I've read quite a few grammar books - Italian, German, even Latin." I gestured towards a stack of books on my desk, each one a testament to my unusual hobby.

"But how's your French then?" she inquired, still trying to piece it together.

"It's pretty basic," I admitted. "And my Italian isn't much better. As for Latin, I don't speak it at all. I'm not really focused on speaking these languages. I'm more fascinated by how they're put together, the rules and patterns behind them."

After the French grammar book, my curiosity led me to something entirely different yet strangely similar. I picked up an introduction to programming in Basic. Then a reference manual for the Pascal language. It was an odd choice, given that I didn't own a computer and wasn't planning on getting one anytime soon. Just like with the languages, my interest wasn't in actually writing any code. I was fascinated by the underlying structure, the logic and rules that made these programming languages tick.

Bets and bytes

At this time in my life, betting on football games was a big deal for me and my friend. We used to spend lots of time looking at papers, talking about which teams might win. We looked at how the teams were doing, their past games, and how their best players were playing. We thought about all of this carefully and wrote down what we decided.

Every next morning, we would meet up with our notes ready. We had lots of betting papers in front of us. I would take a pen and put an 'X' in the boxes that matched our choices. The process was tedious, repetitive, and required precision. Doing this over and over was boring. But we did it because we really wanted to win our bets.

My tolerance of monotony was so low that I involved my brother, who was pretty good at writing computer programs. So, I figured, why not make this whole betting deal easier? I caught up with him one day and laid it out. "Hey, can you help me turn this betting stuff into a program?" I asked. I gave him the lowdown, like, "We need a loop that runs from 1 to 14, adds up the odds for each game, stuff like that." He got it. It was pretty simple for him – all he had to do was translate my ideas, which I just sort of rambled off, into Pascal, the programming language he used. He seemed cool with it, just taking what I said and turning it into code.

Finally, after tapping away at his keyboard for a while, my brother hit some command and the whole thing was done. He wrote the program onto a floppy disk - this small, square piece of plastic that suddenly felt like treasure. He handed it over to me, and I remember feeling like I was holding something really valuable. This was my first computer program, even though I hadn't written a single line of the code myself.

This one last thing

My birthday brought me an awesome gift: my own desktop computer. This wasn't just a cool present; it opened up a whole new world for me. I started to write my own programs. At first, it was like learning a new language which I literally did. But soon I really got the hang of it.

Every night, I'd be there at my computer, the screen lighting up my face in the dark room. Around me, everyone else was asleep. That's how it is, right? Late at night is when artists, programmers, and murderers come alive. I was definitely not an artist or a murderer, but I sure felt like a real programmer.

With a cigarette in one hand, I'd keep telling myself, "Just fix this one last thing, then go to bed." But in programming, there's always another "last thing" that pops up. Hours would pass like minutes. Before I knew it, it would be really late, but I'd still be there, typing away.

The far-reaching Yahtzee

I created something pretty neat. It was a program where you could play Yahtzee. Sure, anyone could play Yahtzee the regular way with five dice and a piece of paper, but my program was different. I often wondered what made it special. Maybe not everyone had five dice lying around at home, or perhaps people didn't want to bother adding up their scores on paper.

Whatever the reason, my friends got pretty excited about it. They started coming over with their floppy disks. "Can you put your Yahtzee game on this for me?" they'd ask. And I was happy to make a copy for them.

The Yahtzee game I created started to become more popular than I ever expected. My friends didn't just keep it to themselves; they began sharing it with their own friends. Like a message in a bottle tossed into the sea, my little program began a journey far beyond my circle.

It was fascinating to see how far it reached. One day, I heard from a friend about someone they knew, a friend of a friend – someone I'd never met. This person worked in a theater, all the way at the other end of the country. My little Yahtzee game had traveled that far!

The theater staff, between their rehearsals and performances, would take a break, pop the floppy into their computer, and dive into a game of Yahtzee. It was a strange and wonderful thought – that something I made in the quiet of my room was bringing a bit of fun to people so far away, people I'd never met.

One morning, my trusty computer began to behave oddly. It started with a few unusual beeps – sounds I hadn't heard it make before. At first, I thought maybe I had accidentally changed a setting or triggered an unknown command. But as the beeping became more frequent, a sinking realization dawned on me: my computer had caught a virus.

This wasn't just any hiccup in the system; it was like an unwelcome intruder had slipped into the digital world I had built. I remember feeling a mix of annoyance and worry. Viruses back then were a bit of a mystery, not like the ones we know about today. They could do anything from messing up your files to completely crashing your system.

I wondered where it came from. Could it have been one of the many floppy disks that came in and out of my computer, carrying my Yahtzee game? It was a risk we rarely thought about in those days of sharing and swapping games.

I realized the extent of the issue was much larger than I first thought. The virus hadn't just infected my system; it had been copied onto the floppies of my friends along with my Yahtzee game. Each time I shared the game, the virus tagged along, silently spreading to each new computer.

Later I learned that the virus, piggybacking on my Yahtzee game, had traveled all the way to the theater at the far end of the country. More than just reaching their computer, it had infected their entire system. At the theater, their computer wasn't just for leisure; it was an essential part of their operations. They stored everything on it - from the performance schedules and rehearsal plans to important vouchers. When the virus hit, it wreaked havoc, resulting in the loss of all this crucial information.

A single program, something I created as a bit of fun and a challenge to myself, had the power to reach and affect so many people, in ways I had never anticipated.

Coding on a shoestring

As a student I had lots of options for making money. You might picture a buffet of choices laid out before me, each more appealing than the last. But the reality was more like a compulsory all-you-can-work marathon. Private lessons? Check. Translation gigs? Double check. And sometimes, the less glamorous option of skipping meals.

In those days, I noticed an odd but common trend: people who didn't have enough cash for food often still found a way to afford a drink or a pack of cigarettes. I was no exception. Despite my tight budget, there I was in a bar, nursing a single beer that had to last the night, yet somehow, it often turned into more. It was in this setting, one evening, that one of our group spotted a familiar face at another table. Seamlessly, our two groups began to blend together. It was as if introductions weren't needed; everyone just started talking and getting along as if we were all old friends.

That night at the bar, I met someone new, a guy named Zed. The exact start of our conversation is lost in the haze of memory, but I'll never forget how it ended. We shook hands on a deal – I was going to write a computer program for the research lab he worked at, and they were actually going to pay me for it. Sure, there were details to be figured out, like talking to his boss, and it wasn't a legally binding contract or anything. But it felt like something stronger, a gentleman's agreement, or rather a friend's friend agreement.

So, I got to work on the program and after some time, I was ready to show what I had done. I found myself in a room with a small group of researchers from the lab, ready to present my progress. The presentation was a bit of a rollercoaster. I navigated through the program, and when I hit a snag, I'd chuckle and say, "Okay, this bit's still under construction, but just imagine it springing to life and zipping around any moment now."

After that presentation, something amazing happened – I received my first payment for the project, a whole third of what the entire job was worth.

That night, riding high on the wave of my first big paycheck, I decided to throw a party. It was my way of celebrating this milestone and sharing the joy. I invited all my friends, especially those who had covered those extra beers for me during my leaner times. Zed, the guy who had set this whole opportunity in motion, was of course on the guest list too.

This would have been the perfect spot to end my tale, a high note of triumph and celebration. But the story of my programming adventure didn't stop there. I still had to earn the other two-thirds of my payment. So, I got back to work, full of confidence. But soon, I hit a wall, the kind that makes you feel like you're stuck in a loop of problems.

You know that feeling, right? It's like when you finally manage to close your suitcase, only to realize you left out your pants. You manage to stuff them in, but now your t-shirt is playing peek-a-boo with the zipper. No matter how you rearrange everything, something just won't fit. That was me with my program. I'd finish one part, all neat and tidy, then I'd add something new, and boom – it was like I'd pulled the wrong thread, and other parts started unraveling. I'd fix one thing, and another would break. It was this never-ending cycle of fixing and breaking, a programmer's version of the suitcase dilemma.

So what happened to the other two-thirds of my payment? Well, the simple truth is, I never got it because I never finished the program. Despite my best efforts and countless hours spent trying to piece everything together, I couldn't get it to work as it was supposed to.

Interestingly, I didn’t even have to pay back the first payment. The partially completed, 'under construction' program I left them with was probably not very useful. But in those days, programmers were such a rare breed that there seemed to be a different set of rules for us. People hiring programmers seemed to operate on a 'hope for the best' mindset. You paid a programmer, and if you were lucky, you got your program. If not, well, it was just part of the risk of investing in tech. And so began the golden era of programming, at least from my perspective.

Top comments (0)