Early Days of Programming
1983
My father was an engineer. He was born in rural Pennsylvania and thrived in his father's machine shop. He was an honor student in high school and was one of very few to enter the Webb Institute of Naval Architecture on Long Island. At the time, tuition was free but the entrance exam was extremely challenging. He always said it was the hardest he'd ever worked in his life.
So, one day in 1983 he came home with a TRS-80 Model 4. Those of you who know computer history will recognize this as the last model they made. Unlike its predecessors, the model 4 had 128K of RAM and two floppy disk drives. It was molded to look very modern. The keyboard and screen were integrated into it.
He bought it to manage finances. Once a month, he would break it out and punch numbers into VisiCalc while ingesting several cups of coffee. I, of course, had no idea what he was doing.
Not too long after that, he took a class in computer science and was eager to share what he had learned with me, usually at the breakfast table. He bought a couple of books and left them around the house: The Cartoon Guide to Computer Science, and some book about BASIC that came with the computer. I read both of them with gusto, and soon I was writing my own programs. I got as far as the PRINT and INPUT commands, and realized I could write a MAD-LIBS game.
After learning about modems, which you could use with a telephone to log into BBS (Bulletin Board) systems, I purchased a 300-baud modem at Radio Shack, connected it to the TRS-80, and I was hooked! There were a few great BBS systems in the local area, and soon I thought about writing my own BBS system software. That turned out to be quite a challenge in BASIC, but it gave me a goal to shoot for.
I graduated high school in 1985 and then did a brief stint at Berklee School of Music in Boston. The lines for studio time were very long, so I enrolled in an audio recording and production class at Full Sail in Central Florida. After that, I decided to stay in the Orlando area. My father helped me get a used car and a spiffy new IBM XT Turbo Clone machine with a 30MB Hard Drive. I got a job at a local firm doing data entry. It was a bit boring, but I got to work with computers, and it paid the bills.
By this time, I had a 2400-baud modem. I downloaded a version of QuickBASIC (because I couldn't afford to buy a copy) and quickly became proficient, all the while keeping that goal of writing a BBS app in the back of my mind. I would come to work bleary-eyed because I was staying up late writing software!
By early 1987, I was back home and playing in a band. My father passed in 1988. My grandmother passed in 1989, and shortly thereafter I got a tech-support job at Voyetra Technologies in Pelham, NY, which would later purchase Turtle Beach and become Voyetra Turtle Beach. When I worked there, they had a software MIDI sequencer for MS-DOS called Sequencer Plus and various MIDI hardware interfaces for MS-DOS based PCs. Think about it: musicians dealing with early PCs (autoexec.bat, config.sys, interrupt conflicts, etc.). It kept me busy on the phone all day.
The highlight of my time at Voyetra was when they partnered with Creative Labs, the company that made and sold the most popular sound card of the day, the Sound Blaster. PC Motherboards at the time did not have audio built in, so the Sound Blaster was very popular. Creative Labs struck a deal with Voyetra to supply a version of Sequencer Plus to be included in the Sound Blaster MIDI Kit. I was tasked with creating the sample MIDI files that would come with the kit. What fun!
At some point during my time at Voyetra, I started using programming tools for QuickBASIC from a nearby company, Crescent Software. They included the assembly language source code to their tools which was commented! Even the QuickBASIC demos were commented. They really wanted to educate their customers, not just provide black boxes. That ethic stuck with me for the rest of my career.
During this time, my future wife and I were living nearby in a studio apartment in the North Bronx. We got married in 1990 and moved to a nice one-bedroom apartment in New Rochelle. She was working at Random House in NYC, and I went back to school at IONA College.
On a summer break, I called Crescent and asked if they had any summer jobs open. I was passed to Ethan Winer, the owner. I told him I was using almost every package they sold. He asked me if I knew Visual Basic. It turns out that I had just purchased it and was getting familiar with it, so I said yes. He asked if I could come up for an interview. My fiancé was pissed. She had a BA degree in English, and it took her a year of sending resume after resume with no takers to land her first interview. I made one call to one company and got in.
When I got there, I learned the company was in Ethan's house. The top floor had executive offices. The business was run from the basement where the developers' and other offices were. The middle floor had living space, a kitchen, and a living room filled with keyboards and guitars. After I told Ethan I was a guitar player and was also into MIDI, he picked up his guitar and shredded a blues riff. He then handed it to me, and I played his riff note-for-note. He said "Whoooaaa! Do you drink Scotch?" to which I said "yes," and he then shouted "You're HIRED!" and gave a hearty laugh. We did have an official interview, but yes, I got the job. The kicker is I started at about 80K per year, and my fiancé was struggling to make 14K a year. It's not fair, for sure, but that's what happened.
At Crescent, I was doing tech support. In between calls, I was familiarizing myself with all of their products, one of which was a serial port programming library called PDQComm written by Dave Cleary. I started writing a Bulletin Board System immediately! By that time, though, there were so many more interesting things to learn and master. Visual Basic was taking over, and I ate it up.
Daniel Appleman wrote an amazing book, Visual Basic Programmer's Guide to the Win32 Api, which gave VB programmers access to the innerworkings of Windows. Between this book and Programming Windows by Charles Petzold, I was trying to crack the nut of doing sprite animation in VB. I eventually got there, but my technique used too much memory, and I could never figure out how to make it more efficient.
At the time, Ethan had been writing articles (most of them) and doing the Q&A colum for BasicPro Magazine, and the questions coming in were more and more about VB. He would bring those questions to me and I'd answer them. At some point he asked me if I'd like to take over the column, so I did.
In 1993, I began speaking at VBITS (link not available), a new conference hosted by Fawcette, the publishers of BasicPro magazine (which would later become Visual Basic Programmer's Journal). This launched my speaking career. To this day, I travel all over the world and speak at developer conferences.
In 1994, I was in New Orleans working the Crescent Software exhibit booth at Microsoft's TechEd conference with our partners from Apex software, including one Gary Wisniewski. Gary and I were sitting at a bar after hours one night talking about these new things called "web pages." Gary was a Unix guy and knew all about HTTP and websites. He said he could put up a VB website on Apex's internet infrastructure and give me FTP access to it so I could update it. Thus was born Carl & Gary's Visual Basic Home Page.
We heard a rumor that in 1995, "Carl & Gary's" was the most popular brand among Visual Basic developers. At one point we were getting 100K hits a day, which was great, but put a heavy load on Apex's bandwidth bill. At some point, the site was shut down and everyone moved on.
I left Crescent in 1994 to work for a medical software startup in San Bernardino, CA. While I was there I learned about Sockets and programming the internet. I wrote an article on internet programming which made the front page of Visual Basic Programmer's Journal and went on to write two books on internet programming in VB for John Wiley and Sons. I got some of my facts wrong for sure, but the book was a good source of Visual Basic code for writing apps that used the popular protocols of the day: HTTP, SMTP, POP3, NNTP, FTP, and Gopher.
For many years after this point, my life was consumed by .NET Rocks!, doing on-site in-classroom training, and speaking all over the world. I became a Microsoft Regional Director in 2000. Shortly after that, Microsoft released The .NET Framework and my focus changed from Visual Basic 6.0 to VB.NET. Several years later, I switched my preferred language to C#, the language Microsoft introduced with .NET. It took the best aspects of Java and Turbo Pascal and improved them. C# today is an open-source language that runs on every platform.